このスレッドにはTurning off coalescingのNvidia Forumが入りました。「これまではメモリポインタ/配列を「volatile」に設定すると大量のランダムアクセスが助長されています。パフォーマンス?!)」。CUDA:2次元配列のvolatileを使用しているエラー
私はCUDAを使用してGPU(Fermi)上で有限差分計算(3Dステンシル計算)を行っており、計算のパフォーマンスを向上させたいと考えています。 3D配列のz軸へのアクセスはランダムなので(3D配列はZ、Y、Xが遅いものから速いものに置かれます)、volatileを使う方が良い選択だと感じます。現在、私は私が
volatile float **plane = 2dplane;
として揮発使用してみましたとき、私は[このエラーが
error: a value of type "float ()[16]" cannot be used to initialize an entity of type "volatile float *"
誰がどのように2次元配列上の揮発性を使用する方法を教えてもらえます取得共有メモリに
__shared__ float 2dplane[32][32]
を使用していますコード例が参考になります]。さらに、パフォーマンスの向上がどれほど期待できるかを誰かが教えてくれれば幸いです。
「Google」スカイバックは「あなたが夢中なら」。 OMG、この男はばかだ! –