web-dev-qa-db-fra.com

Cuda 6.0 / PyCuda. 'ImportError'

Cuda 5.5 avec pycuda fonctionnait très bien, mais il fallait ensuite passer à CUDA 6.0.

Maintenant, quand j'essaye de lancer un exemple de programme PyCuda, je reçois ceci:

ImportError: libcurand.so.6.0: cannot open shared object file: No such file or directory

J'ai trouvé le chemin d'accès à ce fichier, suis-je censé lier cette bibliothèque d'une manière ou d'une autre? et si oui, comment? et où aller

4
Abdou Abderrahmane

Cela se produit car le chemin de lib n'est pas présent dans la variable LD_LIBRARY_PATH.

Pour ajouter ce chemin à la variable LD_LIBRARY_PATH, ouvrez votre fichier ~/.bashrc à l'aide de

gedit ~/.bashrc

et ajoutez la ligne suivante. Relacez le <path_to_your_lib> avec le chemin d'accès au fichier.

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:<path_to_your_lib>
3
g_p

Solution: Vous devez ajouter le chemin d'accès aux bibliothèques CUDA à votre variable d'environnement $LD_LIBRARY_PATH.

Explication:

Lorsqu'un programme CUDA est exécuté, il doit être lié dynamiquement aux bibliothèques d'exécution CUDA. Par défaut, ces bibliothèques sont situées dans le répertoire /usr/local/cuda/lib. Lors de la recherche de ces bibliothèques, le système d'exploitation recherche dans les répertoires spécifiés dans la variable d'environnement $LD_LIBRARY_PATH. Si le répertoire de la bibliothèque CUDA n'est pas spécifié ici, le programme échouera avec l'erreur ci-dessus.

Il existe deux solutions (elles supposent que vous utilisez le shell bash, qui est le shell par défaut du département CS):

  1. Exécutez la commande suivante:

    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib
    

    Cette modification n'est pas persistante et devra être réexécutée chaque fois que vous vous connecterez.

  2. Editez votre fichier .profile (situé dans ~/.profile). Recherchez la ligne qui définit la variable $LD_LIBRARY_PATH, qui devrait ressembler à ce qui suit:

    LD_LIBRARY_PATH="/usr/lib:/usr/openwin/lib:/usr/dt/lib:/X11.6/lib:/X11.5/lib:/uva/lib:/gnu/lib"
    

    Modifiez cette ligne pour ajouter le chemin d'accès aux bibliothèques 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"
    

    Après avoir modifié le fichier, vous devez soit vous déconnecter et vous reconnecter, soit exécuter la commande suivante:

    source ~/.profile
    

Cette solution est persistante et ne doit être effectuée qu'une seule fois.

source

3
αғsнιη