首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >避免使用带血浆的Xorg的nvidia卡

避免使用带血浆的Xorg的nvidia卡
EN

Ask Ubuntu用户
提问于 2019-07-13 12:37:40
回答 1查看 6.4K关注 0票数 2

我有一个戴尔xps 159570笔记本电脑与英特尔和nvidia GPU运行ubuntu 18.04,并希望使用nvidia卡专门用于培训深层神经网络。我设法让X服务器在英特尔上运行

如何为x服务器配置igpu,为cuda配置nvidia gpu?

在gdm3中,当我选择使用gnome (ubuntu )登录时,它工作得很好。运行nvidia-smi显示GPU上没有进程正在运行。然而,现在我想尝试使用等离子体的kde,在那里,xserver最终使用nvidia gpu。

代码语言:javascript
复制
(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将是非常感谢。

EN

回答 1

Ask Ubuntu用户

回答已采纳

发布于 2019-07-14 10:58:44

在发现这里的问题和答案之后,如何为x服务器配置iGPU和为CUDA工作配置nvidia GPU,特别是user890178的答案,以及对syslog的研究,我终于发现,不是等离子体做任何特定的事情,但是在使用Xorg时,gnome和等离子体外壳的问题是一样的。与Xorg一起使用gpu-manager.service

代码语言:javascript
复制
/lib/systemd/system/gpu-manager.service

由显示管理器触发。

代码语言:javascript
复制
/etc/systemd/system/display-manager.service.wants/gpu-manager.service

gpu管理器检测nvidia并写入文件。

代码语言:javascript
复制
/usr/share/X11/xorg.conf.d/11-nvidia-prime.conf

其中包含

代码语言:javascript
复制
# 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"
EndSection

Wayland不使用此文件,因此nvidia卡不使用,而是用于ubuntu和等离子上的gnome。因此,实际上两者都将使用nvidia卡进行Xorg。

然后,解决方案是对Maksym Ganenko的答案在上述问题中的一个变化,这意味着将/usr/share/X11/xorg.conf.d/11-nvidia-prime.conf替换为

代码语言:javascript
复制
# 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。的建议,通过运行

代码语言:javascript
复制
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的输出证明了两个显卡的存在。

代码语言:javascript
复制
(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 )。

代码语言:javascript
复制
(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会话正在起诉它。

代码语言:javascript
复制
(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支持包

代码语言:javascript
复制
sudo apt remove libnvidia-egl-wayland1

随后,gnome-shell不再在Nvidia GPU上运行,保持GPU用于DNN训练的自由。

票数 3
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/1158036

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档