私のGPU#0では、11341MiBのGPU RAMが使用され、プロセスは一覧表示されませんnvidia-smi
。これはどのように可能であり、どのように記憶を元に戻すことができますか?
Thu Aug 18 14:27:58 2016
+------------------------------------------------------+
| NVIDIA-SMI 352.63 Driver Version: 352.63 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 GeForce GTX TIT... Off | 0000:02:00.0 Off | N/A |
| 29% 61C P2 71W / 250W | 11341MiB / 12287MiB | 0% Default |
+-------------------------------+----------------------+----------------------+
| 1 GeForce GTX TIT... Off | 0000:03:00.0 Off | N/A |
| 22% 42C P0 71W / 250W | 23MiB / 12287MiB | 0% Default |
+-------------------------------+----------------------+----------------------+
| 2 GeForce GTX TIT... Off | 0000:82:00.0 Off | N/A |
| 22% 35C P0 69W / 250W | 23MiB / 12287MiB | 0% Default |
+-------------------------------+----------------------+----------------------+
| 3 GeForce GTX TIT... Off | 0000:83:00.0 Off | N/A |
| 0% 33C P0 60W / 250W | 23MiB / 12287MiB | 0% Default |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
| No running processes found |
+-----------------------------------------------------------------------------+
フラグを使用してTheano Pythonスクリプトを起動しましたがlib.cnmem=0.9
、これがGPUメモリの11341MiBを使用する理由を説明します(CNMeMライブラリ「ディープラーニングフレームワークがCUDAメモリを管理するのに役立つシンプルなライブラリです。」 )。しかし、スクリプトを終了し、GPUメモリが解放されることを期待しています。
pkill -9 python
役に立ちませんでしsudo nvidia-smi --gpu-reset -i 0
た。sudo fuser -v /dev/nvidia*
不要なプロセスは表示されません。
私はGeForce GTX Titan MaxwellとUbuntu 14.04.4 LTS x64を使用しています。
ベストアンサー1
プロセスをランダムに終了するために使用することはkill -9
非常に悪い考えであり、状況を台無しにする可能性があります。SIGKILL
あるいは、信号9は何も完了せず、プロセスの実行を直ちに停止し、適切に終了する。この場合、スクリプトが終了するとRAMが解放されないことがあります。あなたの場合、メモリを回復する唯一の方法はGPUをリセットするか、GPUnvidia-smi --gpu-reset
が利用できない場合は再起動することです。
次に単にプログラムを停止する必要がある場合は、引数なしでkillを使用すると、プログラムが実際にそれを処理して終了できるように、より使い慣れたシグナルを送信しますSIGTERM
。他の信号に応答しない操作を停止し、最後の手段としてのみ使用してください。SIGTERM
SIGKILL