Skip to Content
Infra & DevOpsNVIDIA cuDNN 오프라인 설치 완전 가이드 (폐쇄망 딥러닝 인프라 구축)
☁️ Infra & DevOps2018년 10월 22일

NVIDIA cuDNN 오프라인 설치 완전 가이드 (폐쇄망 딥러닝 인프라 구축)

#cudnn#gpu#nvidia#deep-learning#cuda#infra

NVIDIA 드라이버 설치CUDA Toolkit 설치라는 험난한 산을 넘었다면, GPU 딥러닝 인프라 구축의 마지막 퍼즐 조각이 남습니다. 바로 TensorFlow·PyTorch가 CUDA Core와 Tensor Core를 가져다 쓸 수 있도록 최적화된 행렬 연산 루틴을 제공하는 cuDNN (CUDA Deep Neural Network Library) 입니다.

cuDNN이 없으면 GPU가 있어도 딥러닝 프레임워크는 GPU를 활용하지 못하고 CPU로만 연산합니다.


cuDNN / CUDA / TensorFlow 버전 호환 매트릭스

설치 전 반드시 확인해야 할 버전 호환성입니다. 맞지 않으면 런타임에 Could not load library libcudnn 오류가 발생합니다.

cuDNNCUDATensorFlow-GPUPyTorch
8.912.x2.13+2.1+
8.611.82.10 ~ 2.122.0
8.111.22.4 ~ 2.91.8+
7.610.12.0 ~ 2.31.4
7.19.01.110.4

전체 매트릭스: NVIDIA cuDNN Support Matrix 


1. 외부망에서 cuDNN 아카이브 다운로드

yum/apt로는 설치할 수 없습니다. NVIDIA 개발자 계정으로 로그인해야만 다운로드 가능합니다.

  • 다운로드 경로: NVIDIA cuDNN Archive 
  • 설치된 CUDA 버전에 맞는 Linux x86_64 tar 파일 선택
  • 다운로드한 .tgz 파일을 폐쇄망 서버로 반입 (USB, 내부 파일 서버 등)
plaintext
예) cudnn-9.0-linux-x64-v7.1.tgz ^^^^ ^^^ CUDA cuDNN

2. 수동 설치 (헤더·라이브러리 파일 병합)

cuDNN 설치의 본질은 CUDA 설치 디렉터리 안에 파일을 끼워 넣는 것입니다. 별도로 설치되는 패키지가 아닙니다.

shell
# 압축 해제 $ tar -zxvf cudnn-9.0-linux-x64-v7.tgz # → 'cuda' 폴더가 생성됨 # 헤더 파일을 CUDA include 디렉터리에 복사 $ sudo cp cuda/include/cudnn*.h /usr/local/cuda/include/ # 동적 라이브러리(.so)를 CUDA lib64 디렉터리에 복사 $ sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64/ # 읽기 권한 부여 (모든 계정이 라이브러리 로드 가능하도록) $ sudo chmod a+r /usr/local/cuda/include/cudnn*.h \ /usr/local/cuda/lib64/libcudnn* # 공유 라이브러리 캐시 갱신 $ sudo ldconfig

3. LD_LIBRARY_PATH 환경변수 설정

TensorFlow가 libcudnn.so를 찾을 수 있도록 경로를 등록합니다.

shell
# ~/.bashrc 또는 /etc/profile.d/cuda.sh 에 추가 export CUDA_HOME=/usr/local/cuda export LD_LIBRARY_PATH=$CUDA_HOME/lib64:$LD_LIBRARY_PATH export PATH=$CUDA_HOME/bin:$PATH
shell
# 적용 $ source ~/.bashrc # 경로 확인 $ echo $LD_LIBRARY_PATH /usr/local/cuda/lib64:...

4. 설치 확인

cuDNN 버전 확인

shell
$ cat /usr/local/cuda/include/cudnn.h | grep -E "CUDNN_MAJOR|CUDNN_MINOR|CUDNN_PATCHLEVEL" #define CUDNN_MAJOR 7 #define CUDNN_MINOR 1 #define CUDNN_PATCHLEVEL 4 # → cuDNN 7.1.4 설치 확인

cuDNN 8.x 이상은 cudnn_version.h 파일로 분리됩니다.

shell
$ cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR

Python에서 TensorFlow GPU 인식 확인

python
import tensorflow as tf print(tf.__version__) # GPU 사용 가능 여부 (True 가 나와야 정상) print(tf.test.is_gpu_available()) # 상세 디바이스 목록 print(tf.config.list_physical_devices('GPU'))

5. 자주 발생하는 오류

오류원인해결
Could not load library libcudnn_ops_infer.so.8cuDNN 경로 미설정ldconfig 재실행 + LD_LIBRARY_PATH 확인
Loaded runtime CuDNN library: 7 but source compiled with: 8cuDNN 버전 불일치호환 버전으로 재설치
cudnn.h: No such file or directory헤더 파일 미복사cp cuda/include/cudnn*.h /usr/local/cuda/include/ 재실행
libcuda.so.1: cannot open shared object fileNVIDIA 드라이버 미설치드라이버 설치 가이드 선행 후 재시도

설치 순서 총정리

올바른 딥러닝 GPU 스택 구축 순서는 아래와 같습니다.

plaintext
1. NVIDIA 드라이버 설치 → nvidia-smi 동작 확인 2. CUDA Toolkit 설치 → nvcc --version 동작 확인 3. cuDNN 설치 (이 글) → cudnn.h 버전 확인 4. TensorFlow/PyTorch → GPU 인식 확인
Last updated on