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