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?

H2ONaCl
fonte
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).

Logan Mayfield
fonte
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
H2ONaCl
fonte
Eu acho que o método preferido é criar um arquivo .conf. Eu descrevi isso na minha resposta abaixo.
Logan Mayfield