Избегайте использования карты nvidia для Xorg с плазмой
У меня есть ноутбук Dell XPS 15 9570 с Intel и NVIDIA GPU под управлением Ubuntu Linux 18.04 и я хотел бы использовать карту NVIDIA исключительно для обучения глубоких нейронных сетей. Мне удалось запустить X-сервер на Intel после
Как настроить igpu для xserver и nvidia gpu для cuda?
он отлично работает, когда в gdm3 я выбираю для входа в систему, используя оболочку gnome (Ubuntu Wayland). Запуск nvidia-smi показывает, что на GPU не запущен процесс. Однако теперь я хотел попробовать KDE с плазмой и там X server заканчивается на 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-сервера использовать Intel, добавив два файла конфигурации
/etc/X11/xorg.conf.d/01-noautogpu.conf /etc/X11/xorg.conf.d/20-intel.conf
в /etc/X11/xorg.conf.d, как описано здесь
https://gist.github.com/s41m0n/323513c95290c85f7054384ac34c41c5
В результате, к сожалению, после входа в систему экран остается черным. Кажется, что сама плазма-оболочка находит и использует NVIDIA GPU.
Любая идея, как заставить плазму использовать Intel GPU будет очень цениться.
1 ответ
После обнаружения вопросов и ответов здесь Как настроить iGPU для xserver и nvidia GPU для работы CUDA, в частности, ответ пользователя 890178, и изучив системный журнал, я наконец-то обнаружил, что это не плазма, которая делает что-то конкретное, но проблема та же для gnome и плазменная оболочка при использовании Xorg. С Xorg gpu-manager.service
/lib/systemd/system/gpu-manager.service
запускается дисплеем-менеджером
/etc/systemd/system/display-manager.service.wants/gpu-manager.service
и gpu-manager обнаруживает 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"
EndSection
Этот файл не используется Wayland, поэтому карта nvidia не используется, но он используется для оболочки gnome на Ubuntu и Plasma. Так что на самом деле оба будут использовать карту nvidia для Xorg.
Решение - это вариант ответа Максима Ганенко на тот же вопрос, что и выше, что означает замену /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-manager не заменял эти изменения при запуске следующего сеанса, чтобы следовать совету Oren, о котором идет речь, gpu-manager перезаписывает xorg.conf, чтобы защитить файл от изменений посредством запуска
chattr +i /usr/share/X11/xorg.conf.d/11-nvidia-prime.conf
Мне кажется, что тот факт, что экран оставался черным после добавления двух файлов, упомянутых в вопросе, в /etc/X11/xorg.conf.d, связан с тем, что с файлами в / usr / share / X11 / xorg.conf.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
фильтрация Xorg, Plasma и Anaconda Python, выполняющих сеанс тензорного потока. Это показывает, что все работают хорошо вместе, в то время как Plasma и 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-smi, доказывающий, что Xorg не использует nvidia, но сеанс тензорного потока в python anaconda подает на него иск.
(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 |
+-----------------------------------------------------------------------------+
Я готов предоставить скриншоты, чтобы показать, что все это происходит на ноутбуке.