GPU に実行を要求できる多数の CUDA カーネルがあるとします。とにかく、カーネルコードを変更したくありません(たとえば、トラップを含めるため)。
そのような実行中のカーネルを強制終了する方法はありますか?
カーネルを自動生成するつもりです(遺伝的プログラミング)。これらのカーネルは、完了するまでに非常に長い時間がかかる動作をする可能性があります。実行中にカーネルを強制終了できれば、タイマーを維持して、必要に応じて強制終了できます。
cudaDeviceReset()は、実行中のカーネルを強制終了します。
また、デバイスで行われたすべての割り当てが消去されるため、再度使用する場合は、データ領域を再割り当てする必要があります。
cudaDeviceReset()
GPU を適切な機能動作に戻すには、それだけでは不十分であることに注意してください。そのためには、「所有」プロセスも終了する必要があります。ここを参照してください。