본문 바로가기
카테고리 없음

CUDA + CuDNN 설치하기

by Z0e 2025. 3. 4.

 

 

 

 

 

관련 포스팅

 

 

 

 

호환성 확인

GPU & CUDA & CuDNN 버전 호환성 확인

아래 페이지에 들어가 사용하는 GPU에 맞춰 사용 가능한 CUDA와 CuDNN 버전을 확인한다.

 

CUDA - Wikipedia

From Wikipedia, the free encyclopedia Parallel computing platform and programming model In computing, CUDA (Compute Unified Device Architecture) is a proprietary[2] parallel computing platform and application programming interface (API) that allows softwar

en.wikipedia.org

 

Support Matrix — NVIDIA cuDNN Backend

For best performance, the recommended configuration for GPUs Volta or later is cuDNN 9.7.1 with CUDA 12.8. For GPUs prior to Volta (that is, Pascal and Maxwell), the recommended configuration is cuDNN 9.7.1 with CUDA 11.8. These are the configurations used

docs.nvidia.com

 

GPU와 Compute capabiliity
GPU에 따른 CUDA 버전
CUDA, CuDNN 호환성

 

 

나의 경우 호환 가능한 버전은 아래와 같다.

GPU GeForce RTX 5080
Architecture Blackwell
Compute Capability 12.0
CUDA 12.8
CuDNN 9.7.1
NVIDIA Driver >= 570.26

 

 

 

CUDA Toolkit 설치

 

CUDA Toolkit Archive

Previous releases of the CUDA Toolkit, GPU Computing SDK, documentation and developer drivers can be found using the links below. Please select the release you want from the list below, and be sure to check www.nvidia.com/drivers for more recent production

developer.nvidia.com

 

CUDA 설치

플랫폼에 맞게 버튼을 클릭하고 제시하는 설치 명령어를 입력한다.

CUDA

wget https://developer.download.nvidia.com/compute/cuda/12.8.0/local_installers/cuda_12.8.0_570.86.10_linux.run

sudo sh cuda_12.8.0_570.86.10_linux.run

 

Multi CUDA 설정

여러 버전의 CUDA를 사용할 때는 먼저 높은 버전의 CUDA부터 설치한다. NVIDIA 드라이버를 CUDA 툴킷으로 설치하는 경우, 높은 버전의 CUDA 툴킷에서 제공하는 드라이버를 설치하면 된다.

 

설치 예시는 다음과 같다.

## CUDA 12.1 + NVIDIA Driver 530 설치
wget https://developer.download.nvidia.com/compute/cuda/12.1.1/local_installers/cuda_12.1.1_530.30.02_linux.run

sudo sh cuda_12.1.1_530.30.02_linux.run
# [x] Driver
#		[x] 530.30.02
# [x] CUDA Toolkit 12.1 # 필요 여부에 따라 체크
# install


## CUDA 11.8 설치
wget https://developer.download.nvidia.com/compute/cuda/11.8.0/local_installers/cuda_11.8.0_520.61.05_linux.run

sudo sh cuda_11.8.0_520.61.05_linux.run
# [ ] Driver
#		[ ] 520.61.05
# [x] CUDA Toolkit 11.8
# install

 

 

CUDA 버전 관리

`update-alternatives`을 사용하여 심볼릭 링크를 생성하여 패키지에 대한 디폴트 버전이나 경로를 설정한다.

`Priority`는 우선 순위로 비우거나 동일하게 10으로 설정해도 무방하다.

sudo update-alternatives --install /usr/local/cuda cuda /usr/local/cuda-11.8 118 

sudo update-alternatives --install /usr/local/cuda cuda /usr/local/cuda-12.1 121

sudo update-alternatives --config cuda

 

심볼릭 링크를 삭제할 경우 아래 명령어를 사용한다.

# list cuda alternatives
update-alternatives --list cuda

# remove an alternative
sudo update-alternatives --remove cuda /usr/local/cuda-11.8

 

 

환경 변수 설정

`$HOME` 디렉토리에 위치한 shell config 파일(shell에 따라 `.bashrc`, `.bash_profile`, `.zshrc`, `.profile`)의 환경변수를 업데이트 해준다.

sudo vi ~/.bashrc
# sudo nano ~/.bashrc
# sudo gedit ~/.bashrc

 

shell config 파일 끝 줄에 아래 내용을 추가한다.

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

 

또는 아래 명령어로 설정한다.

echo 'export PATH=$PATH:/usr/local/cuda/bin' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64' >> ~/.bashrc

 

환경변수를 reloading 한다.

source ~/.bashrc
# source ~/.zshrc
# 또는
exec $SHELL

 

환경변수가 올바르게 설정되었는지 확인하려면 `echo $PATH`의 결과로 `/usr/local/cuda/bin`이 출력되는지 확인한다.

echo $PATH
# /usr/local/cuda/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin

 

추가로 아래 명령어를 통해 더 많은 것을 확인할 수 있다.

sudo ldconfig -p | grep cuda

 

 

CUDA 버전 및 설치 확인

CUDA가 제대로 설치되었다면 `nvcc -V`이 문제없이 출력된다.

nvcc -V

 

 

 

CUDA 삭제

sudo rm -rf /usr/local/cuda*
sudo apt-get --purge -y remove 'cuda*'
sudo apt-get autoremove --purge cuda

# 확인
sudo dpkg -l | grep cuda

 

 

공식 Documentation

 

CUDA Toolkit Documentation 12.8

This guide provides a detailed discussion of the CUDA programming model and programming interface. It then describes the hardware implementation, and provides guidance on how to achieve maximum performance. The appendices include a list of all CUDA-enabled

docs.nvidia.com

 

 

 

CuDNN 설치

 

cuDNN Archive

 

developer.nvidia.com

 

 

Deb 파일을 통한 설치

플랫폼에 맞게 버튼을 클릭하여 제시하는 명령어를 입력한다.

CuDNN

 

wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/cuda-keyring_1.1-1_all.deb
sudo dpkg -i cuda-keyring_1.1-1_all.deb
sudo apt-get update
sudo apt-get -y install cudnn

# To install CUDA 12
sudo apt-get -y install cudnn-cuda-12

 

 

Tarball 파일을 통한 설치

 

Index of /compute/cudnn/redist/cudnn/linux-x86_64

 

developer.download.nvidia.com

 

 

9.1.0 (CUDA 12)

wget https://developer.download.nvidia.com/compute/cudnn/redist/cudnn/linux-x86_64/cudnn-linux-x86_64-9.1.0.70_cuda12-archive.tar.xz

tar -xvf cudnn-linux-x86_64-9.1.0.70_cuda12-archive.tar.xz

cd cudnn-linux-x86_64-9.1.0.70_cuda12-archive/

# Copy header files
sudo cp -P include/cudnn*.h /usr/local/cuda-12.1/include

# Copy library files (it could be lib or lib64)
sudo cp -P lib/libcudnn* /usr/local/cuda-12.1/lib64

# Set read permissions of files for all users
sudo chmod a+r /usr/local/cuda-12.1/include/cudnn*.h 
sudo chmod a+r /usr/local/cuda-12.1/lib64/libcudnn*

 

8.7.9 (CUDA 11)

wget https://developer.download.nvidia.com/compute/cudnn/redist/cudnn/linux-x86_64/cudnn-linux-x86_64-8.7.0.84_cuda11-archive.tar.xz

tar -xvf cudnn-linux-x86_64-8.7.0.84_cuda11-archive.tar.xz

cd cudnn-linux-x86_64-8.7.0.84_cuda11-archive

# Copy header files
sudo cp -P include/cudnn*.h /usr/local/cuda-11.8/include

# Copy library files (it could be lib or lib64)
sudo cp -P lib/libcudnn* /usr/local/cuda-11.8/lib64

# Set read permissions of files for all users
sudo chmod a+r /usr/local/cuda-11.8/include/cudnn*.h 
sudo chmod a+r /usr/local/cuda-11.8/lib64/libcudnn*

 

 

CuDNN 버전 확인

/sbin/ldconfig -N -v $(sed 's/:/ /' <<< $LD_LIBRARY_PATH) 2>/dev/null | grep libcudnn

# 또는
sudo ldconfig
ldconfig -N -v $(sed 's/:/ /' <<< $LD_LIBRARY_PATH) 2>/dev/null | grep libcudnn

# 또는
cat /usr/include/cudnn_version.h | grep CUDNN_MAJOR -A 2

# tarball로 설치한 경우
cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2

 

 

공식 Documentation

 

NVIDIA cuDNN

The NVIDIA CUDA® Deep Neural Network (cuDNN) is a GPU-accelerated library of primitives for deep neural networks. cuDNN provides highly tuned implementations for standard routines such as forward and backward convolution, attention, matmul, pooling, and n

docs.nvidia.com

 

 

 

에러 해결

gcc 관련 에러

CUDA 버전과 호환되는 GCC 버전을 확인한 후 설치한다.

# gcc 설치에 필요한 패키지 설치
sudo apt update
sudo apt install build-essential
sudo apt-get install manpages-dev 

# gcc 11 설치
sudo apt install gcc-11 g++-11
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-11 11
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-11 11
 

CUDA incompatible with my gcc version

I have troubles compiling some of the examples shipped with CUDA SDK. I have installed the developers driver (version 270.41.19) and the CUDA toolkit, then finally the SDK (both the 4.0.17 version).

stackoverflow.com