在尝试消除新脚本中的一些错误时(我是mxnet
的新手),我经常重新运行相同的mxnet
脚本。当我尝试运行脚本时,经常会收到错误消息:GPU内存不足,并且当我使用nvidia-smi
进行检查时,这就是我看到的内容:
Wed Dec 5 15:41:29 2018
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 396.24.02 Driver Version: 396.24.02 |
|-------------------------------+----------------------+----------------------+
| 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 108... Off | 00000000:65:00.0 On | N/A |
| 0% 54C P2 68W / 300W | 10891MiB / 11144MiB | 0% Default |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
| 0 1446 G /usr/lib/xorg/Xorg 40MiB |
| 0 1481 G /usr/bin/gnome-shell 114MiB |
| 0 10216 G ...-token=8422C9FC67F51AEC1893FEEBE9DB68C6 31MiB |
| 0 18221 G /usr/lib/xorg/Xorg 458MiB |
| 0 18347 G /usr/bin/gnome-shell 282MiB |
+-----------------------------------------------------------------------------+
因此,似乎大多数内存都在使用中(10891/11144)但我看不到列表中的任何进程都占用了GPU的很大一部分,因此似乎没有什么可调用的。我的mxnet脚本已经退出,所以我认为不应该这样。如果GPU不立即知道脚本不再需要内存,那么我会明白是否有几秒甚至几十秒的延迟,但是我要花很多时间,仍然看到相同的显示。有什么用,我应该做一些内存清理吗?如果是这样,怎么办?感谢您提供给新手的提示。
答案 0 :(得分:2)
GPU内存的使用完全取决于进程的生命周期。如果您看到使用了GPU内存,则必须有一个仍在运行的进程,并且该进程一直保留在内存中。如果您运行ps -a |grep python
,则应该看到所有python进程,并且会告诉您哪个进程仍在运行。