Não é possível instalar o CUDA após o downgrade do driver nvidia no Ubuntu 16.04

1

Recentemente recebi o CUDA atualizado para a versão 9.2 e o nvidia driver para o nvidia-396 com uma atualização automática regular no meu laptop habilitado para Optimus 16.04 do Ubuntu, com o adaptador de vídeo Intel ativo por padrão e o NVidia acessado via bumblebee. Logo depois, eu tentei executar uma aplicação CUDA (usando optirun <command> ) e descobri que não funciona.

A primeira coisa que fiz foi substituir todas as entradas de "nvidia-390" (se bem me lembro era 390) em /etc/bumblebee/bumblebee.conf para "nvidia-396" - isso me ajudou antes de mais de uma vez.

Ainda não funciona ( Cannot access secondary GPU - error: Could not load GPU driver ). dmesg e há um motivo:

[  314.733284] NVRM: The NVIDIA GeForce GT 520M GPU installed in this system is
               NVRM:  supported through the NVIDIA 390.xx Legacy drivers. Please
               NVRM:  visit http://www.nvidia.com/object/unix.html for more
               NVRM:  information.  The 396.26 NVIDIA driver will ignore
               NVRM:  this GPU.  Continuing probe...

Sim, meu laptop é bem antigo, mas com SSD e 12 Gb RAM ainda não sinto muita necessidade de substituí-lo. OK, parece que então eu devo viver com o nvidia-390:

sudo apt install nvidia-390

Foi dito que muitos pacotes dependentes serão desinstalados, incluindo, aparentemente, todos os CUDA 9.2. Droga. Então, provavelmente estou preso com CUDA 9.0 também. Então, depois de desinstalar tudo (e checkin no synaptic nenhum pacote de nvidia-396 ou cuda-9.2 são deixados) eu tentei recuperá-lo:

sudo dpkg -i cuda-repo-ubuntu1604_9.0.176-1_amd64.deb
sudo apt-key adv --fetch-keys http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/7fa2af80.pub
sudo apt-get update
sudo apt-get install cuda

de acordo com o link

Três comandos ok, mas o último ... Houston, temos um problema!

$ sudo apt install cuda
Reading package lists... Done
Building dependency tree       
Reading state information... Done
E: Unable to locate package cuda

Eu tentei a solução de uma resposta neste Instalando o CUDA 8 no Ubuntu 16: Não é possível localizar a questão do package cuda , ou seja:

dpkg -l | grep '^rc' | awk '{print $2}' | sudo xargs dpkg --purge

Ele realmente limpou muita coisa, incluindo alguns dos pacotes relacionados ao cuda-9.2. No entanto, o problema ainda está lá - não consigo instalar o CUDA novamente, não importa se estou tentando 9.0 ou outra versão.

Alguma idéia?

    
por pazhosch 27.05.2018 / 13:54

3 respostas

1

Este é um novo problema:

  • o arquivo deb fornecido pela NVIDIA contém o driver 396.26 conforme requerido pela CUDA 9.2.88.
  • a versão instalada pelo ubuntu é 396.24.
  • o sistema de pacotes do ubuntu configura dependências de tal forma que um pacote nvidia, mesmo uma versão mais nova, não pode sobrescrever aquele instalado pelo Ubuntu.
  • SE você puder colocar as mãos em um pré-lançamento do pacote de drivers do ubuntu 396.26 ENTÃO

    1. você pode instalar o pré-lançamento do ubuntu (pode ser necessário jogar com ele no synaptic para ser instalado corretamente)
    2. você pode executar as três primeiras etapas das instruções da debnetwork, conforme mostrado
    3. Em vez de sudo apt-get install cuda entrar no synaptic, procure por cuda em minúscula (existe!), marque-o para ser instalado e atualize suas dependências.
    4. Você então terá todos os arquivos necessários adicionados, exceto que o link da cuda que você clicou será quebrado (porque não foi possível instalar sua própria versão do 396.26).
    5. Tudo bem: é um metapacote, não precisa ser instalado, exatamente. Marque para remoção. Quando você clica em aplicar, o synaptic pode vomitar nos restos do pacote morto, o que parece ruim, mas tem o efeito colateral de remover seu cadáver. Tente novamente e se esse foi o único pacote quebrado, a instalação irá funcionar.
    6. Dependendo do que mais você instalou e em qual ordem, você pode jogar um jogo de lógica semelhante para se livrar de outros pacotes quebrados, mas é possível. Eu sugiro strongmente não reiniciar até que você esteja em ordem. Tenho certeza que você verá o lançamento oficial em breve. Se você pudesse encontrar uma cópia de pré-lançamento, seria legal ... link
por B Student 30.05.2018 / 12:05
0

Aqui está uma solução antiga de NVIDIA e CUDA como solução para o reconhecimento total de cartões Optimus.

Você tem que desinstalar primeiro os drivers nvidia instalados, reinicializar sem drivers nvidia. Então, para prosseguir como aqui é descrito no link a seguir. É humblesome, mas isso funciona como uma solução para o seu chipset mais antigo.:

Como posso instalar o driver Nvidia GT 520 e Cuda 5.0 no Ubuntu13.04?

    
por dschinn1001 28.05.2018 / 18:42
0

Bem, depois de um tempo eu consegui contornar esse problema. O que exatamente eu fiz:

  • Limpa tudo o que contém cuda no Synaptic.
  • Forçado a versão do pacote cuda-drivers para 390.xx no Synaptic.
  • Fiz apt update then dpkg --configure -a para resolver dependências quebradas e, em seguida, apt update novamente.

  • Em seguida, sudo apt install cuda funcionou, mas ainda me ofereceu a instalação da cuda 9.2 e a atualização para nvidia-396 no processo, apesar de eu ter bloqueado o driver. Mas sudo apt install cuda-9-1 não compilaram e permitiram que eu instale o CUDA 9.1 com nvidia-390 (descobri que o driver 9.1 também funciona com nvidia-390 , é por isso que não 9.0).

Depois disso (e uma reinicialização), todos os meus aplicativos CUDA funcionam com optirun até agora. :)

O único incômodo menor que eu encontrei mais tarde é que apt dist-upgrade ainda me ofereceu para atualizar nvidia-390 (mas apt upgrade regular não o fez). Resolvido esse problema com apt-mark hold nvidia-390 e o pacote aparece agora como "bloqueado" no Synaptic também. Além disso, mesmo que eu tente executar apt install cuda manualmente, agora ele gera um erro:

The following packages have unmet dependencies:
 cuda : Depends: cuda-9-2 (>= 9.2.148) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

mas não há pacotes de pacotes quebrados de fato, então parece que agora também estou seguro de instalar a versão errada do CUDA acidentalmente.

    
por pazhosch 17.07.2018 / 19:40