Could not load library libcudnn_cnn_infer.so.8. Error: libnvrtc.so: cannot open shared object file: No such file or directory
Anaconda/Miniconda로 최신 PyTorch 2.0과 CUDA 라이브러리(pytorch-cuda=11.8
)를 설치하고 PyTorch 라이브러리를 로드할 때 이런 오류가 발생하는 경우가 있다.
해당 문제는 pytorch-cuda
로 설치된 libnvrtc.so
파일이 제대로 링크되지 않아 발생한 문제이다. 이를 해결하기 위해서는 아래와 같이 기존의 libnvrtc.so.11.2
나 libnvrtc.so.11.8
등을 프로그램이 열심히 찾고있는 libnvrtc.so
로 링크해주면 된다.
현재 사용중인 conda 환경을 activate하고, 아래 Snippet을 실행하여 링크를 진행하여 문제없이 작동하였다.
NVRTC_LIB_DIR="${CONDA_PREFIX}/lib"
NVRTC_FILEPATH=$(find ${NVRTC_LIB_DIR} -type f -name 'libnvrtc.so.*')
NVRTC_FILENAME=${NVRTC_FILENAME##*/}
ln -sv ${NVRTC_FILENAME} "${NVRTC_LIB_DIR}/libnvrtc.so"
위 명령어 실행 결과로 아래와 같이 파일이 링크된 것을 확인할 수 있다. 혹시나 /lib/libnvrtc.so
로 링크된 경우에는 conda activate를 한 뒤 다시 시도해보자. 현재 위치에 잘못 생성된 libnvrtc.so
파일을 삭제해주도록 하자.
'/home/jungin500/miniconda3/envs/torch/lib/libnvrtc.so' -> 'libnvrtc.so.11.8.89'
하지만 cuDNN 버전과 CUDA 버전이 달라지면 위 방법이 먹히지 않아 다른 오류가 발생할 수도 있다.