我的机器上有两个 GPU:
$ lspci | grep VGA
01:00.0 VGA compatible controller: NVIDIA Corporation GM200 [GeForce GTX 980 Ti] (rev a1)
03:00.0 VGA compatible controller: NVIDIA Corporation GF108 [GeForce GT 730] (rev a1)
我想使用第一个 gpu 进行计算,所以我需要它空闲。但是 X 服务器默认在第一个 gpu 上运行,这会占用 %2 到 %10 的 gpu 容量。
我怎么能够移动X 服务器连接到第二个 gpu 吗?
答案1
好的,我明白了。
首先尝试使用以下命令创建 xorg 配置:
sudo nvidia-xconfig
这将在 处创建一个新的 xorg 配置/etc/X11/xorg.conf
。
然后将设备部分更改为如下所示:
Section "Device"
Identifier "Device1"
Driver "nvidia"
VendorName "NVIDIA Corporation"
BusID "PCI:2:0:0"
EndSection
Section "Screen"
Identifier "Screen0"
Device "Device1"
Monitor "Monitor0"
DefaultDepth 24
SubSection "Display"
Depth 24
EndSubSection
EndSection
重要的:确保您的显示器已连接到第二个 GPU。重新启动,瞧!
答案2
我有两个 GPU。以下是我将 GPU2 设置为显示的步骤:
要获取十六进制格式的 PCI,请使用:
lspci | grep VGA
对我来说,它返回:
05:00.0 VGA compatible controller: NVIDIA Corporation Device 1b02 (rev a1)
09:00.0 VGA compatible controller: NVIDIA Corporation GM200 [GeForce GTX TITAN X] (rev a1)
因此,在我的例子中,我希望用于显示的 GPU(GPU2)的时间是 09:00.0。然后我/etc/X11/xorg.conf
使用生成了sudo nvidia-xconfig
。
这将在 处创建一个新的 xorg 配置/etc/X11/xorg.conf
。
然后我在文件的以下部分仅添加了 BusID 行/etc/X11/xorg.conf
:
Section "Device"
Identifier "Device0"
Driver "nvidia"
VendorName "NVIDIA Corporation"
BusID "PCI:9:0:0"
EndSection
然后我重启了电脑,并将显示器连接到 GPU2。此后,几个 USB 端口停止工作,但其他端口可以正常用于键盘和鼠标。
答案3
此外,我还希望默认启动是特定的卡。
我没有去弄乱 xorg 文件,而是直接打开机箱,将我想要的默认显卡切换到 GPU-0 当前占用的插槽中
启动后,该卡作为 GPU-0 出现,并作为默认设置,无需进一步配置。
答案4
除了“公交车 ID”的确切数字外,上述答案非常有效。
就我的情况(Xubuntu 18.04、Kubuntu 20.04)而言,“lspci”的结果与“nvidia-settings”中显示的总线 ID 不同,正确的总线 ID 是 nvidia-settings 上的总线 ID。
如果您将错误的 pci 编号设置为总线 ID,那么您将只会看到黑屏。