
私は、Nvidia を使用して GPU でプロセスを実行する実稼働マシン (Ubuntu 18.04) を持っています。特定のプロセスがメモリを割り当てましたが、現在は機能していないため、GPU は基本的に使用できません。
ps -o ppid= -p
1 を返します。これは、PID=1 が機能していないプロセスの親であることを意味するため、それを強制終了することはできません。
nvidia-smiは、このプロセスがGPUに大量のメモリを割り当てていることを明らかにしました。だから私は
nvidia-smi --gpu-リセット
リソースを解放します。子プロセスは何か問題を引き起こしますか? 割り当てたリソースがもう利用できないことを「確認」できますか?
要するに、これは何らかの形で危険なのでしょうか?
答え1
nvidia-smi --gpu-reset を使用すると、GPU がリセットされ、廃止されたプロセスによって保持されているメモリなどの割り当てられたリソースが解放されます。ただし、このコマンドは GPU がアイドル状態のとき、つまり他のアクティブなプロセスが GPU を使用していないときにのみ使用できます。
GPU が他のアクティブなプロセスによって使用されている場合、--gpu-reset コマンドは失敗したり、それらのプロセスを終了したり、GPU リソースが突然失われて誤動作を引き起こしたりするなど、意図しない副作用が発生する可能性があります。
機能停止したプロセスの親は PID=1 なので、これ以上の問題が発生する可能性は低いです。GPU をリセットすると、割り当てられたリソースが解放され、機能停止したプロセスはそれらを見たり使用したりできなくなります。
GPU をアクティブに使用している他のプロセスがない限り、nvidia-smi --gpu-reset を使用することは一般的に安全です。GPU を使用している他のプロセスがある場合は、GPU をリセットする前に、それらのプロセスを適切に停止するようにしてください。また、予期しない問題が発生しないように、GPU をリセットした後はシステムを監視することをお勧めします。
マシンがフリーズした場合、カーネルモジュールがスタックしてしまい、GPUを使用しているプロセスを強制終了しても応答しない可能性があるため、マシンを再起動する必要があることはよくあります。