본문 바로가기
프로그래밍 이야기/기타

[Ubuntu] CUDA Toolkit 및 cuDNN 설치하기

by meticulousdev 2022. 4. 17.
반응형

목차

1. 컴퓨터 사양

2. CUDA 및 cuDNN 버전 찾기

3. CUDA Toolkit 설치하기

4. cuDNN 설치하기

5. 추가

 

1. 컴퓨터 사양

    CUDA ToolkitcuDNN을 설치하기 전에 현재 사용 중인 컴퓨터(노트북)의 사양 및 우분투 버전을 확인합니다.

 

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-정보-확인하기

 

[Ubuntu] 그래픽 카드(GPU) 정보 확인하기

우분투 환경에서 그래픽 카드 정보를 확인 때 주로 사용하는 명령어는 다음과 같다. lspci | grep -i VGA sudo lshw -C display 위의 명령어를 사용하면 GPU 정보를 자세히 알려주지만 경우에 따라서는 어느

meticulousdev.tistory.com

 

2. CUDA 및 cuDNN 버전 찾기

    그다음으로는 GPU에 맞춰서 CUDAcuDNN버전을 확인하는 것입니다.

 

https://en.wikipedia.org/wiki/CUDA

 

CUDA - Wikipedia

From Wikipedia, the free encyclopedia Jump to navigation Jump to search Parallel computing platform and programming model CUDA (or Compute Unified Device Architecture) is a parallel computing platform and application programming interface (API) that allows

en.wikipedia.org

 

먼저 위의 링크의 GPUs supported에서 GPU에 해당하는 Compute capability (version)Micro-architecture를 확인합니다. RTX 3060이 해당하는 Compute capability (version)8.6이고 Micro-architectureAmpere입니다. 

 

 

그다음으로는 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 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 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

 

NVIDIA cuDNN

NVIDIA cuDNN The NVIDIA CUDA® Deep Neural Network library (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, pooling, nor

developer.nvidia.com

 

제일 앞에 있는 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

 

Installation Guide :: NVIDIA Deep Learning cuDNN Documentation

About this task export QNX_HOST={flash_dir}/toolchains/qnx_toolchain/host/linux/x86_64 export QNX_TARGET={flash_dir}/toolchains/qnx_toolchain/target/qnx7 export HOST_COMPILER=$QNX_HOST/usr/bin/aarch64-unknown-nto-qnx7.1.0-g++ export CUDNN_LIB_PATH=/usr/lib

docs.nvidia.com

 

다운로드가 완료되면 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

 

긴 글 읽어주셔서 감사합니다. 
글과 관련된 의견은 언제든지 환영입니다.
반응형

댓글