ustawienie LD_LIBRARY_PATH dla CUDA

12

Zainstalowanie zestawu narzędzi CUDA powoduje wydrukowanie następujących instrukcji na konsoli.

Upewnij się, że twoja LD_LIBRARY_PATH dla 64-bitowych dystrybucji Linuksa zawiera /usr/local/cuda-5.0/lib64:/usr/local/cuda-5.0/lib

LUB

w przypadku 64-bitowych dystrybucji Linuksa dodaj /usr/local/cuda-5.0/lib64 i /usr/local/cuda-5.0/lib do /etc/ld.so.conf i uruchom ldconfig jako root

Poniższy kod /etc/profilenie zadziałał.

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

Oznacza to, że ponowne uruchomienie i wydanie echo $LD_LIBRARY_PATHpokazało, że zmienna nie została zdefiniowana.

Aby wypróbować alternatywną sugestię, dodałem dwie linie do pliku, /etc/ld.so.confaby mój plik wyglądał tak

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

Potem wydałem:

sudo ldconfig

następnie

echo $LD_LIBRARY_PATH

Wciąż zmienna środowiskowa nie została ustawiona. Jak postępować zgodnie z instrukcjami instalacji CUDA pokazanymi powyżej?

H2ONaCl
źródło
1
ldconfig nie ustawia LD_LIBRARY_PATH, zawiera biblioteki w inny sposób.
w4etwetewtwet

Odpowiedzi:

17

Dodaj plik z .confrozszerzeniem, /etc/ld.so.conf.d/ który zawiera ścieżki do bibliotek, a następnie uruchom ldconfig. Pamiętaj, aby ustawić uprawnienia i własność pliku tak, aby pasowały do ​​innych plików w katalogu.

Jest to rozwiązanie systemowe, w przeciwieństwie do specyficznego dla użytkownika rozwiązania modyfikacji .bashrc.

W moim systemie zrobiłem nvidia.confw /etc/ld.so.conf.d/. Plik zawiera linie:

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

Jeśli utworzysz plik w takim stanie, sudotwoje uprawnienia powinny być dobre, ale mój nvidia.confjest właścicielem / rootem grupy i rw-r - r-- (lub 644).

Logan Mayfield
źródło
1
To nie działa. ldconfig nie ustawia $ LD_LIBRARY_PATH.
Nick
1
Rozumiem, że rozwiązuje to problem w taki sposób, że nie trzeba ustawiać zmiennej ścieżki. Więc jeśli „nie działa” oznacza, że ​​zmienna nie jest ustawiona, to na pewno. Jeśli „nie działa” oznacza, że ​​CUDA nie działa, potrzebne są dodatkowe informacje na temat twojego problemu, ponieważ to włącza (i nadal włącza) rozwój CUDA w mojej konfiguracji.
Logan Mayfield
Jestem pewien, że to działa na niektóre rzeczy, program, który próbowałem skompilować, chce użyć $ LD_LIBRARY_PATH, co prawdopodobnie nie jest najlepszą praktyką, oznacza to, że muszę to ustawić!
Nick
10

Wprowadź następujące informacje .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
źródło
Myślę, że preferowaną metodą jest utworzenie pliku .conf. Opisałem to w mojej odpowiedzi poniżej.
Logan Mayfield