Como usar “prime-select on-demand” no Kubuntu 19.10 mais recente

Como usar “prime-select on-demand” no Kubuntu 19.10 mais recente

estou a usar

Kubuntu 19.10
Intel(R) Core(TM) i7-7820HQ CPU @ 2.90GHz
NVIDIA UNIX x86_64 Kernel Module  435.21

e como o Kubuntu abandonou o bumblebee, eu estava procurando outra possibilidade de usar o driver nvidia por aplicativo. Assim, cheguei ao problema "PRIME Render Offload", mas não entendo realmente como funciona, embora tenha lidoLEIA-ME e guia de instalação do driver gráfico NVIDIA acelerado para Linux.

Quando eu escolher, prime-select intelposso trabalhar exclusivamente usando meus gráficos Intel on-chip, enquanto usando, prime-select nvidiapoderei usar exclusivamente GPU nvidia, enquanto terei que reiniciar ao selecionar respectivamente. Quando eu quiser prime-select on-demand, posso ligar nvidia-smie ele 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                                                 |
+-----------------------------------------------------------------------------+

mas não posso verificar se posso realmente "usar" a GPU nvidia, por exemplo, ao ligar glxinfoou glxgearsrecebi a informação de que ela não usa GPU nvidia. Também tentei o que é fornecido no Leiame da NVIDIA acima, por exemplo __NV_PRIME_RENDER_OFFLOAD=1 glxgears, mas não posso provar que a GPU da Nvidia é usada. Receio que a prime-select on-demandopção não esteja realmente a funcionar, ou - o que é definitivamente uma opção - não compreendo realmente como funciona.

Assim, por favor, alguém poderia ter a gentileza de me ajudar aqui e desmistificar isso?

Responder1

Esta é uma nova 'opção' confusa que não é descrita e geralmente não tem utilidade para a maioria dos usuários. O relatório de bug que levou a isso ser adicionado afirmou -

"De acordo com o driver NV e GPU Intel atual, se carregarmos apenas nvidia.ko, podemos exibir na GPU Intel e deixar o NV para aprendizado profundo para uma estação de trabalho gráfica."

Informe aqui -https://bugs.launchpad.net/ubuntu/+source/nvidia-prime/+bug/1824282

Bug registrado sobre como isso foi mal implementado aqui -

https://bugs.launchpad.net/ubuntu/+source/nvidia-settings/+bug/1851416

Responder2

No Ubuntu 19.10, o xorg precisa de alguns patches que estão disponíveis apenas para 18.04 e 19.04aqui Você pode ler todas as informaçõesaqui

primeiro você precisa remover os drivers Intel para usar a renderização baseada em software (modeseting, também conhecido como renderizador llvmpipe). Instale os drivers mais recentes desteppae finalmente, compile/instale o xorg corrigido.

A solução mais fácil hoje é atualizar para o Ubuntu 20.04 e instalar drivers nvidia

sudo ubuntu-drivers install

Eu configuro explicitamente os dispositivos iGPU e dGPU em xorg.conf.d (o BusID pode ser diferente em outros 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 e comece a trabalhar:

$ 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 vem de mate-prime-select e é um alias deste: __NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia glxgears

Portanto, instale os drivers da nvidia e configure o xorg.

informação relacionada