【问题标题】:Understanding GPU processes from `nvidia-smi` command从 `nvidia-smi` 命令了解 GPU 进程
【发布时间】:2023-03-31 06:05:01
【问题描述】:

我有一台配备 NVidia RTX 2070 GPU 的新笔记本电脑,用于训练 tensorflow 2.1 模型。不幸的是,我遇到了 GPU OOM(内存不足)问题 - 在训练过程中它崩溃了,我减少了 RAM 使用很多,但当然问题仍然存在。

我试图检查导致 GPU 出现 OOM 的原因。当我在终端中输入nvidia-smi 时,我得到以下输出:

+-----------------------------------------------------------------------------+
| NVIDIA-SMI 440.64.00    Driver Version: 440.64.00    CUDA Version: 10.2     |
|-------------------------------+----------------------+----------------------+
| 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 RTX 2070    On   | 00000000:01:00.0 Off |                  N/A |
| N/A   43C    P8     6W /  N/A |   1009MiB /  7982MiB |     11%      Default |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID   Type   Process name                             Usage      |
|=============================================================================|
|    0      1209      G   /usr/lib/xorg/Xorg                            72MiB |
|    0      1237      G   /usr/bin/gnome-shell                          52MiB |
|    0      1565      G   /usr/lib/xorg/Xorg                           481MiB |
|    0      1693      G   /usr/bin/gnome-shell                         195MiB |
|    0     12312      G   ...uest-channel-token=14048285025818334832   204MiB |
+-----------------------------------------------------------------------------+

这些过程是关于什么的?你能帮我解释和理解它们吗?有什么我可以杀的吗?怎么杀?

【问题讨论】:

  • 我有相同的 GPU,但在我的 nvidia-smi 上我只有两个 Xorg 进程,每个进程 14 MiB。就这样。你那个12312的进程,是不是换了个jupyter notebook?我发现有时这些笔记本在我杀死它们时并没有真正死掉,并且会定期发送ps aux | grep jupyter 来找到它们并杀死它们。
  • 我没有使用 Jupyter,我正在从终端调用 train.py 脚本。你认为我的进程队列有问题吗?
  • 我不确定。您可以尝试重新启动或终止这些进程(这将使您退出),然后,可能会减少训练的批量大小?如果您的代码支持混合精度 (tensorflow.org/guide/keras/mixed_precision),您也可以尝试启用它。
  • 你能写一个关于如何做到这一点的答案吗?对不起,我是 GPU 新手。另外,为了以防万一,杀死jupyter进程的命令是什么?

标签: python tensorflow nvidia


【解决方案1】:

所有进程都是 X-windows 显示进程。如果您的笔记本电脑有一些低劣的板载视频(很多都是为了省电),您可以将其配置为使用它来驱动显示器,这样可以腾出花哨的卡来进行计算。

【讨论】:

  • 对不起,我是 GPU 的新手,我没有完全理解您的评论。什么是“车载视频”?我该如何配置?另外,您认为我的进程队列有问题吗?
  • @Leevo 您的进程队列没有问题。至于怎么配置,这是一个linux问题reddit.com/r/linuxquestions/comments/738shq/…
  • 是否可以强制我的电脑运行Xorggnome-shell使用CPU而不是GPU?
  • @leevo 既然我们在谈论视频驱动程序,你必须在某个时候使用 GPU。
猜你喜欢
  • 2017-04-17
  • 1970-01-01
  • 2019-08-17
  • 1970-01-01
  • 2018-11-25
  • 2021-12-27
  • 2022-01-13
  • 2012-02-29
  • 2015-08-20
相关资源
最近更新 更多