Bei mir funktionierte Cuda 5.5 mit Pycuda prima, dann musste ich aber auf CUDA 6.0 upgraden.
Wenn ich jetzt versuche, ein PyCuda-Beispielprogramm auszuführen, erhalte ich Folgendes:
ImportError: libcurand.so.6.0: cannot open shared object file: No such file or directory
Ich habe den Pfad zu dieser Datei gefunden. Muss ich diese Bibliothek irgendwie verknüpfen? Und wenn ja, wie? Und wohin?
Antwort1
Dies liegt daran, dass der Pfad der Bibliothek in der Variablen LD_LIBRARY_PATH nicht vorhanden ist.
Um diesen Pfad zur Variable LD_LIBRARY_PATH hinzuzufügen, öffnen Sie Ihre ~/.bashrc
Datei mit
gedit ~/.bashrc
und fügen Sie die folgende Zeile hinzu. Ersetzen Sie <path_to_your_lib>
durch den Pfad zur Datei.
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:<path_to_your_lib>
Antwort2
Lösung:Sie müssen den Pfad zu den CUDA-Bibliotheken zu Ihrer $LD_LIBRARY_PATH
Umgebungsvariable hinzufügen.
Erläuterung:
Wenn ein CUDA-Programm ausgeführt wird, muss es dynamisch auf die CUDA-Laufzeitbibliotheken verweisen. Standardmäßig befinden sich diese Bibliotheken im /usr/local/cuda/lib
Verzeichnis. Bei der Suche nach diesen Bibliotheken sucht das Betriebssystem in den in der $LD_LIBRARY_PATH
Umgebungsvariable angegebenen Verzeichnissen. Wenn das CUDA-Bibliotheksverzeichnis hier nicht angegeben ist, schlägt das Programm mit dem oben gezeigten Fehler fehl.
Es gibt zwei Lösungen (diese setzen voraus, dass Sie die Bash-Shell verwenden, die Standard-Shell der Informatikabteilung):
Führen Sie den folgenden Befehl aus:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib
Diese Änderung ist nicht dauerhaft und muss bei jeder Anmeldung erneut ausgeführt werden.
Bearbeiten Sie Ihre
.profile
Datei (angeordnet unter~/.profile
). Suchen Sie die Zeile, die die$LD_LIBRARY_PATH
Variable festlegt. Sie sollte ungefähr wie folgt aussehen:LD_LIBRARY_PATH="/usr/lib:/usr/openwin/lib:/usr/dt/lib:/X11.6/lib:/X11.5/lib:/uva/lib:/gnu/lib"
Ändern Sie diese Zeile, um den Pfad zu den CUDA-Bibliotheken hinzuzufügen:
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"
Nachdem Sie die Datei bearbeitet haben, müssen Sie sich entweder ab- und wieder anmelden oder den folgenden Befehl ausführen:
source ~/.profile
Diese Lösung ist dauerhaft und muss nur einmal durchgeführt werden.