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