0

CUDA プログラミング ガイドで、CUDA デバイスのグローバル メモリが 32、64、または 128 ビットのトランザクションによってアクセスされることを読みました。それを知っていると、たとえば、float4 (128 ビット) のセットをメモリ内で互いに近づけることの利点はありますか? 私が理解しているように、float4がメモリに分散されているか、シーケンスに分散されているかに関係なく、トランザクションの数は同じになります。それとも、すべてのアクセスが 1 つの巨大なトランザクションにまとめられるのでしょうか?

4

1 に答える 1

3

合体とは、ワープ内の個々のスレッドからのメモリ要求を 1 つのメモリ トランザクションに結合することを指します。

1 つのメモリ トランザクションは通常 128バイトのキャッシュ ラインであるため、8 つの128ビット(例: float4) の量で構成されます。

したがって、複数のスレッドが隣接する 128 ビット量を要求することには利点があります。これは、メモリに対する単一 (128 バイト) のキャッシュ ライン要求にまとめることができるためです。

于 2013-08-07T02:11:45.047 に答える