우분투 CUDA, cuDNN 설치 및 가상환경 설정

논문쓰는치즈버거·2025년 3월 17일

우분투 세팅 관련

목록 보기
4/10
post-thumbnail

우분투 날라간 기념 CUDA, cuDNN 설치 정리

이걸 왜함?
아나콘다로 가상환경을 사용중인데, 가상환경에 따라 다른버전의 CUDA를 쓰기 위함.


설치 전 아래 것들은 설치해주자

sudo apt update
sudo apt install cmake
sudo apt install git
sudo apt install vim 

CUDA 설치

CUDA Toolkit 다운로드

파일링크에서 원하는 버전을 다운
나는 12.4

내가 원하는 위치에 CUDA를 설치하려면 runfile파일을 다운로드 해야한다.


wget https://developer.download.nvidia.com/compute/cuda/12.4.1/local_installers/cuda_12.4.1_550.54.15_linux.run로 다운로드만 해주고 실행은 다음 명령어로 해준다.

sudo sh cuda_12.4.1_550.54.15_linux.run --toolkit --toolkitpath=/mnt/storage/cuda/12.4 --silent --no-drm --no-opengl-libs

toolkitpath에 CUDA를 설치할 위치를 입력해주자.

--silent 옵션은 라이센스 자동 동의하는 거라서 걍 실행만 해주면 설치된다.
(뭐 요상한 log같은거 안나오고 냅두면 설치완료됨. 아무것도 안뜨는게 정상이다 기다려보자)

참고로 drm, opengl을 설치 안하는 이유는 기존 드라이버와 충돌할까봐
CUDA와 드라이버를 한번에 설치하는 경우에는 그냥 해도 될듯?

--silent 설정을 안는 경우는 다음과 같이 진행하면 된다.

기존에 설치된 드라이버 때문에 나오는건데 그냥 continue 해주자


오류 때문인지 뭘 눌러도 안넘어가는데 accept를 누르고 enter를 누르면 넘어가진다

여기서 Driver 체크를 풀고 install

cuDNN 설치

내가 CUDA Toolikt을 설치한 위치에 cuDNN을 다운로드 하는 것이 목표이다.
(가상환경 설정을 위해 한폴더에 넣음)

cuDNN링크에서 다운로드 할 수 있는데, 로그인이 필요하다.

설정한 가상환경 경로에 설치해야 하기 때문에 가상환경에 cudnn폴더를 만들고

mkdir -p /mnt/storage/anaconda/envs/cuda124/cudnn
cd /mnt/storage/anaconda/envs/cuda124/cudnn

tar 파일로 다운로드 하고 압축을 풀자 (압축파일이 편함)


(파일이름 주의)

tar xvJf cudnn-linux-x86_64-*.tar.xz --strip-components=1

결국 압축파일에 있는 lib, include폴더를 cuda를 설치한 위치에 넣어주는 과정이다.

가상환경 생성, 환경변수 설정

가상환경 생성

가상환경 마다 다른 CUDA 버전을 사용하기 위해 가상환경을 만든다

가상환경을 만들어도 기존에 설치한 CUDA 버전이 활성화돼있다.
환경변수를 설정해주지 않아서 어떤 CUDA 버전을 사용해야 할지 pc에서 해깔려하는 상태이다.

스크립트를 통해 가상환경을 활성화하면 특정 CUDA 버전으로 환경변수를 변경하는 방법을 사용할 것이다.

환경변수 설정

1. 스크립트 폴더 생성

본인의 가상환경 경로에 맞춰서 스크립트를 생성한다.

mkdir -p ~/anaconda3/envs/your_env_name/etc/conda/activate.d
mkdir -p ~/anaconda3/envs/your_env_name/etc/conda/deactivate.d

나의 경우에는

mkdir -p /mnt/storage/anaconda/envs/cuda124/etc/conda/activate.d
mkdir -p /mnt/storage/anaconda/envs/cuda124/etc/conda/deactivate.d

2. 스크립트 작성

스크립트 파일 생성

활성화 스크립트 생성

vim /mnt/storage/anaconda/envs/cuda124/etc/conda/activate.d/activate_cuda.sh

입력 후 i를 눌러 입력 모드로 전환
본인 CUDA경로에 맞게 스크립트를 수정해서 입력

활성화 스크립트

#CUDA 경로
export OLD_PATH=$PATH
export OLD_LD_LIBRARY_PATH=$LD_LIBRARY_PATH

export PATH=/mnt/storage/cuda/12.4/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/mnt/storage/cuda/12.4/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

# cuDNN
export CUDNN_INCLUDE_DIR=/mnt/storage/anaconda/envs/cuda124/cudnn/include
export CUDNN_LIB_DIR=/mnt/storage/anaconda/envs/cuda124/cudnn/lib
export LD_LIBRARY_PATH=/mnt/storage/anaconda/envs/cuda124/cudnn/lib:$LD_LIBRARY_PATH

작성 후 :wq를 눌러서 저장 후 종료

비활성화 스크립트로 똑같이 작성

비활성화 스크립트 생성

vim /mnt/storage/anaconda/envs/cuda124/etc/conda/deactivate.d/deactivate_cuda.sh

비활성화 스크립트

export PATH=$OLD_PATH
export LD_LIBRARY_PATH=$OLD_LD_LIBRARY_PATH
unset OLD_PATH
unset OLD_LD_LIBRARY_PATH

설정확인

참고로 내가 가상환경을 활성화 했을 때 환경변수가 변경되고, 비활성화 하면 다시 환경변수가 해제되는 식이다.

CUDA 경로 확인

nvcc --version으로 확인

cuDNN 경로 확인

cuDNN은 pytorch를 설치해야 확인 가능하다.

conda activate cuda124
python -c "import torch; print(torch.backends.cudnn.version())"

0개의 댓글