Estoy usando
Kubuntu 19.10
Intel(R) Core(TM) i7-7820HQ CPU @ 2.90GHz
NVIDIA UNIX x86_64 Kernel Module 435.21
y como Kubuntu abandonó Bumblebee, estaba buscando otra posibilidad de usar el controlador nvidia por aplicación. Por lo tanto, llegué al problema "PRIME Render Offload", pero realmente no entiendo cómo funciona, a pesar de que he leído detenidamenteGuía de instalación y archivo README del controlador de gráficos Linux acelerado por NVIDIA.
Cuando elijo, prime-select intel
puedo trabajar exclusivamente usando mis gráficos Intel en chip, mientras que al usarlo prime-select nvidia
podré usar exclusivamente la GPU nvidia, mientras que tengo que reiniciar al seleccionar respectivamente. Cuando elijo prime-select on-demand
, puedo llamar nvidia-smi
y aparecerá como...
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 |
+-----------------------------------------------------------------------------+
pero no puedo verificar si realmente puedo "usar" la GPU nvidia, por ejemplo, cuando llamo glxinfo
o glxgears
recibí la información de que no usa la GPU nvidia. También probé lo que se proporciona en el archivo Léame de NVIDIA anterior, por ejemplo __NV_PRIME_RENDER_OFFLOAD=1 glxgears
, pero no puedo probar que se utilice la GPU nvidia. Me temo que la prime-select on-demand
opción no funciona realmente o, lo que definitivamente es una opción, no entiendo realmente cómo funciona.
Entonces, por favor, ¿podría alguien ser tan amable de ayudarme aquí y desmitificar esto?
Respuesta1
Esta es una nueva 'opción' confusa que no se describe y generalmente no es de utilidad para la mayoría de los usuarios. El informe de error que llevó a que se agregara esto decía:
"Según el controlador actual de NV y GPU Intel, si cargamos nvidia.ko únicamente, podemos visualizar en la GPU Intel y dejar la NV para el aprendizaje profundo para una estación de trabajo gráfica".
Informe aquí -https://bugs.launchpad.net/ubuntu/+source/nvidia-prime/+bug/1824282
Se presentó un error sobre lo mal que se implementó esto aquí:
https://bugs.launchpad.net/ubuntu/+source/nvidia-settings/+bug/1851416
Respuesta2
En ubuntu 19.10 xorg necesita algunos parches que solo están disponibles para 18.04 y 19.04aquí Puedes leer toda la información.aquí
Primero debe eliminar los controladores Intel para utilizar el renderizado basado en software (modeseting, también conocido como renderizador llvmpipe). Instale los controladores más recientes desde estepapáy finalmente, compilar/instalar xorg parcheado.
La solución más sencilla hoy en día es actualizar a Ubuntu 20.04 e instalar los controladores de nvidia.
sudo ubuntu-drivers install
Configuro explícitamente los dispositivos iGPU y dGPU en xorg.conf.d (BusID podría ser diferente en otros sistemas):
$ 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
... reinicie y comience a funcionar:
$ 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 proviene de mate-prime-select y es un alias de esto: __NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia glxgears
Así que instale los controladores de nvidia y configure xorg.