조건 및 요구사항

  • 그래픽카드 : nvidia 3090
  • 드라이버 : 515.65.01
  • CUDA version : 11.7


CUDA 만족 버전 확인

CUDA 설치 전에 어떤 버전의 CUDA를 설치할지 정해야 합니다.

  • 프로젝트에서 요구하는 CUDA 버전 확인
  • 하드웨어와 호환되는 CUDA 버전 확인

본 포스트에서 예시로 든 요구사항 중 CUDA 11.7버전이 있기 때문에 하드웨어인 nvidia 3090이 CUDA 11.7버전을 만족하는지 확인해봐야 합니다.

(1) 해당 CUDA 버전을 감당할 수 있는 드라이버 버전 확인

CUDA-드라이버 버전 확인

(2) 동시에 설치된 그래픽카드에 설치할 수 있는 드라이버 버전 확인

https://www.nvidia.co.kr/Download/Find.aspx?lang=kr


드라이버 설치

프로젝트 요구사항과 하드웨어 호환성을 체크한 결과, 그래픽드라이버는 515.65.01 버전을 설치하는 것으로 결정했습니다. 아래 링크에서 드라이버 다운로드 링크를 복사해주세요.

https://www.nvidia.co.kr/Download/Find.aspx?lang=kr


리눅스에서 wget 명령어로 드라이버 설치파일을 다운로드합니다.

1
wget https://kr.download.nvidia.com/XFree86/Linux-x86_64/515.65.01/NVIDIA-Linux-x86_64-515.65.01.run

다운로드가 완료되면 설치파일을 실행시킵니다.

1
2
3
4
5
# 파일 실행 권한 부여
chmod 755 ./NVIDIA-Linux-x86_64-515.65.01.run

# 설치 파일 실행
./NVIDIA-Linux-x86_64-515.65.01.run

nvidia-smi 명령어로 설치된 nvidia 드라이버 버전을 확인할 수 있습니다.
여기서 주의할 점. 우측 상단에 CUDA 버전이 명시되어 있는데, 이건 CUDA가 설치되었다는 게 아니라 현재 드라이버 버전에 추천하는 CUDA 버전이 명시된 것입니다.


CUDA 설치

아래 링크에서 알맞은 CUDA 버전을 선택합니다.

https://developer.nvidia.com/cuda-toolkit-archive

알맞은 옵션을 선택하고

다운로드 및 실행 도움말을 따라 진행합니다.

1
2
wget https://developer.download.nvidia.com/compute/cuda/11.7.0/local_installers/cuda_11.7.0_515.43.04_linux.run
sudo sh cuda_11.7.0_515.43.04_linux.run

주의 : 그래픽드라이버를 먼저 설치한 경우, CUDA 설치시 드라이버 설치 부분을 체크 해제해주세요.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
===========
= Summary =
===========

Driver:   Not Selected
Toolkit:  Installed in /usr/local/cuda-11.7/

Please make sure that
 -   PATH includes /usr/local/cuda-11.7/bin
 -   LD_LIBRARY_PATH includes /usr/local/cuda-11.7/lib64, or, add /usr/local/cuda-11.7/lib64 to /etc/ld.so.conf and run ldconfig as root

To uninstall the CUDA Toolkit, run cuda-uninstaller in /usr/local/cuda-11.7/bin
***WARNING: Incomplete installation! This installation did not install the CUDA Driver. A driver of version at least 515.00 is required for CUDA 11.7 functionality to work.
To install the driver using this installer, run the following command, replacing <CudaInstaller> with the name of this run file:
    sudo <CudaInstaller>.run --silent --driver

# ==> 이 경우 도커 안에 설치하느라 Driver는 설치하지 않고, CUDA 만 설치함


설치 완료 확인

CUDA 설치 여부는 nvcc 명령어로 확인 가능합니다.

1
2
3
4
5
6
7
8
nvcc --version

>>> nvcc: NVIDIA (R) Cuda compiler driver
>>> Copyright (c) 2005-2022 NVIDIA Corporation
>>> Built on Tue_May__3_18:49:52_PDT_2022
>>> Cuda compilation tools, release 11.7, V11.7.64
>>> Build cuda_11.7.r11.7/compiler.31294372_0


Trouble Shooting

nvcc가 되지 않는 경우

CUDA를 설치했더라도 nvcc가 되지 않는 경우가 있습니다. 리눅스에 익숙한 분이라면 잘 알겠지만, 환경변수 등록을 해줘야 합니다.

먼저, CUDA가 어디에 설치되어있는지 확인해야 하는데요, 이는, CUDA 설치 결과 출력에서 알 수 있습니다.

1
2
3
4
5
6
7
8
9
10
11
12
===========
= Summary =
===========

Driver:   Not Selected
Toolkit:  Installed in /usr/local/cuda-11.7/

Please make sure that
 -   PATH includes /usr/local/cuda-11.7/bin
 -   LD_LIBRARY_PATH includes /usr/local/cuda-11.7/lib64, or, add /usr/local/cuda-11.7/lib64 to /etc/ld.so.conf and run ldconfig as root

하단부에 PATH includes /usr/local/cuda-11.7/bin 이 보입니다. 이곳에 nvcc 파일이 있습니다.

1
2
3
4
5
cd /usr/local/cuda-11.7/bin
ls -al
...
-rwxr-xr-x  1 root root  6539392  9월  6 09:36 nvcc*
...

바로 이 nvcc 파일을 환경변수에 등록해줍니다.

1
2
3
4
5
6
7
vi ~/.bashrc

# 여기에 아래 문구를 추가
...
export PATH="/usr/local/cuda-11.7/bin:$PATH"
export LD_LIBRARY_PATH="/usr/local/cuda-11.7/lib64:$LD_LIBRARY_PATH"
...

이후 source 명령어로 적용해줍니다.

1
source ~/.bashrc


Nvidia 드라이버 및 CUDA 삭제

(1) 패키지 관리 툴 (apt, yum 등)로 설치했을 경우

1
2
3
4
5
6
# Nvidia 드라이버 삭제
sudo apt-get remove --purge 'nvidia-.*'

# CUDA 삭제
sudo apt-get --purge remove 'cuda*'
sudo apt-get autoremove --purge 'cuda*'

(2) 설치 파일 ( ~.run 파일)로 설치했을 경우

1
2
# Nvidia 드라이버 삭제
Nvidia설치run파일.run --uninstall


Reference

엔비디아 드라이버
엔비디아 CUDA DOC
nvidia driver, CUDA 완전 삭제 : https://settembre.tistory.com/447
nvidia driver 삭제하고 재설치 : https://blog.ju-ing.com/posts/nvidia-uninstall/
nvcc가 안될 때 : https://yoonchang.tistory.com/27
CUDA 삭제 : https://romillion.tistory.com/93?category=958104
Nvidia 드라이버 설치 : https://velog.io/@jeongm/Ubuntu-18.04-nvidia-%EC%82%AD%EC%A0%9C-%EB%B0%8F-%EC%9E%AC%EC%84%A4%EC%B9%98