Docker 上的 "nvidia-smi" 不显示 "Processes" 是否正确?

Is it correct that "nvidia-smi" on Docker does not show "Processes"?

当我在 Docker 上 运行 “nvidia-smi” 时,它没有出现在“进程”部分中是否正常?

我正在 ubuntu 上使用 Docker + GPU 在 ubuntu 上构建深度学习环境。

我想差不多完成了,但有一件事困扰着我。 当我在 Ubuntu 上执行“nvidia-smi”时,我看到“进程”。

+-----------------------------------------------------------------------------+
| NVIDIA-SMI 440.100      Driver Version: 440.100      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 GTX 166...  Off  | 00000000:01:00.0  On |                  N/A |
| 42%   37C    P8     8W / 125W |    249MiB /  5936MiB |      3%      Default |
+-------------------------------+----------------------+----------------------+
                                                                               
+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID   Type   Process name                             Usage      |
|=============================================================================|
|    0      1127      G   /usr/lib/xorg/Xorg                            35MiB |
|    0      2006      G   /usr/lib/xorg/Xorg                            94MiB |
|    0      2202      G   /usr/bin/gnome-shell                          97MiB |
|    0      6565      G   /usr/lib/firefox/firefox                       2MiB |
|    0      7875      G   /usr/lib/firefox/firefox                       2MiB |
|    0     10070      G   /usr/lib/firefox/firefox                       2MiB |
+-----------------------------------------------------------------------------+

当我在 Docker 上执行 'nvidia-smi' 时,我没有看到 'processes'。

+-----------------------------------------------------------------------------+
| NVIDIA-SMI 440.100      Driver Version: 440.100      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 GTX 166...  Off  | 00000000:01:00.0  On |                  N/A |
| 42%   36C    P8     8W / 125W |    342MiB /  5936MiB |      2%      Default |
+-------------------------------+----------------------+----------------------+
                                                                               
+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID   Type   Process name                             Usage      |
|=============================================================================|
+-----------------------------------------------------------------------------+

当我运行“Jupyter Notebook”时,GPU 似乎是运行ning。

“这是一个规范”,我看过一篇几年前写的文章。

Process 今天还没有出现是不是一个“规范”? 还是因为我没有正确安装?

借给我你的智慧。 提前致谢!

是的,您将看不到,因为驱动程序不知道 PID 命名空间。您可以仔细阅读线程和 work-around 使用 Python 特别是在

https://github.com/NVIDIA/nvidia-docker/issues/179#issuecomment-598059213

(我假设您没有使用 VM,因为持久性模式在显示的日志中处于关闭状态)。

shim 驱动程序允许在-docker nvidia-smi 中显示正确的进程列表而无需修改任何内容。

https://github.com/matpool/mpu