パフォーマンスガイドラインの章のCUDAプログラミングガイド4.0セクション5.3.2.1の次のステートメントについて混乱しています。
Global memory resides in device memory and device memory is accessed
via 32-, 64-, or 128-byte memory transactions.
These memory transactions must be naturally aligned:Only the 32-, 64- ,
128- byte segments of device memory
that are aligned to their size (i.e. whose first address is a
multiple of their size) can be read or written by memory
transactions.
1)デバイスメモリについての私の理解は、スレッドによるデバイスメモリへのアクセスはキャッシュされないということでした。したがって、スレッドがメモリの場所a[i]
にアクセスする場合、スレッドはフェッチするだけa[i]
で、周りの値はフェッチしませんa[i]
。したがって、最初のステートメントはこれと矛盾しているようです。それとも、ここで「メモリトランザクション」というフレーズの使用法を誤解しているのでしょうか。
2)2番目の文はあまり明確ではないようです。誰かがこれを説明できますか?