목차
1. 컴퓨터 사양
CUDA Toolkit과 cuDNN을 설치하기 전에 현재 사용 중인 컴퓨터(노트북)의 사양 및 우분투 버전을 확인합니다.
CPU: Intel Core i7-11600H
GPU: GeForce RTX 3060 Mobile
RAM: 16 GB
운영체제: Ubuntu 20.04 LTS (x86_64, 64 bits 시스템)
설치를 위해서 중요한 것은 그래픽 카드(GPU) 및 운영체제 정보입니다.
https://meticulousdev.tistory.com/entry/Ubuntu-그래픽-카드GPU-정보-확인하기
2. CUDA 및 cuDNN 버전 찾기
그다음으로는 GPU에 맞춰서 CUDA 및 cuDNN의 버전을 확인하는 것입니다.
https://en.wikipedia.org/wiki/CUDA
먼저 위의 링크의 GPUs supported에서 GPU에 해당하는 Compute capability (version) 및 Micro-architecture를 확인합니다. RTX 3060이 해당하는 Compute capability (version)은 8.6이고 Micro-architecture는 Ampere입니다.
그다음으로는 Compute capability (version): 8.6, Micro-architecture: Ampere에 해당하는 CUDA SDK의 버전을 찾습니다. 제 경우 CUDA SDK 11.1 - 11.6 (혹은 CUDA Toolkit 11.1 - 11.6)이 적합한 버전입니다.
3. CUDA Toolkit 설치하기
CUDA Toolkit을 설치하기 위해서는 아래의 링크에 접속하여 적합한 버전을 다운로드해야 합니다. 어떤 버전을 받든 지 괜찮습니다. 개인적으로 가장 최신 버전에서 한두 단계 낮은 버전을 선호해서 CUDA Toolkit 11.4.4를 받아서 설치하였습니다.
https://developer.nvidia.com/cuda-toolkit-archive
(CUDA Toolkit 11.4.4 클릭)
그다음은 컴퓨터 정보를 선택할 차례입니다.
- Operating System: Linux
- Architecture: x86_64 (64 bits 시스템)
- Distribution: Ubuntu
- Version: 20.04
- Installer Type: deb (local)
선택이 완료되면 설치에 필요한 명령어들이 출력됩니다. 이 명령어들을 순서대로 입력해줍니다.
이제 설치가 끝났다고 생각하고 nvcc --version (혹은 nvcc -V)를 입력했는데 설치가 덜 되었는지 아래의 오류가 발생했습니다.
$ nvcc --verion
zsh: command not found: nvcc
아직 CUDA Toolkit에 관한 환경변수 설정(/etc/profile에서 설정)이 완료되지 않아서 그렇습니다. CUDA Toolkit의 버전에 맞게 3개의 코드에서 cuda-11.4 부분을 변경하여서 입력합니다.
$ sudo sh -c "echo 'export PATH=$PATH:/usr/local/cuda-11.4/bin' >> /etc/profile"
$ sudo sh -c "echo 'export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-11.4/lib64' >> /etc/profile"
$ sudo sh -c "echo 'export CUDADIR=/usr/local/cuda-11.4' >> /etc/profile"
source 명령어를 사용하여 수정된 파일을 적용합니다.
$ source /etc/profile
이제 다시 nvcc를 입력하면 정상적으로 CUDA Toolkit의 정보가 나옵니다.
$ nucc --version
nVCc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2021 NVIDIA Corporation
Built on Mon_Oct_11_21:27:02 _PDT_2021
Cuda
compilation tools, release 11.4, V11.4.152
Build cuda 11.4.r11.4/compiler. 30521435 0
4. cuDNN 설치하기
cuDNN의 설치를 위해서 아래의 링크를 접속합니다.
https://developer.nvidia.com/cudnn
제일 앞에 있는 Download cuDNN>을 클릭합니다.
클릭하면 NVIDIA Developer Program Membership이 필요하다고 하는데 기존에 가입한 경우 Login을 가입을 하지 않은 경우 Join now를 클릭합니다.
앞과 마찬가지의 이유로 최신 버전은 받지 않을 것이기 때문에 Archived cuDNN Releases(Download cuDNN 아래)를 클릭하여 이전 버전을 받습니다.
CUDA 11.4에 맞는 cuDNN v8.2.4를 다운로드합니다. 운영체제게 맞게 선택합니다. 저는 cuDNN Library for Linux [x86_64]를 다운 받았습니다.
참고로 여기부터의 내용은 NVIDIA에서 설치 방법을 제공합니다 (2.3. Installing On Linux). CUDA 설치 방법도 제공하긴 하는데 무슨 말인지 알아먹을 수가 없어서 따로 링크를 달지 않았었습니다.
https://docs.nvidia.com/deeplearning/cudnn/install-guide/index.html
다운로드가 완료되면 Downloads 폴더로 이동하여 압축을 풀어줍니다.
$ tar -xvzf cudnn-11.4-linux-x64-v8.2.4.15.tgz
압축해제가 완료되면 해당 파일들을 복사합니다.
$ sudo cp cuda/include/cudnn*.h /usr/local/cuda/include
$ sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64
그리고 이동된 파일들의 권한 설정을 변경합니다.
$ sudo chmod a+r /usr/local/cuda/include/cudnn*.h /usr/local/cuda/lib64/libcudnn*
끝으로 cuDNN 버전을 확인합니다. 설치한 cuDNN 8.2.4 버전이 정상적으로 출력되는지 확인합니다.
$ cat /usr/local/cuda/include/cudnn_version.h
...(중략)...
#define CUDNN_MAJOR 8
#define CUDNN_MINOR 2
#define CUDNN_PATCHLEVEL 4
...(하략)...
5. 추가
CUDA 및 cuDNN을 사용하다가 파일 링크와 관련해서 오류가 발생할 경우 아래의 명령어를 실행시켜줍니다. cuda-11.4 및 ...so.8.2.4를 설치한 CUDA 및 cuDNN 버전에 맞게 변경한 후 입력해주시면 됩니다.
$ sudo ln -sf /usr/local/cuda-11.4/targets/x86_64-linux/lib/libcudnn_adv_infer.so.8.2.4 /usr/local/cuda-11.4/targets/x86_64-linux/lib/libcudnn_adv_infer.so.8
$ sudo ln -sf /usr/local/cuda-11.4/targets/x86_64-linux/lib/libcudnn_ops_train.so.8.2.4 /usr/local/cuda-11.4/targets/x86_64-linux/lib/libcudnn_ops_train.so.8
$ sudo ln -sf /usr/local/cuda-11.4/targets/x86_64-linux/lib/libcudnn_cnn_train.so.8.2.4 /usr/local/cuda-11.4/targets/x86_64-linux/lib/libcudnn_cnn_train.so.8
$ sudo ln -sf /usr/local/cuda-11.4/targets/x86_64-linux/lib/libcudnn_cnn_infer.so.8.2.4 /usr/local/cuda-11.4/targets/x86_64-linux/lib/libcudnn_cnn_infer.so.8
$ sudo ln -sf /usr/local/cuda-11.4/targets/x86_64-linux/lib/libcudnn_ops_infer.so.8.2.4 /usr/local/cuda-11.4/targets/x86_64-linux/lib/libcudnn_ops_infer.so.8
$ sudo ln -sf /usr/local/cuda-11.4/targets/x86_64-linux/lib/libcudnn_adv_train.so.8.2.4 /usr/local/cuda-11.4/targets/x86_64-linux/lib/libcudnn_adv_train.so.8
$ sudo ln -sf /usr/local/cuda-11.4/targets/x86_64-linux/lib/libcudnn.so.8.2.4 /usr/local/cuda-11.4/targets/x86_64-linux/lib/libcudnn.so.8
긴 글 읽어주셔서 감사합니다.
글과 관련된 의견은 언제든지 환영입니다.
'프로그래밍 이야기 > 기타' 카테고리의 다른 글
[MATLAB] MATLAB 코드를 C/C++언어 환경에서 실행하기 - 2부 Visual Studio 설정 및 실행 (0) | 2022.06.07 |
---|---|
[MATLAB] MATLAB 코드를 C/C++언어 환경에서 실행하기 - 1부 MATLAB 환경 설정 및 package 생성 (0) | 2022.05.29 |
[macOS] 유니버셜 컨트롤(Universal Control) 베타 버전 사용하기 (0) | 2022.04.19 |
[Ubuntu] 그래픽 카드(GPU) 정보 확인하기 (0) | 2022.04.15 |
[Ubuntu] Ubuntu 20.04에 Anydesk 설치 시 permission denied: /etc/apt/sources.list.d/anydesk.list 해결 방법 (0) | 2022.04.13 |
댓글