1

古い Tesla カードで 20 秒以上使用している CUDA カーネルがあります。カーネルが 20 秒以上実行されている場合、プログラムで CUDA カーネルを強制終了したいと考えています。私の意図は、カーネルが 20 秒以上実行されている場合、そのカーネルを強制終了して、精度の低い別のカーネルを実行することです。

私のOSはWindows 7 64ビットです。CUDA のバージョンは 5.0 です。GPUはテスラC1060

アプリケーションを終了せずに CUDA カーネルを強制終了するのを手伝ってください。

4

1 に答える 1

2

CC 2.0 以上のデバイスでアサート(失敗)を使用して、カーネル内から既存のカーネルの実行を停止できます。私はこれが述べられた目的を果たすとは思わないが、少なくとも便利ではない.

cudaDeviceReset()を使用して、ホスト側からデバイスの操作を停止することもできます。私はこれを完全には考えていませんが、ホスト側で何らかのタイマーを監視し、タイムアウト期間の完了時にデバイスをリセットすることは可能であるはずです。このタイプのリセットはバールのようなものなので、目的の操作を再開するには、そのデバイス (cudaMallocs などを含む) で操作を完全に再開する必要があります。

cudaDeviceReset()GPU を適切な機能動作に戻すには、それだけでは不十分であることに注意してください。そのためには、「所有」プロセスも終了する必要があります。ここを参照してください。

于 2013-01-09T22:40:54.530 に答える