definindo LD_LIBRARY_PATH para CUDA


12

A instalação do kit de ferramentas CUDA resulta na impressão das seguintes instruções no console.

Verifique se o seu LD_LIBRARY_PATH para distribuições Linux de 64 bits inclui /usr/local/cuda-5.0/lib64:/usr/local/cuda-5.0/lib

OU

para distribuições Linux de 64 bits, adicione /usr/local/cuda-5.0/lib64 e /usr/local/cuda-5.0/lib em /etc/ld.so.conf e execute ldconfig como root

O código a seguir não /etc/profileteve efeito.

if [ -z "$LD_LIBRARY_PATH" ]; then    
  LD_LIBRARY_PATH=/usr/local/cuda-5.0/lib64:/usr/local/cuda-5.0/lib
else
  LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-5.0/lib64:/usr/local/cuda-5.0/lib
fi
export LD_LIBRARY_PATH

Ou seja, reiniciar e emitir echo $LD_LIBRARY_PATHmostrou que a variável não foi definida.

Para tentar a sugestão alternativa, adicionei as duas linhas ao arquivo /etc/ld.so.confpara que meu arquivo fique assim

include /etc/ld.so.conf.d/*.conf 
/usr/local/cuda-5.0/lib64
/usr/local/cuda-5.0/lib

Então eu emiti:

sudo ldconfig

então

echo $LD_LIBRARY_PATH

Ainda a variável de ambiente não foi definida. Como obedeço às instruções de instalação CUDA mostradas acima?


1
O ldconfig não define LD_LIBRARY_PATH, inclui bibliotecas de uma maneira diferente.
W4etwetewtwet

Respostas:


17

Adicione um arquivo com a .confextensão /etc/ld.so.conf.d/ que contenha os caminhos para as bibliotecas e execute ldconfig. Certifique-se de definir as permissões e a propriedade do arquivo para corresponder aos outros arquivos no diretório.

Esta é uma solução abrangente do sistema, em oposição à solução específica do usuário de modificar o .bashrc.

No meu sistema eu fiz nvidia.confem /etc/ld.so.conf.d/. O arquivo contém as linhas:

/usr/local/cuda-5.0/lib64
/usr/local/cuda-5.0/lib

Se você criar o arquivo como tal sudo, suas permissões deverão ser boas, mas my nvidia.confé proprietário / raiz do grupo e rw-r - r-- (ou 644).


1
Isso não parece funcionar. O ldconfig não define o $ LD_LIBRARY_PATH.
Nick

1
Meu entendimento é que ele resolve o problema de tal maneira que você não precisa definir a variável do caminho. Portanto, se "não funcionar" significa que a variável não está definida, então com certeza. Se "não funcionar" significa que o CUDA não está funcionando, são necessárias mais informações sobre o seu problema, pois isso habilitou (e continua a habilitar) o desenvolvimento do CUDA na minha configuração.
Logan Mayfield

Tenho certeza de que funciona para algumas coisas, o programa que eu estava tentando compilar quer usar o $ LD_LIBRARY_PATH, que provavelmente não é uma prática recomendada, significa que eu preciso configurá-lo!
Nick

10

Coloque o seguinte em .bashrc.

if [ -z $LD_LIBRARY_PATH ]; then
  LD_LIBRARY_PATH=/usr/local/cuda-5.0/lib64:/usr/local/cuda-5.0/lib
else
  LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-5.0/lib64:/usr/local/cuda-5.0/lib
fi
export LD_LIBRARY_PATH

Eu acho que o método preferido é criar um arquivo .conf. Eu descrevi isso na minha resposta abaixo.
Logan Mayfield
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.