我有一个戴尔xps 159570笔记本电脑与英特尔和nvidia GPU运行ubuntu 18.04,并希望使用nvidia卡专门用于培训深层神经网络。我设法让X服务器在英特尔上运行
如何为x服务器配置igpu,为cuda配置nvidia gpu?
在gdm3中,当我选择使用gnome (ubuntu )登录时,它工作得很好。运行nvidia-smi显示GPU上没有进程正在运行。然而,现在我想尝试使用等离子体的kde,在那里,xserver最终使用nvidia gpu。
(base) ooo: (~) 505> nvidia-smi
Sat Jul 13 14:30:18 2019
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 430.26 Driver Version: 430.26 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 105... Off | 00000000:01:00.0 Off | N/A |
| N/A 50C P5 N/A / N/A | 66MiB / 4042MiB | 0% Default |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
| 0 2073 G /usr/lib/xorg/Xorg 66MiB |
+-----------------------------------------------------------------------------+我试图让X服务器使用英特尔添加两个配置文件
/etc/x11/xorg.con.d/01-noautogpu.conf/etc/x11/xorg.con.d/20-智能
转到/etc/X11/xorg.conf.d如下所述
https://gist.github.com/s41m0n/323513c95290c85f7054384ac34c41c5
结果不幸的是,登录后屏幕仍然是黑色的。似乎质权体本身发现并使用了nvidia gpu。
任何知道如何强制等离子使用英特尔gpu将是非常感谢。
发布于 2019-07-14 10:58:44
在发现这里的问题和答案之后,如何为x服务器配置iGPU和为CUDA工作配置nvidia GPU,特别是user890178的答案,以及对syslog的研究,我终于发现,不是等离子体做任何特定的事情,但是在使用Xorg时,gnome和等离子体外壳的问题是一样的。与Xorg一起使用gpu-manager.service
/lib/systemd/system/gpu-manager.service由显示管理器触发。
/etc/systemd/system/display-manager.service.wants/gpu-manager.servicegpu管理器检测nvidia并写入文件。
/usr/share/X11/xorg.conf.d/11-nvidia-prime.conf其中包含
# DO NOT EDIT. AUTOMATICALLY GENERATED BY gpu-manager
Section "OutputClass"
Identifier "Nvidia Prime"
MatchDriver "nvidia-drm"
Driver "nvidia"
Option "AllowEmptyInitialConfiguration"
Option "IgnoreDisplayDevices" "CRT"
Option "PrimaryGPU" "Yes"
ModulePath "/x86_64-linux-gnu/nvidia/xorg"
EndSectionWayland不使用此文件,因此nvidia卡不使用,而是用于ubuntu和等离子上的gnome。因此,实际上两者都将使用nvidia卡进行Xorg。
然后,解决方案是对Maksym Ganenko的答案在上述问题中的一个变化,这意味着将/usr/share/X11/xorg.conf.d/11-nvidia-prime.conf替换为
# DO NOT EDIT. AUTOMATICALLY GENERATED BY gpu-manager
Section "OutputClass"
Identifier "Nvidia Prime"
MatchDriver "nvidia-drm"
Driver "nvidia"
Option "AllowEmptyInitialConfiguration"
Option "IgnoreDisplayDevices" "CRT"
# Option "PrimaryGPU" "Yes" <<< commented out
ModulePath "/x86_64-linux-gnu/nvidia/xorg"
EndSection
# added
Section "OutputClass"
Identifier "intel"
MatchDriver "i915"
Driver "modesetting"
Option "PrimaryGPU" "yes"
EndSection此外,为了避免gpu管理器在启动下一次会话时替换这些更改,请遵循有关gpu管理器覆盖xorg.conf。的建议,通过运行
chattr +i /usr/share/X11/xorg.conf.d/11-nvidia-prime.conf我认为,在将问题中提到的两个文件添加到/etc/x11/xorg.con.d之后,屏幕仍然是黑色的,这是因为在/usr/share/x11/xorg.con.d中的文件中,配置文件确实包含矛盾信息。
鉴于GabrielaGarcia的评论令人惊讶地宣称,我要求的东西不能在笔记本电脑上工作,我觉得有必要提供一个证据,证明我所要求的东西是可行的,而且我提供的答案确实是让它工作的一种手段。
在这里,lspci的输出证明了两个显卡的存在。
(base) m3088: (~) 505> lspci | egrep "VGA|NVIDIA"
00:02.0 VGA compatible controller: Intel Corporation Device 3e9b
01:00.0 3D controller: NVIDIA Corporation GP107M [GeForce GTX 1050 Ti Mobile] (rev a1)在这里,ps aux过滤运行tensorflow会话的Xorg、等离子和anaconda的输出。这表明所有的程序在一起运行都很愉快,而等离子和Xorg并没有按需要使用nvidia卡(参见下面的nvidia-smi )。
(base) m3088: (~) 511> ps aux | egrep "Xorg|plasmashell|anaconda"
roebel 13139 0.9 5.1 17315584 819236 pts/1 Sl+ 00:23 0:10 /data/anasynth/anaconda3/bin/python /data/anasynth/anaconda3/bin/ipython
roebel 16198 0.0 0.0 21540 1068 pts/5 S+ 00:42 0:00 grep -E Xorg|plasmashell|anaconda
roebel 18886 1.5 1.3 628292 210572 tty2 Sl+ juil.14 24:22 /usr/lib/xorg/Xorg vt2 -displayfd 3 -auth /run/user/1000/gdm/Xauthority -background none -noreset -keeptty -verbose 3
roebel 19171 2.0 3.4 6576588 561212 ? Sl juil.14 33:16 /usr/bin/plasmashell这里,nvidia的输出证明Xorg没有使用nvidia,但是anaconda python中的tensorflow会话正在起诉它。
(base) m3088: (~) 506> nvidia-smi
Tue Jul 16 00:34:51 2019
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 430.26 Driver Version: 430.26 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 105... Off | 00000000:01:00.0 Off | N/A |
| N/A 47C P8 N/A / N/A | 123MiB / 4042MiB | 0% Default |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
| 0 13139 C /data/anasynth/anaconda3/bin/python 109MiB |
+-----------------------------------------------------------------------------+我准备提供截图来显示所有这些都发生在笔记本电脑上。
Ubuntu22.04
我终于开始使用Wayland了,但不幸的是,以前的解决方案不再起作用了。gnome在GPU上运行,随后导致接口出现一些问题。在讨论这里之后,我尝试卸载nvidia wayland支持包
sudo apt remove libnvidia-egl-wayland1随后,gnome-shell不再在Nvidia GPU上运行,保持GPU用于DNN训练的自由。
https://askubuntu.com/questions/1158036
复制相似问题