pycuda가 훌륭하게 작동하는 Cuda 5.5를 사용했지만 CUDA 6.0으로 업그레이드해야 했습니다.
이제 샘플 PyCuda 프로그램을 실행하려고 하면 다음과 같은 결과가 나타납니다.
ImportError: libcurand.so.6.0: cannot open shared object file: No such file or directory
해당 파일의 경로를 찾았습니다. 어떻게든 이 라이브러리를 연결해야 합니까? 그렇다면 어떻게? 그리고 어디로?
답변1
이는 LD_LIBRARY_PATH 변수에 lib 경로가 없기 때문에 발생합니다.
이 경로를 LD_LIBRARY_PATH 변수에 추가하려면 다음을 ~/.bashrc
사용하여 파일을 엽니다.
gedit ~/.bashrc
그리고 다음 줄을 추가하세요. 을 <path_to_your_lib>
파일 경로로 바꿉니다.
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:<path_to_your_lib>
답변2
해결책:환경 변수 에 CUDA 라이브러리 경로를 추가해야 합니다 $LD_LIBRARY_PATH
.
설명:
CUDA 프로그램이 실행되면 CUDA 런타임 라이브러리에 동적으로 연결되어야 합니다. 기본적으로 이러한 라이브러리는 디렉터리에 있습니다 /usr/local/cuda/lib
. 이러한 라이브러리를 검색할 때 운영 체제는 $LD_LIBRARY_PATH
환경 변수에 지정된 디렉터리를 찾습니다. 여기에 CUDA 라이브러리 디렉터리가 지정되지 않으면 위에 표시된 오류와 함께 프로그램이 실패합니다.
두 가지 해결 방법이 있습니다(기본 CS 부서 쉘인 bash 쉘을 사용한다고 가정).
다음 명령을 실행하십시오.
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib
이 변경 사항은 영구적이지 않으며 로그인할 때마다 다시 실행해야 합니다.
파일을 편집합니다
.profile
( 위치~/.profile
). 변수 를 설정하는 줄을 찾으세요$LD_LIBRARY_PATH
. 다음과 비슷해야 합니다.LD_LIBRARY_PATH="/usr/lib:/usr/openwin/lib:/usr/dt/lib:/X11.6/lib:/X11.5/lib:/uva/lib:/gnu/lib"
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"
파일을 편집한 후 로그아웃했다가 다시 로그인하거나 다음 명령을 실행해야 합니다.
source ~/.profile
이 해결 방법은 영구적이므로 한 번만 수행하면 됩니다.