グローバルメモリにシーケンシャルにアクセスするスレッドが多数あると仮定すると、どのオプションが全体的に高速に実行されますか? __threadfence() はすべての共有メモリとグローバルメモリの書き込みを考慮に入れていますが、書き込みは結合されているため、私には疑問があります。一方、atomicExch() は重要なメモリ アドレスだけを考慮しますが、書き込みが結合されているかどうかはわかりません。
コード内:
array[threadIdx.x] = value;
または
atomicExch(&array[threadIdx.x] , value);
ありがとう。