CPUとGPUは、非同期で処理が行われます。 そのため、GPUの関数を呼び出した直後は、 GPUでの処理が完了する前にCPUの処理が行われます。 ベンチマーク測定など、GPUの実行時間計測を行いたい場合は注意してください。 これを防ぐには、カーネル呼び出し直後に、以下の文を追加してください。 cudaThreadSynchronize() ※cudaMemcpyで転送する場合は、全スレッドの処理が完了してから転送するため、特に必要ありません。
CPUとGPUは、非同期で処理が行われます。 そのため、GPUの関数を呼び出した直後は、 GPUでの処理が完了する前にCPUの処理が行われます。 ベンチマーク測定など、GPUの実行時間計測を行いたい場合は注意してください。 これを防ぐには、カーネル呼び出し直後に、以下の文を追加してください。 cudaThreadSynchronize() ※cudaMemcpyで転送する場合は、全スレッドの処理が完了してから転送するため、特に必要ありません。