ブロック間同期(N次元と他のメモリ転送操作の合計)を実行する必要があるコードを書いています。問題の次元をインクリメントすると、結果は間違っています。
との同期を行っていますが__threadfence()
、最初のディメンション(N <192)は問題ありませんが__threadfence()
、コードに他のディメンションを挿入すると、より多くのディメンションに対して正しい結果が得られます。
同期するには1つでthreadfence()
は不十分ですか?さらに、データ結果は同じブロックで使用されます。
プログラミングガイドの情報は、threadfence
すべてのメモリスペースの準備ができていることを示しています(共有およびグローバル)