以下行为在过去并不常见。我在 Ubuntu 18.04 系统上有两个 GPU:一个用于双显示器显示,另一个用于 GPU 计算。启动时,我从未在我的计算 GPU 上看到过进程。最近,我注意到多个 Xorg 进程在运行,我的两个 GPU 上各有 2 个进程。我还看到 gnome-shell 运行两个进程。这是一个问题吗?如何解决?
(我正在对此进行调查,以了解为什么我在暂停后无法使用计算 GPU 进行计算。)
$ nvidia-smi
Tue Aug 18 11:05:47 2020
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 450.51.06 Driver Version: 450.51.06 CUDA Version: 11.0 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|===============================+======================+======================|
| 0 TITAN RTX On | 00000000:1A:00.0 Off | N/A |
| 41% 34C P8 10W / 280W | 11MiB / 24220MiB | 0% Default |
| | | N/A |
+-------------------------------+----------------------+----------------------+
| 1 GeForce RTX 207... On | 00000000:68:00.0 On | N/A |
| 22% 40C P5 15W / 215W | 811MiB / 7979MiB | 1% Default |
| | | N/A |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=============================================================================|
| 0 N/A N/A 2038 G /usr/lib/xorg/Xorg 4MiB |
| 0 N/A N/A 5566 G /usr/lib/xorg/Xorg 4MiB |
| 1 N/A N/A 2038 G /usr/lib/xorg/Xorg 73MiB |
| 1 N/A N/A 2078 G /usr/bin/gnome-shell 178MiB |
| 1 N/A N/A 5566 G /usr/lib/xorg/Xorg 481MiB |
| 1 N/A N/A 5740 G /usr/bin/gnome-shell 33MiB |
| 1 N/A N/A 23000 G ...AAAAAAAAA= --shared-files 41MiB |
+-----------------------------------------------------------------------------+
答案1
我遇到了类似的问题,ubuntu 20.04,两个 GPU,Tesla 和 GTX 卡,可能不相关,因为我认为它适用于任何 GPU 配置,并且我的目的是使用 GTX GPU 进行视频输出并将 Tesla GPU 专用于 CUDA仅有的。我尝试了多种方法,建议您查看 nvidia xorg 文档(https://download.nvidia.com/XFree86/Linux-x86_64/460.67/README/xconfigoptions.html)和 xorg 文档(https://manpages.debian.org/jessie/xserver-xorg-core/xorg.conf.5.en.html)了解他们的目的。
我的建议是第一的使用该nvidia-xconfig
工具创建基本的 xorg.conf 文件(例如sudo nvidia-xconfig -a
),然后按如下方式修改/编辑。
一些相关的变化:
Section "ServerLayout"
(...)
Option "AutoAddGPU" "false"
EndSection
选项 "AutoAddGPU" "boolean" 如果禁用此选项,则不会从 udev 后端添加任何 GPU 设备。默认启用。 (可能需要禁用才能设置 Xinerama)。
使用lspci
我找到了两张卡的 PCI id,在我的例子中,Tesla 是 9.0.0,GTX 是 5.0.0,所以你必须使用你的身份证对于您的用例,不要使用我的!然后我为每张卡创建了一个条目,例如
Section "Device"
Identifier "Device0"
Driver "nvidia"
VendorName "NVIDIA Corporation"
BoardName "Tesla"
BusID "PCI:9:0:0"
Option "Accel" "false"
Option "ProbeAllGpus" "false"
Option "NoLogo" "true"
Option "UseEDID" "false"
Option "UseDisplayDevice" "none"
Option "MultiGPU" "false"
EndSection
选项 "ProbeAllGpus" "boolean" 请注意,禁用此选项可能会影响通过 nvidia 设置的可配置性,因为 X 驱动程序不知道当前未使用的 GPU 或连接到它们的显示设备。
此外,可以为“UseDisplayDevice”选项指定特殊值“none”。当给定该值时,将禁用显示硬件的任何编程。 NVIDIA 驱动程序不会为此 X 屏幕执行任何模式验证或模式设置。这是为了与 CUDA 结合使用
Section "Device"
Identifier "Device1"
Driver "nvidia"
VendorName "NVIDIA Corporation"
BoardName "GTX"
BusID "PCI:5:0:0"
EndSection
然后在“屏幕”部分,仅使用“Device1”作为您想要用作视频输出的卡,例如:
Section "Screen"
Identifier "Screen0"
Device "Device1"
Monitor "Monitor0"
DefaultDepth 24
SubSection "Display"
Depth 24
EndSubSection
EndSection
就我而言,我有一个连接到 GTX 卡的多显示器设置,因此它比这更复杂一些,但它应该为您提供一个很好的起点。
我仍然遇到问题并尝试使用此配置调试挂起/恢复。