Ubuntu 16.04
Saída de uname -a
:
Linux HOST 4.4.0-22-generic #40-Ubuntu SMP Thu May 12 22:03:46 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
Grau de mesa:
- CPU: Intel
- GPU: Nvidia com 361,42
O que eu quero:
- a GPU intel deve executar o xserver e meu monitor, que está conectado ao DP integrado
- a GPU nvidia deve ser usada apenas para computação específica da CUDA etc.
- controle total sobre a nvidia gpu (tempo real, estatísticas, velocidade dos ventiladores temporários ...)
Meu problema:
- nem
nvidia-smi
nemnvidia-settings
trabalho e eu não posso controlar minha GPU NVIDIA (os erros são citados mais abaixo)
Minha história:
Após o breve resumo do meu problema, quero mergulhar no tópico; Desde o lançamento do Ubuntu 16.04, estou mexendo e não consegui o seguinte:
- Quero que minha intel GPU (i7 6700K) conduza meu Xserver e tudo o que estiver associado a ele.
- Quero que minha GPU nvidia dedicada seja usada apenas para computação baseada em Cuda e similares.
- Adicionarei mais de uma GPU nvidia ao sistema, depois que meus problemas forem resolvidos.
Um breve resumo do meu estado inicial:
Instalei os drivers proprietários para nvidia e intel (intel-microcode e nvidia-361.42) via inicialização segura apt-get e disabled via mokutul --disable-validation.
Então eu configurei a nvidia-prime para usar o cartão intel.
Depois editei o meu xorg.conf para conter apenas uma tela com intel gpu e intel driver. (peça detalhes, se necessário)
Testando a GPU para renderização com o Blender, tudo parecia bem, exceto que eu não conseguia nenhuma estatística das minhas configurações de gpu e nvidia pareciam vazias.
Erros:
sudo nvidia-smi
NVIDIA-SMI couldn't find libnvidia-ml.so library in your system. Please make sure that the NVIDIA Display Driver is properly installed and present in your system:
Please also try adding directory that contains libnvidia-ml.so to your system PATH.
O que aprendi até agora em todas as minhas tentativas e pesquisas desde o lançamento (versão curta, solicite detalhes a qualquer momento):
Meus dois problemas estão relacionados, mas não são os mesmos:
Nvidia-settings Empty:
- isso ocorre porque essas configurações são exibidas apenas quando há um Xserver conectado à GPU nvidia
- a solução para isso seria adicionar uma nova tela no xorg.conf que força e xserver não utilizado a rodar na GPU nvidia
- mas atualmente isso não é possível (veja outro problema) e não é desejado, pois eu quero que a GPU da nvidia se concentre no Cuda
Nvidia-smi não está funcionando:
- bbswitch não é um problema, pois minha GPU (550ti) não suporta (erros no dmesg)
- nvidia prime altera a entrada de x86_64-linux-gnu_gl_conf para
/usr/lib/nvidia-361/ld.so.conf
(GPU nvidia selecionada) ou/usr/lib/nvidia-361-prime/ld.so.conf
(GPU intel selecionada) - faltam caminhos essenciais para a configuração da seleção intel para os módulos essenciais da nvidia, todos presentes no conf for nvidia selection
- ao mudar para a nvidia via prime-select, não tenho um Xserver porque o monitor está conectado à GPU integrada, mas ao fazer login em um console virtual, a nvidia-smi funciona
Minha suposição:
- Nvidia prime é ruim e não quer do jeito que eu quero.
- Eu tenho que de alguma forma superar o prime e configurar o sistema (mesmo escrevendo manualmente novas configurações?)
Minhas tentativas:
- Tentei desinstalar a nvidia-prime, mas só reconheci depois que isso não pode funcionar. Quando o arquivo conf para x86_64-linux-gnu_gl_conf é excluído, o resultado é uma bagunça pura ...
- Até tentei adicionar os caminhos ausentes aos arquivos x86_64-linux-gnu_gl_conf manualmente, mas não sabia realmente o que estava fazendo e não obtive sucesso.
Minhas perguntas:
1) Como posso resolver o problema da nvidia-smi? Estou no caminho certo? Alguém tem instruções de como eu poderia proceder?
2) É possível ativar o controle do ventilador e outros controles para a nvidia gpu (coolbits no xorg.conf) sem um Xserver na gpu (sem uma tela para a gpu no xorg.conf)?
Muito obrigado antecipadamente por quaisquer respostas. Eu literalmente penteei a web, o pente sendo meu problema.
Se eu perdi alguma coisa importante, informe-me e não hesite em solicitar arquivos de log etc.
OBRIGADO
fonte
Respostas:
A resposta aceita usa o servidor X para ativar os dispositivos Nvidia. Isso não é necessário e significa que o servidor X utilizará alguma memória do cartão.
Em vez disso,
nvidia-modprobe
deve ser instalado conforme descrito nas Perguntas frequentes do driver (pode ser encontrado no link abaixo).Portanto, minha solução recomendada é:
1) Instale o driver Nvidia mais recente através do arquivo de execução em ftp://download.nvidia.com/XFree86/Linux-x86_64/ com o sinalizador
--no-opengl-files
e--dkms
.2) Instalar a correspondente
nvidia-modprobe
versão através demake all
esudo make install
a partir de ftp://download.nvidia.com/XFree86/nvidia-modprobe/O
--dkms
sinalizador garante que o módulo do kernel seja recompilado quando você atualizar seu kernel.fonte
Eu (criador deste post) encontrei a solução que preciso sozinha!
Agora vou explicar a solução para qualquer pessoa que esteja em uma situação semelhante e precise dessa ajuda!
SOLUÇÃO:
INSTALE O NVIDIA DRIVER ATRAVÉS DO RUNFILE FORNECIDO EM http://www.nvidia.com/object/unix.html COM A BANDEIRA "--no-opengl-files" !!
Isso evita que não apenas os arquivos da nvidia opengl substituam os arquivos existentes da mesa, mas também instala o driver sem a nvidia prime !!
Portanto, todos os meus problemas foram resolvidos, simplesmente instalando o driver manualmente, em vez de instalá-lo a partir dos repositórios. O pacote dos repositórios é "Optimus-Friendly" e, portanto, possui todos os causadores de problemas inúteis.
SEGUNDO
o xorg.conf deve ser estendido com outra tela para a (s) GPU (s) dedicada (s) para que ela tenha / possua entradas nas configurações da nvidia.
o meu fica assim
fonte
NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.
Eu obtive a configuração que você deseja (eu também queria;)):
usando
bumblebee
.Mas antes de entrar em alguns detalhes, devo avisar que, ao alterar a configuração da nvidia-settings ou do xorg.conf ou nvidia prime, você deve reiniciar o sistema (talvez você já saiba). Não reiniciar pode deixar o sistema em um estado não consistente.
Na minha configuração, não toquei
xorg.conf
. Fazer isso por mim sempre foi fonte de dor. Por favor, deixe-o no estado original. Se você não quiser executar uma nova instalação, poderá encontrar alguns backups em/etc/X11/
(ls /etc/X11/xorg.conf*
).O primeiro passo é tentar fazer o
nvidia-settings
trabalho. Se você conseguir fazer isso, poderá usar a nvidia PRIME para alternar para a GPU intel, como mencionou que já fez. É necessário ter o ponto principal da nvidia para a GPU intel se você quiser usar a GPU NVIDIA apenas para cálculos CUDA (é especialmente necessário se você quiser usar o depurador cudacuda-gdb
).Depois disso, você pode tentar instalar o zangão :
Reinicie. Você pode monitorar o estado do zangão usando
ou
O que o zangão faz é ativar a GPU NVIDIA e tentar inserir o driver da nvidia no kernel somente quando necessário. Você pode usar o zangão pré-pendente
optirun
para o comando que deseja executar.Para fazer o zangão funcionar, tive que editar manualmente
/etc/bumblebee/bumblebee.conf
para definir corretamente o nome e o caminho do driver da nvidia.Então, depois de um
sudo service bumblebeed restart
eu consegui ativar o sistema de abelha.De fato
nvidia-smi
retornamas
optirun nvidia-smi
:Espero que isto ajude.
fonte
Eu reinstalei os drivers da nvidia sem o opengl, como mencionado nas soluções acima, mas não funcionou para mim. Além disso, essas soluções são bastante insatisfatórias, pois implicam na remoção de alguma capacidade dos drivers (opengl).
Encontrei uma solução muito mais simples, para a qual você não precisa reinstalar o driver:
export LD_LIBRARY_PATH=/usr/lib/nvidia-387:$LD_LIBRARY_PATH
Observe que, dependendo do driver instalado, pode ser necessário adicionar outra pasta ao caminho da sua biblioteca, por exemplo / usr / lib / nvidia-384 .
Você pode adicionar este comando ao arquivo ~ / .bashrc para exportar automaticamente o caminho ao carregar um novo bash.
fonte
principalmente como um lembrete para mim: no ubuntu 18.04, use o igpu para renderizar e nvidia gpu para cuda, instale drivers padrão da nvidia, abra as configurações da nvidia e defina o intel gpu. Depois disso, lista os drivers nouveau da lista negra e parte dos drivers da nvidia:
abra o /etc/modprobe.d/blacklist-nvidia.conf e as linhas de comentário desta maneira:
depois disso, abra o /etc/modprobe.d/blacklist-nvidia-nouveau.conf e adicione as seguintes linhas:
para ter certeza de que o nouveau está desativado, você pode colocá-los na lista negra em /etc/modprobe.d/blacklist.conf: no final, adicione:
depois reinicie.
digite
nvidia-smi
para verificar se a nvidia está carregada e digitelspci -nnk | grep -iA2 3D
para verificar o driver em uso é nvidia e não nouveau.fonte