時々、私のCUDAプログラムのバグが原因で、デスクトップグラフィックが壊れます(Windowsの場合)。通常、画面はある程度読みやすいままですが、ウィンドウをドラッグするときなど、グラフィックが変更されると、セミランダムな色のピクセルと小さなブロックが多数表示されます。
デスクトップの解像度を変更してGPUとドライバーをリセットしようとしましたが、それは役に立ちません。私が見つけた唯一の修正は、コンピューターを再起動することです。
再起動せずにドライバーとGPUをリセットするために使用できるプログラムやトリックはありますか?
バックグラウンド:
私は1.0、1.1、1.3、2.0のカードを持っていましたが、現在は1.1と2.0のカードしか持っていません。 1.0と1.1で問題が発生しました。 1.3で見たことがあると確信しています。 2.0についてはよくわかりません。メモリ保護は1.3頃に追加されましたか?問題は私のコードのバグによって引き起こされたようで、バグが修正されると消えたので、不安定なハードウェアが原因ではないとほぼ確信しています。完成したコードを実行すると、カードは安定しています。この質問は1.1カードで見た後に書きましたが、バグを修正すると消えてしまい、それを再現するコードがなくなりました。たぶん、1.1カードのランダムな場所に書き込んで、何かが起こるかどうかを確認する必要があります...
編集:
Linux上のTeslaハードウェアを使用していて、nvidia-smiを実行できる場合は、を使用してGPUをリセットできます。
nvidia-smi -r
または
nvidia-smi --gpu-reset
このスイッチのman
出力は次のとおりです。
GPUの状態をリセットします。ダブルビットECCエラーをクリアしたり、ハングしたGPUを回復したりするために使用できます。特定のデバイスをターゲットにするには、-iスイッチが必要です。 Linuxでのみ使用できます。
さもないと...
ハードウェアを本当にリセットする方法は、再起動することです。
あなたが説明することは起こらないはずです。別のハードウェアでテストすることをお勧めします。それでも発生するかどうかをお知らせください。
NVDIA GPU SDK4.2上のGeForceGTX 260を使用していますが、いくつかの問題が発生しています。時々開発中のプログラムにバグがあります。これにより、この投稿で説明されているランダムな色のピクセルが画面に表示されます。
ここで述べたように、解像度を変更しても消えません。さらに、COLOR DEPTHを32ビットから16ビットに変更するだけでは、ランダムな色のピクセルは消えますが、(再起動せずに)32ビットに戻ると再び表示されます。この動作を引き起こした最後のバグは、__定数__メモリを使用していましたが、それをポインタとして渡していました。
test<<<grid, threadsPerBlock>>>( cuda_malloc_data, cuda_constant_data );
合格しなかった場合cudb_constant_data
の場合、バグはありません(したがって、ランダムな色のピクセルは表示されません)。
Windowsでグラフィックスタックをリセットするには、を押します。 Win+Ctrl+Shift+B。
同じ問題がunixで時々発生し、グーグルが私をこのスレッドに転送したので、これが他の誰かに役立つことを願っています。
Ubuntuで、nvidiaカーネルモジュールのアンロードとリロードで問題が解決しました。
Sudo rmmod nvidia_uvm
Sudo modprobe nvidia_uvm
そこに行きます。