Eu tinha o Cuda 5.5 com o pycuda funcionando muito bem, mas precisei atualizar para o CUDA 6.0.
Agora, quando tento executar um programa PyCuda de amostra, recebo o seguinte:
ImportError: libcurand.so.6.0: cannot open shared object file: No such file or directory
Encontrei o caminho para esse arquivo. Devo vincular esta biblioteca de alguma forma? e se sim, como? e para onde?
Responder1
Isso está acontecendo porque o caminho da lib não está presente na variável LD_LIBRARY_PATH.
Para adicionar este caminho à variável LD_LIBRARY_PATH, abra seu ~/.bashrc
arquivo usando
gedit ~/.bashrc
e adicione a seguinte linha. Substitua o <path_to_your_lib>
com o caminho para o arquivo.
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:<path_to_your_lib>
Responder2
Solução:Você precisa adicionar o caminho das bibliotecas CUDA à sua $LD_LIBRARY_PATH
variável de ambiente.
Explicação:
Quando um programa CUDA é executado, ele precisa se vincular dinamicamente às bibliotecas de tempo de execução CUDA. Por padrão, essas bibliotecas estão localizadas no /usr/local/cuda/lib
diretório. Ao procurar por essas bibliotecas, o sistema operacional procura nos diretórios especificados na $LD_LIBRARY_PATH
variável de ambiente. Se o diretório da biblioteca CUDA não for especificado aqui, o programa falhará com o erro mostrado acima.
Existem duas soluções (supõem que você esteja usando o shell bash, que é o shell padrão do CS Department):
Execute o seguinte comando:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib
Essa alteração não é persistente e precisará ser executada novamente sempre que você fizer login.
Edite seu
.profile
arquivo (localizado em~/.profile
). Encontre a linha que define a$LD_LIBRARY_PATH
variável, que deve ser semelhante a esta:LD_LIBRARY_PATH="/usr/lib:/usr/openwin/lib:/usr/dt/lib:/X11.6/lib:/X11.5/lib:/uva/lib:/gnu/lib"
Modifique essa linha para adicionar o caminho às bibliotecas CUDA:
LD_LIBRARY_PATH="/usr/lib:/usr/openwin/lib:/usr/dt/lib:/X11.6/lib:/X11.5/lib:/uva/lib:/gnu/lib:/usr/local/cuda/lib"
Depois de editar o arquivo, você precisa sair e fazer login novamente ou executar o seguinte comando:
source ~/.profile
Esta solução é persistente e só precisa ser executada uma vez.