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 intel
posso trabalhar exclusivamente usando meus gráficos Intel on-chip, enquanto usando, prime-select nvidia
poderei usar exclusivamente GPU nvidia, enquanto terei que reiniciar ao selecionar respectivamente. Quando eu quiser prime-select on-demand
, posso ligar nvidia-smi
e 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 glxinfo
ou glxgears
recebi 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-demand
opçã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.