Teste CUDA 7.0 falhou no Ubuntu 14.04

3

Eu segui o guia oficial da nvidia para instalar o cuda-7.0, mas tive alguns problemas que não forneceram uma explicação completa. E minhas amostras de teste não podem ser construídas por make . Vou explicar os vários erros que encontrei durante a instalação.

ambiente

Estou trabalhando em um Ubuntu 14.04 de 64 bits, com NVIDIA Corporation GK107 [GeForce GT 640 OEM] retornado por lspci | grep -i nvidia . Minha versão do gcc é 4.4.7.

pacote

Eu baixei do link do "Linux x86 - > Ubuntu 14.04 - > Local Package Installer", que ele não fornece um valor md5 para verificar. Mas depois a instalação foi bem como parece.

instalação

eu fiz:

sudo dpkg -i cuda*.deb # returned: OK
sudo apt-get update
sudo apt-get install cuda

teste

Como disse o guia oficial, primeiro tenho que configurar o caminho do ambiente. Eu mudei para:

cd /usr/local/cuda-7.0

e posso adicionar o caminho:

export PATH=/usr/local/cuda-7.0/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-7.0/lib64:$LD_LIBRARY_PATH

Aqui está o primeiro problema: o caminho é perdido sempre que eu fecho o terminal. Desde que eu posso verificá-lo com nvcc -V onde temos nvcc sob o primeiro diretório.

Quando tentei compilar as amostras:

cd /usr/local/cuda-7.0/samples
sudo make

Por fim, retornou erros:

make[1]: entering directory '/usr/local/cuda-7.0/samples/2_Graphics/Mandelbrot'
/usr/local/cuda-7.0/bin/nvcc -ccbin g++   -m64      -gencode
arch=compute_20,code=sm_20 -gencode arch=compute_30,code=sm_30 -gencode
arch=compute_35,code=sm_35 -gencode arch=compute_37,code=sm_37 -gencode
arch=compute_50,code=sm_50 -gencode arch=compute_52,code=sm_52 -gencode
arch=compute_52,code=compute_52 -o Mandelbrot Mandelbrot.o Mandelbrot_cuda.o Mandelbrot_gold.o  -L../../common/lib/linux/x86_64 -L/usr/lib/"nvidia-346" -lGL -lGLU -lX11 -lXi -lXmu -lglut -lGLEW
/usr/bin/ld: warning: libnvidia-tls.so.346.46, needed by /usr/lib/nvidia-346/libGL.so, not found (try using -rpath or -rpath-link)
/usr/bin/ld: warning: libnvidia-glcore.so.346.46, needed by /usr/lib/nvidia-346/libGL.so, not found (try using -rpath or -rpath-link)
/usr/lib/nvidia-346/libGL.so:‘_nv018tls’ undefined reference
...
# list of undefined reference

E eu não posso ir mais longe.

outras verificações

  • cat /proc/driver/nvidia/version não funciona, pois /proc/driver não tem o diretório nvidia/ .

  • /dev/nvidia* não sai.

  • nvidia-smi comando não encontrado.

Esses problemas existem após a reinicialização.

algumas correções

Corrigidas as configurações de caminho e lib adicionando essas duas linhas em ~/.profile para o usuário atual:

export PATH=/usr/local/cuda-7.0/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-7.0/lib64:$LD_LIBRARY_PATH

E encontrou um link útil: Instalando e testando o CUDA no Ubuntu 14.04 parece que preciso instalar pelo arquivo de execução.

    
por knh190 24.03.2015 / 16:08

4 respostas

3

Depois de vários testes, finalmente encontrei a solução. Instalação de CUDA é uma dor, para o qual mantém corrompendo a configuração do meu sistema que não tenho como reverter.

A solução para a instalação deve ser feita no modo tty1 (linha de comando), porque ele precisa eliminar o serviço GUI antes de instalar os drivers NVIDIA, ou ele se recusará a funcionar. E precisamos de .run file. Por razões que eu não posso saber, os arquivos .deb nunca se configuram corretamente, e eu nunca consegui que funcionassem. olhe Instalando e testando CUDA no Ubuntu 14.04 para uma solução similar .

Precisa mencionar, de acordo com minhas trilhas:

  • a instalação via apt não pode ser bem-sucedida.
  • a instalação via arquivos deb não pode ser bem-sucedida.
por knh190 26.03.2015 / 16:03
3

Eu tive o mesmo problema. A execução do seguinte comando me ajudou a testar e entender o problema:

ldd /usr/lib/nvidia-346/libGL.so.346.46

Por fim, adicionar o seguinte ao meu ~/.profile resolveu o problema:

export LD_LIBRARY_PATH=/usr/lib/nvidia-346:$LD_LIBRARY_PATH

como de fato o caminho /usr/lib/nvidia-346 não foi fornecido ao vinculador.

    
por Cory86 24.05.2015 / 17:33
1

Eu também enfrentei o mesmo problema, no Ubuntu 14.04, x86_64 com o cuda 7.5. Os avisos foram:

/usr/bin/ld: warning: libnvidia-tls.so.352.63, needed by /usr/lib/nvidia-352/libGL.so, not found (try using -rpath or -rpath-link)
/usr/bin/ld: warning: libnvidia-glcore.so.352.63, needed by /usr/lib/nvidia-352/libGL.so, not found (try using -rpath or -rpath-link)

Esta foi a saída de ldd /usr/lib/nvidia-352/libGL.so :

$ ldd /usr/lib/nvidia-352/libGL.so
linux-vdso.so.1 =>  (0x00007ffc1c5d4000)
libnvidia-tls.so.352.63 =>
libnvidia-glcore.so.352.63 =>
libX11.so.6 => /usr/lib/x86_64-linux-gnu/libX11.so.6 (0x00007f161512e000)
libXext.so.6 => /usr/lib/x86_64-linux-gnu/libXext.so.6 (0x00007f1614f1c000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f1614b57000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f1614952000)
libm.so.6 => /lib/x86_64-linux-(0x00007f1615488000)gnu/libm.so.6 (0x00007f161464c000)
libxcb.so.1 => /usr/lib/x86_64-linux-gnu/libxcb.so.1 (0x00007f161442d000)
/lib64/ld-linux-x86-64.so.2 (0x0000557aa9c51000)
libXau.so.6 => /usr/lib/x86_64-linux-gnu/libXau.so.6 (0x00007f1614228000)
libXdmcp.so.6 => /usr/lib/x86_64-linux-gnu/libXdmcp.so.6 (0x00007f1614022000)

Eu adicionei a seguinte linha a ~/.zshrc ( ~/.bashrc ... se você estiver usando o bash):

export LD_LIBRARY_PATH=/usr/lib/nvidia-352:$LD_LIBRARY_PATH

Assim, a seguir estão as entradas relacionadas a cuda em my ~/.zshrc :

export PATH=$PATH:/usr/local/cuda-7.5/bin
export LD_LIBRARY_PATH=/usr/local/cuda-7.5/lib64:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=/usr/lib/nvidia-352:$LD_LIBRARY_PATH

Então eu obtive ~/.zshrc

source ~/.zshrc

Agora, ldd /usr/lib/nvidia-352/libGL.so mostra:

linux-vdso.so.1 =>  (0x00007ffc1c5d4000)
libnvidia-tls.so.352.63 => tls/libnvidia-tls.so.352.63 (0x00007f1617f1c000)
libnvidia-glcore.so.352.63 (0x00007f1615488000)
libX11.so.6 => /usr/lib/x86_64-linux-gnu/libX11.so.6 (0x00007f161512e000)
libXext.so.6 => /usr/lib/x86_64-linux-gnu/libXext.so.6 (0x00007f1614f1c000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f1614b57000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f1614952000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f161464c000)
libxcb.so.1 => /usr/lib/x86_64-linux-gnu/libxcb.so.1 (0x00007f161442d000)
/lib64/ld-linux-x86-64.so.2 (0x0000557aa9c51000)
libXau.so.6 => /usr/lib/x86_64-linux-gnu/libXau.so.6 (0x00007f1614228000)
libXdmcp.so.6 => /usr/lib/x86_64-linux-gnu/libXdmcp.so.6 (0x00007f1614022000)

Depois disso, o diretório make inside NVIDIA_CUDA-7.5_Samples foi concluído com êxito.

    
por Aby Sam Ross 10.04.2016 / 09:40
0

Eu tive o mesmo problema. Eu instalei usando o pacote .deb do site nvidia no Ubuntu 14.04. Solução para mim foi:

  • adicione export LD_LIBRARY_PATH=/usr/lib/nvidia-346:$LD_LIBRARY_PATH a ~ / .bashrc
  • tipo de terminal aberto:
  • cd para a pasta de amostras
  • sudo bash
  • source ~./bashrc
  • verifique se / usr / lib / nvidia-346 está em LD_LIBRARY_PATH
  • make -j

Isso resolveu para mim.

Tenho a sensação de que há alguns problemas de permissão ao instalar o CUDA usando o arquivo cuda-repo-ubuntuXXX_amd64.deb. Eu tenho o

    
por StefanoHo 29.05.2015 / 16:34