【问题标题】:Nvidia GPU memory allocated but by no process?分配了Nvidia GPU内存但没有进程?
【发布时间】:2018-12-05 20:45:38
【问题描述】:

我经常重新运行相同的 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 不立即知道脚本不再需要内存,我会理解是否有几秒甚至几十秒的延迟,但是 我会继续运行很多分钟,但仍然看到相同的显示。什么给出了,我应该做一些内存清理吗?如果是这样,怎么做?感谢您对新手的任何提示。

【问题讨论】:

标签: gpu mxnet


【解决方案1】:

GPU 内存使用完全与进程的生命周期绑定。如果您看到使用了 GPU 内存,则一定有一个进程仍然存在并持有内存。如果你运行ps -a |grep python,你应该会看到所有的python进程,这会告诉你哪个进程还活着。

【讨论】:

    猜你喜欢
    • 2023-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-19
    • 1970-01-01
    • 1970-01-01
    • 2018-05-16
    • 1970-01-01
    相关资源
    最近更新 更多