Cómo utilizar "prime-select on-demand" en la última versión de Kubuntu 19.10

Cómo utilizar "prime-select on-demand" en la última versión de Kubuntu 19.10

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 intelpuedo trabajar exclusivamente usando mis gráficos Intel en chip, mientras que al usarlo prime-select nvidiapodré usar exclusivamente la GPU nvidia, mientras que tengo que reiniciar al seleccionar respectivamente. Cuando elijo prime-select on-demand, puedo llamar nvidia-smiy 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 glxinfoo glxgearsrecibí 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-demandopció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.

información relacionada