NVIDIA cuDNN 오프라인 설치 완전 가이드 (폐쇄망 딥러닝 인프라 구축)
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 오류가 발생합니다.
| cuDNN | CUDA | TensorFlow-GPU | PyTorch |
|---|---|---|---|
| 8.9 | 12.x | 2.13+ | 2.1+ |
| 8.6 | 11.8 | 2.10 ~ 2.12 | 2.0 |
| 8.1 | 11.2 | 2.4 ~ 2.9 | 1.8+ |
| 7.6 | 10.1 | 2.0 ~ 2.3 | 1.4 |
| 7.1 | 9.0 | 1.11 | 0.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 cuDNN2. 수동 설치 (헤더·라이브러리 파일 병합)
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 ldconfig3. 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:$PATHshell
# 적용
$ 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_MAJORPython에서 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.8 | cuDNN 경로 미설정 | ldconfig 재실행 + LD_LIBRARY_PATH 확인 |
Loaded runtime CuDNN library: 7 but source compiled with: 8 | cuDNN 버전 불일치 | 호환 버전으로 재설치 |
cudnn.h: No such file or directory | 헤더 파일 미복사 | cp cuda/include/cudnn*.h /usr/local/cuda/include/ 재실행 |
libcuda.so.1: cannot open shared object file | NVIDIA 드라이버 미설치 | 드라이버 설치 가이드 선행 후 재시도 |
설치 순서 총정리
올바른 딥러닝 GPU 스택 구축 순서는 아래와 같습니다.
plaintext
1. NVIDIA 드라이버 설치 → nvidia-smi 동작 확인
2. CUDA Toolkit 설치 → nvcc --version 동작 확인
3. cuDNN 설치 (이 글) → cudnn.h 버전 확인
4. TensorFlow/PyTorch → GPU 인식 확인Last updated on