cuDNN 확인

CUDA를 설치하고 나서 cuDNN을 설치하라는 내용의 글이 많다. cuDNN이 딥러닝에 관여하는 알고리즘의 속도를 높여 주기 때문이다. 그런데 cuDNN이 설치 되었는지를 확인하는 과정은 올바르지 못한 정보들이 많이 있다. 우선 cuDNN을 설치하는 과정부터 살펴 보자.

NVIDIA의 문서를 보면 다음과 같이 cuDNN 설치 과정은 압축 파일을 풀어서 특정 폴더로 옮기는 과정으로 되어 있다.

Installation Guide :: NVIDIA Deep Learning cuDNN Documentation

$ tar -xvf cudnn-linux-x86_64-8.x.x.x_cudaX.Y-archive.tar.xz
$ sudo cp cudnn-*-archive/include/cudnn*.h /usr/local/cuda/include 
$ sudo cp -P cudnn-*-archive/lib/libcudnn* /usr/local/cuda/lib64 
$ sudo chmod a+r /usr/local/cuda/include/cudnn*.h /usr/local/cuda/lib64/libcudnn*

구글 검색을 해보면 cuDNN 설치 여부를 확인 혹은 버젼 확인하는 방법으로 가장 많이 보이는 것은 다음과 같은 방법이다.

cuda – How to verify CuDNN installation? – Stack Overflow

$ cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2

즉 cudnn.h 파일의 내용을 통해서 설치 여부를 확인하는 것이다. 우선 저 방법은 최신 버젼을 설치 했을 경우에는 확인할 수 없다. 그리고 버젼을 확인할 수 있다고 하더라도 그 것이 실제로 이용하여 분석하는지를 확인할 수 없다.

다시 NVIDIA의 공식 문서를 참고해 보자. 공식 문서에서는 다른 방법을 안내하고 있다. 다만, 이 방법으로 확인하기 위해서는 tar 로 설치하는 것이 아닌 deb으로 파일을 받아서 설치를 해야한다. 그러면 src 폴더 하부에 있는 예시들을 이용할 수 있다. tar 파일에는 해당 폴더가 없다.

Installation Guide :: NVIDIA Deep Learning cuDNN Documentation

$ cp -r /usr/src/cudnn_samples_v8/ $HOME
$ cd  $HOME/cudnn_samples_v8/mnistCUDNN
$ make clean && make
$ ./mnistCUDNN

If cuDNN is properly installed and running on your Linux system, you will see a message similar to the following:
Test passed!

저 폴더를 통채로 복사해서 이용해야 한다. mnistCUDNN 폴더만 옮길 경우 상위 폴더에 있는 파일을 이용할 수 없어서 3번째 과정에서 오류가 생긴다. 잘 설치되었다면 정말로 Test passed를 확인할 수 있다. 오류가 발생하더라도 상당에서 cudnn 버젼은 확인할 수 있다.

지금 이 화면을 캡쳐할 때는 딥러닝 학습 과정에 있기 때문에 오류가 발생했다. 학습을 하고 있지 않을때 실행하면 성공 화면을 볼 수 있다. 첫 줄에 cudnn 버젼도 보인다.