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
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
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
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
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
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.