본문 바로가기

임베디드/CUDA

1. CUDA Toolkit 설치 및 설치 확인

<해야 하는 것>

1) 기존 것 지우기

# 드라이버 삭제

sudo apt remove --purge '^nvidia-.*'

# CUDA 삭제

sudo apt remove --purge "*cublas*" "cuda*" "nsight*"

# CUDA 파일 삭제

(아래 명령에서 숫자 부분은 본인이 설치된 버전에 맞게 바꿉니다)

/usr/local/cuda-9.0/bin/uninstall_cuda_toolkit_9.0.pl rm -rf /usr/local/cuda-10.2/

 

2) 적절한 Cuda Toolkit 설치

아래 사이트에서 설치하고자 하는 버전을 설치 합니다.

CUDA Toolkit Archive | NVIDIA Developer

 

3) bashrc 설정
(아래 명령에서 숫자 부분은 본인이 설치된 버전에 맞게 바꿉니다)

export PATH="/usr/local/cuda-12.0/bin:$PATH"

export LD_LIBRARY_PATH="/usr/local/cuda-12.0/lib64:$LD_LIBRARY_PATH"

 

4)  cudnn 설치

아래 사이트에서 적절한 cudnn을 설치 한다.

cuDNN Archive | NVIDIA Developer

자세한 사항은 아래를 참고 합니다.

$ sudo cp cuda/include/cudnn*.h /usr/local/cuda/include
$ sudo cp -P cuda/lib64/libcudnn* /usr/local/cuda/lib64
$ sudo chmod a+r /usr/local/cuda/include/cudnn*.h /usr/local/cuda/lib64/libcudnn*

$ sudo ldconfig

 

 

tips1)

아래와 같이 드라이버 검색해서 설치하는 방법이 있는데 tookits는 빼고 드라이버만 설치 된다(ㅜ.ㅜ)

$ ubuntu-drivers devices

$ sudo apt-get install nvidia-driver-515

 따라서, 아래 사이트에 들어가서 드라이버와 toolkit를 같이 설치하는 설치 파일을 받도록 한다.

CUDA Toolkit 12.0 Downloads | NVIDIA Developer

 

tips2)

cudnn 설치 확인

root@XXXX:/usr/local# ldconfig -N -v $(sed 's/:/ /' <<< $LD_LIBRARY_PATH) 2>/dev/null | grep libcudnn
        libcudnn_cnn_train.so.8 -> libcudnn_cnn_train.so.8.9.6
        libcudnn.so.8 -> libcudnn.so.8.9.6
        libcudnn_adv_infer.so.8 -> libcudnn_adv_infer.so.8.9.6
        libcudnn_adv_train.so.8 -> libcudnn_adv_train.so.8.9.6
        libcudnn_cnn_infer.so.8 -> libcudnn_cnn_infer.so.8.9.6
        libcudnn_ops_train.so.8 -> libcudnn_ops_train.so.8.9.6
        libcudnn_ops_infer.so.8 -> libcudnn_ops_infer.so.8.9.6

 

tips3)

nvcc-V와 nvidia-smi 버전이 다른 이유

- 본인의 경우 nvidia toolkit(11.1)만 새로 설치하였다.

- CUDA는 2개의 API를 가지고 있는데, 하나는 runtime API 이고 다른 하나는 driver API 이다.

- driver API GPU driver 설치파일에 의해 설치되고, (nvidia-smi로 보여주는 버전 정보)

- runtime API GPU toolkit 설치파일에 의해 설치 된다. (nvcc로 보여주는 버전 정보)

==> 

nvidia-smi로 보여주는 드라이버 옆의 CUDA vesion은 해당 드라이버로 호환되는 가장 최신 CUDA 요구 조건.

따라서, nvcc --version이 해당 CUDA version 보다 같거나 낮기만 하면 된다.

정리하면, 최신 Driver에 예전 버젼 CUDA는 설치가 가능하지만 반대는 불가능 합니다.

 

(이상 24.03.22 일자로 재 정리)

 

참고

- Ubuntu에 여러 버전의 CUDA 설치하기 (tistory.com)

- nvidia, cuda, cudnn 설치 방법 (ubuntu 20.04) - vividian repository


1. 설치

CUDA-capable GPUs have hundreds of cores that can collectively run thousands of computing threads.

These cores have shared resources including a register file and a shared memory.

The on-chip shared memory allows parallel tasks running on these cores to share data without sending it over the system memory bus

--> 쿠다는 GPU로 하여금, 수백개의 코어에서 수천개의 스레드를 실행 하게끔 돕는다.

이 코어들은 레지스터 부터, 공유 메모리를 공유한다.

On-chip 공유 메모리를 사용하면, 코어에서 실행되는 병렬 작업이 버스를 거치지 않고도 데이터를 공유한다.

 

 

The driver and toolkit must be installed for CUDA to function. If you have not installed a stand-alone driver, install the driver from the NVIDIA CUDA Toolkit.

-->쿠다를 실행하기 위해서는 driver와 toolkit가 깔려 있어야 한다. 단독 Nvidia driver를 깔지 않았다면, CUDA Toolkit을 통해 깔도록 한다.

 

CUDA Toolkit 설치 URL : developer.nvidia.com/cuda-downloads

Cudnn 설치 URL : developer.nvidia.com/rdp/cudnn-download

 

[22.01.10] 추가

위의 두 방법이 번거러우면, 우분투 Repository에서 바로 다운할 수도 있다(link)

$ sudo apt update
$ sudo apt install nvidia-cuda-toolkit

 

 

2. 설치 확인

nvcc -v # 쿠다 컴파일러 버전 체크

nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2020 NVIDIA Corporation
Built on Mon_Oct_12_20:54:10_Pacific_Daylight_Time_2020
Cuda compilation tools, release 11.1, V11.1.105
Build cuda_11.1.relgpu_drvr455TC455_06.29190527_0

 

docs.nvidia.com/cuda/cuda-installation-guide-microsoft-windows/index.html

 

 

[Optional] 3. 참고할 문서

Cudnn Developer Guide

docs.nvidia.com/deeplearning/cudnn/developer-guide/index.html

 

Cuda Programming Guide

docs.nvidia.com/cuda/cuda-c-programming-guide/index.html#abstract

 

 

4. NVIDIA에서 제공하는 서비스(Software SDK)

- GPU에 최적화된 CUDA-X AI 라이브러리를 (Pytorch, Tensorflow 등의 Major Framework에) 제공한다.

- NVIDIA AI Toolkit은 Transfer Learning, Fine Tuning, Optimizing and Deploying pre-trained Models 기능을 하는

  라이브러리를 포함한다.


사견) NVIDIA의 캐시카우는 cuDNN이지 않을까 생각한다.

 

 

 

developer.nvidia.com/deep-learning-software#integrations

 

반응형