я использую
Kubuntu 19.10
Intel(R) Core(TM) i7-7820HQ CPU @ 2.90GHz
NVIDIA UNIX x86_64 Kernel Module 435.21
и с тех пор как Kubuntu отказался от bumblebee, я искал другую возможность использовать драйвер nvidia для каждого приложения. Таким образом, я пришел к проблеме "PRIME Render Offload", но я не совсем понимаю, как это работает, хотя я прочиталREADME и руководство по установке графического драйвера NVIDIA Accelerated Linux.
Когда я выбираю, prime-select intel
я могу работать исключительно с помощью своей графики Intel на чипе, тогда как при использовании prime-select nvidia
я смогу использовать исключительно графический процессор NVIDIA, при этом мне придется перезагрузиться при выборе соответственно. Когда я выбираю prime-select on-demand
, я могу вызвать nvidia-smi
, и он отобразится как ...
Wed Nov 13 15:35:06 2019
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 435.21 Driver Version: 435.21 CUDA Version: 10.1 |
|-------------------------------+----------------------+----------------------+
| 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 940MX Off | 00000000:02:00.0 Off | N/A |
| N/A 36C P8 N/A / N/A | 0MiB / 2004MiB | 0% Default |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
| No running processes found |
+-----------------------------------------------------------------------------+
но я не могу проверить, могу ли я действительно "использовать" графический процессор nvidia, например, при вызове glxinfo
или glxgears
я получил информацию, что он не использует графический процессор nvidia. Я также пробовал то, что указано в файле NVIDIA Readme выше, например __NV_PRIME_RENDER_OFFLOAD=1 glxgears
, но я не могу доказать, что графический процессор nvidia используется. Я боюсь, что эта prime-select on-demand
опция на самом деле не работает, или - что определенно является опцией - я не совсем понимаю, как она работает.
Поэтому, пожалуйста, может ли кто-нибудь быть настолько любезным, чтобы помочь мне здесь и развеять мифы по этому поводу?
решение1
Это запутанная новая «опция», которая не описана и, как правило, бесполезна для большинства пользователей. Отчет об ошибке, который привел к добавлению этой опции, гласил:
«Согласно текущему драйверу NV и графического процессора Intel, если мы загрузим только nvidia.ko, мы сможем выполнять отображение на графическом процессоре Intel и предоставить NV глубокому обучению для графической рабочей станции».
Сообщить здесь -https://bugs.launchpad.net/ubuntu/+source/nvidia-prime/+bug/1824282
Сообщение об ошибке о том, как плохо это было реализовано здесь -
https://bugs.launchpad.net/ubuntu/+source/nvidia-settings/+bug/1851416
решение2
В Ubuntu 19.10 xorg нужны некоторые патчи, которые доступны только для 18.04 и 19.04здесь Вы можете прочитать всю информациюздесь
Сначала вам нужно удалить драйверы Intel, чтобы использовать программный рендеринг (modeseting, он же llvmpipe renderer). Установите последние драйверы отсюдаппаи наконец, скомпилируйте/установите пропатченный xorg.
Самое простое решение на сегодняшний день — обновиться до Ubuntu 20.04 и установить драйверы NVIDIA.
sudo ubuntu-drivers install
Я явно настраиваю устройства iGPU и dGPU в xorg.conf.d (BusID может быть другим в других системах):
$ sudo cat /etc/X11/xorg.conf.d/20-intel.conf
Section "Device"
Identifier "Intel Graphics"
Driver "intel"
Option "AccelMethod" "sna"
EndSection
$ sudo cat /etc/X11/xorg.conf.d/90-nvidia.conf
Section "ServerLayout"
Identifier "layout"
Screen 0 "iGPU"
Option "AllowNVIDIAGPUScreens"
EndSection
Section "Device"
Identifier "iGPU"
Driver "modesetting"
BusID "PCI:0:2:0"
EndSection
Section "Screen"
Identifier "iGPU"
Device "iGPU"
EndSection
Section "Device"
Identifier "dGPU"
Driver "nvidia"
BusID "PCI:3:0:0"
EndSection
... перезагрузите и заставьте Prime работать:
$ offload-glx glxinfo | grep "OpenGL renderer"
OpenGL renderer string: GeForce 940M/PCIe/SSE2
$ glxinfo | grep "OpenGL renderer"
OpenGL renderer string: Mesa Intel(R) HD Graphics 5500 (BDW GT2)
offload_glx происходит от mate-prime-select и является псевдонимом этого: __NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia glxgears
Поэтому установите драйверы nvidia и настройте xorg.