Linux/Ubuntu

cudnn 새로설치 (feat. DNN library not found)

jinmc 2023. 6. 20. 11:00
반응형

keras를 사용해서 image classification모델을 만드는 작업을 진행 중 다음과 같은 에러를 발견했습니다.

 

DNN library is not found.

앗 뭐지.. 하던 중 그 위의 로그에서 CuDNN이 제대로 설치되어있지 않다는 신호가 뜨네요.

 

 Loaded runtime CuDNN library: 8.1.1 but source was compiled with: 8.6.0.  CuDNN library needs to have matching major version and equal or higher minor version. If using a binary install, upgrade your CuDNN library.  If building from sources, make sure the library loaded at runtime is compatible with the version specified during compile configuration.

아마 8.6의 CuDNN을 설치하면 되지 않을까 하네요.

제가 그전에 Cuda version 11.3으로 업데이트를 하면서, 이게 꼬이지 않았나 싶습니다.

 

Cuda Version 확인은, nvidia-smi, nvcc --version으로 확인이 가능합니다.

또한, 어떤 directory에 베이스를 하는지는 which nvcc 으로 확인할 수 있습니다.

 

저는 /usr/local/cuda-11.3 으로 잡혀져 있네요! 

 

CuDNN을 설치하기 위해서는, 일단 다운받아야합니다.

tar로 압축되어있는 파일을 Nvidia 공식 홈페이지에서 받아줍니다.

https://developer.nvidia.com/rdp/cudnn-archive

 

tar.xz 파일이 들어오기 때문에 이를 

tar -xJvf cudnn.tar.xz

로 풀어줍니다.

 

$ sudo cp cuda/include/cudnn*.h /usr/local/cuda/include
$ sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64
$ sudo chmod a+r /usr/local/cuda/include/cudnn*.h /usr/local/cuda/lib64/libcudnn*

당연히 경로는 다를수 있겠죠?

 

하나 더 중요한 건, PATH, LD_LIBRARY_PATH도 설정 해줘야 한다고 합니다.

(사실 이건 어디에 쓰이는 건지는 정확하게는 모르겠습니다)

 

export PATH=/usr/local/cuda-11.0/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-11.0/lib64:$LD_LIBRARY_PATH

 

이후에, 위 에러가 사라진걸 확인했습니다.

 

참조 : https://gist.github.com/kmhofmann/cee7c0053da8cc09d62d74a6a4c1c5e4

 

 

반응형