Arquivo libcuda.so.1 ausente após a atualização para o driver nvidia mais recente

2

Eu atualizei para o driver (nvidia) mais recente (beta) - nvidia-381 devido a um problema com o driver anterior. Eu tive um problema com as bordas da janela depois de acordar da suspensão - veja aqui .

Por esse motivo, fiz o upgrade para o driver mais recente, de 375.39 para 381.09 .

Desde a atualização, eu tive que reinstalar o Cuda Toolkit 8.0 (e CUDNN v5.1) da Nvidia, no entanto, parece para ser um arquivo de driver ausente, o que me impede de instalar o Tensorflow e o pacote gputools em R, que são baseados no Cuda Toolkit, que, por sua vez, precisa do arquivo libcuda.so.1 ausente. Nem Tensorflow nem gputools conseguem localizar o arquivo: libcuda.so.1 . Com o driver anterior, consegui instalar o Cuda Toolkit sem problemas.

Este é um problema semelhante, mas com drivers mais antigos envolvidos: link

Eu li que eu poderia criar este arquivo, pois é um link simbólico, no entanto, eu preferiria não fazer, já que não sei quais outras dependências existem. Exemplo de possível solução alternativa: link

Estou executando o Ubuntu 16.04. Também postei essa pergunta no Ubuntu launchpad

Perguntas:

  1. Alguém pode ver por que este arquivo está faltando ou propor uma solução estável?
  2. Se eu tiver que mudar meu driver - qual é a melhor maneira de fazer o downgrade e como decido a qual downgrade?

Informação extra:

  1. Se eu pesquisar o arquivo ausente no meu sistema, localizarei os arquivos semelhantes a seguir, mas não o que eu preciso:

    user@user $ tree / -fiC | grep libcuda.so
        /usr/local/cuda-8.0/doc/man/man7/libcuda.so.7
        /usr/local/cuda-8.0/lib64/stubs/libcuda.so
        /usr/share/man/man7/libcuda.so.7
    
  2. Se eu olhar para ver o que o driver da Nvidia gostaria de desinstalar , devo usar o script de desinstalação fornecido, então vemos que ele não estava ciente do arquivo libcuda.so.1 em instalação, por isso não está neste script:

    user@user $ /usr/local/cuda-8.0/bin$ cat 
    
    .uninstall_manifest_do_not_delete.txt | grep libcuda.so
    file:/usr/share/man/man7/libcuda.so.7:5708adf9bb3c591eb4f1d0d50e78f3df
    file:/usr/local/cuda-8.0/lib64/stubs/libcuda.so:8347cb2f5500934b1942ba42f3979fac
    file:/usr/local/cuda-8.0/doc/man/man7/libcuda.so.7:5708adf9bb3c591eb4f1d0d50e78f3df
    
  3. Como há o stub do arquivo libcuda.so.1 (visto na saída acima), criei o symlink ausente para esse arquivo:

    user@user $ sudo ln -s /usr/local/cuda-8.0/lib64/stubs/libcuda.so /usr/local/cuda-8.0/lib64/libcuda.so.1
    

    Isso realmente permitiu que o pacote gputools em R fosse instalado com sucesso, no entanto, as funções que chamam a GPU falharam:

    R> gpuMatMult(matA, matB)
    Error in gpuMatMult(matA, matB) : device memory allocation failed Calls: gpuMatMult -> .Call
    
  4. Usando o utilitário deviceQuery que é empacotado no samples do Cuda Toolkit (você tem que primeiro sudo make dele), vejo definitivamente algo errado, que o Cuda percebe:

    user@user $ /usr/local/cuda/samples/1_Utilities/deviceQuery$ ./deviceQuery
    
        ./deviceQuery Starting...
    
        CUDA Device Query (Runtime API) version (CUDART static linking)
    
        cudaGetDeviceCount returned 35
        -> CUDA driver version is insufficient for CUDA runtime version
        Result = FAIL
    

Estado atual:

Eu fiz o downgrade para o driver anterior que eu conhecia para trabalhar com o Cuda Toolkit 8.0, CUDNN 5.1 - nvidia-378.13 . As ferramentas que usam Cuda e CUDNN também estão funcionando bem como antes, e. tensorflow , gputools (em R), etc.

Tudo está funcionando como esperado, incluindo o bug que mostra as bordas da janela pixelizada depois de acordar da suspensão.

    
por n1k31t4 17.04.2017 / 23:46

0 respostas