同期について少し混乱しています。
- を使用
__syncthreads
すると、ブロック内のスレッドを同期できます。これ (の使用__syncthreads
) は、共有メモリでのみ行う必要がありますか? または、__syncthreads
最高のパフォーマンスを持つ共有メモリを使用していますか? - 一般に、スレッドは、同じスレッド ブロック内に存在する場合にのみ、互いに安全に通信できますよね? では、常に共有メモリを使用しないのはなぜでしょうか? 大きくないから?また、共有メモリを使用しない場合、結果が正しいことをどのように保証できるのでしょうか?
- 私は時々問題なく実行されるプログラムを持っています (結果が得られます)。時には何も変更せずに「ナン」の結果が得られます。それは同期の問題でしょうか?