これらの3つの機能、特に最後の2つの機能の違いは何ですか?ライブラリマニュアルには
この関数の名前はその動作を反映していないため、この関数は非推奨であることに注意してください。その機能は、非推奨ではない関数cudaDeviceSynchronize()に似ており、代わりに使用する必要があります。
しかし、それが何を意味するのかよくわかりません。
これらはすべて障壁です。バリアは、何らかの条件が満たされるまで、バリアを超えたコードの実行を防ぎます。
cudaDeviceSynchronize
の非推奨バージョンです。非推奨とは、現時点ではまだ機能していることを意味しますが、使用しないことをお勧めします(代わりに、cudaDeviceSynchronizeを使用してください)。将来、サポートされなくなる可能性があります。ただし、cudaThreadSynchronize
()とcudaDeviceSynchronize
()は基本的に同じです。cudaStreamSynchronize
()はストリームIDを唯一のパラメータとして取ります。他のストリームで発行されたcudaタスクは、CPUコードの実行がこの障壁を超えて継続すると、完了する場合と完了しない場合があります。