OS/CentOS

[Rocky8/9] NVIDIA and CUDA driver, CUDA toolkit 설치 / 삭제

Lawmin 2024. 12. 24. 14:43

[설치]

0. 개념

NVIDIA driver : 디스플레이 출력, GPU 일반 작업

CUDA driver : CUDA 프로그램 실행

CUDA toolkit : CUDA 애플리케이션 개발, 컴파일

 

* CUDA 를 JAVA 에 비유하면,

CUDA driver는 JRE(java/실행환경),

CUDA toolkit은 JDK(javac/컴파일러) 로 보면 될 것 같습니다.

 

1. 설치 환경

Rocky Linux 9 / NVIDIA A40

- 24/12/24 현재 CUDA 12.6 Update 3 설치 가능

https://developer.nvidia.com/cuda-downloads

- 설치되는 패키지 아래 URL에서 확인

https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html

 

2. 설치 과정

1) 관련 패키지 설치

dnf install -y epel-release
dnf groupinstall -y "Development Tools"
dnf install -y gcc kernel-devel kernel-headers dkms libglvnd-devel

2) nouveau 제거 (nouveau는 리눅스 기본 오픈소스 드라이버로서, NVIDIA 공식 드라이버와 충돌, CUDA 불가 등 제약)

lsmod | grep nouveau
tee /etc/modprobe.d/blacklist-nouveau.conf <<EOF
blacklist nouveau
options nouveau modeset=0
EOF
dracut --force
reboot

 

3) cuda를 설치합니다. (nvidia-driver-cuda와 cuda-toolkit 등의 패키지가 포함되며, 필요시, 개별 설치 가능합니다.)

wget https://developer.download.nvidia.com/compute/cuda/12.6.3/local_installers/cuda-repo-rhel9-12-6-local-12.6.3_560.35.05-1.x86_64.rpm
dnf install -y cuda-repo-rhel9-12-6-local-12.6.3_560.35.05-1.x86_64.rpm
dnf install -y cuda
echo 'export PATH=/usr/local/cuda/bin:$PATH' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc
source ~/.bashrc

만약, 설치 시 아래와 같은 오류가 나오면, egl-x11 패키지를 제거 후 다시 시도해 봅니다.

file /usr/lib64/libnvidia-egl-xcb.so.1 from install of nvidia-driver-libs-3:560.35.05-1.el9.x86_64 conflicts with file from package egl-x11-1.0.0^20240916gitf13be94-1.el9.x86_6

egl-x11은 OpenGL 및 EGL과 관련된 기본 X11 라이브러리 패키지이며, NVIDIA 드라이버가 이 패키지와 충돌이 발생할 수 있습니다. 필요시, egl-gbm, egl-wayland 를 별도 설치할 수 있습니다.

dnf remove -y egl-x11

 

4) GPU 정보 확인

# nvidia-smi
Tue Dec 24 13:39:46 2024
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 560.35.03              Driver Version: 560.35.03      CUDA Version: 12.6     |
|-----------------------------------------+------------------------+----------------------+
| GPU  Name                 Persistence-M | Bus-Id          Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |           Memory-Usage | GPU-Util  Compute M. |
|                                         |                        |               MIG M. |
|=========================================+========================+======================|
|   0  NVIDIA A40                     Off |   00000000:03:00.0 Off |                    0 |
|  0%   30C    P8             12W /  300W |       1MiB /  46068MiB |      0%      Default |
|                                         |                        |                  N/A |
+-----------------------------------------+------------------------+----------------------+
|   1  NVIDIA A40                     Off |   00000000:03:01.0 Off |                    0 |
|  0%   32C    P8             12W /  300W |       1MiB /  46068MiB |      0%      Default |
|                                         |                        |                  N/A |
+-----------------------------------------+------------------------+----------------------+

+-----------------------------------------------------------------------------------------+
| Processes:                                                                              |
|  GPU   GI   CI        PID   Type   Process name                              GPU Memory |
|        ID   ID                                                               Usage      |
|=========================================================================================|
|  No running processes found                                                             |
+-----------------------------------------------------------------------------------------+

 

5) CUDA 컴파일러 버전 확인 (제대로 설치가 되지 않으면 

# nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2024 NVIDIA Corporation
Built on Tue_Oct_29_23:50:19_PDT_2024
Cuda compilation tools, release 12.6, V12.6.85
Build cuda_12.6.r12.6/compiler.35059454_0

 

6) 상세한 정보 필요 시, nvtop, nvitop 설치하여 사용

 

[삭제]

(주의) cuda, nvidia 관련 모든 패키지, 디렉토리, 모듈을 삭제합니다.

rpm -qa | egrep "cuda|nvidia"
dnf remove -y "cuda*"
dnf remove -y "nvidia*"
sudo dnf autoremove -y
sudo rm -rf /usr/lib64/nvidia /usr/lib/nvidia /var/lib/nvidia
sudo rm -rf /etc/modprobe.d/nvidia* /etc/modules-load.d/nvidi