리눅스 24.04 cuda & cudnn 설치

Cloud_ Ghost·2025년 1월 5일
0

리눅스 환경에서 cuda와 cudnn을 설치하기 위한 방법을 기록해두고자 합니다.

OS, GPU 확인

먼저 cat /etc/os-release 를 통해서 자신의 OS를 확인합니다.
PRETTY_NAME을 확인하면 Ubuntu 버젼을 확인할 수 있는데 저 같은 경우에는 Ubuntu 24.04.1 LTS인 것을 확인할 수 있습니다.

그 다음으로는 시스템에 엔비디아 GPU가 있는지 확인하겠습니다.

lspci | grep -i NVIDIA 를 통해서 GPU를 확인할 수 있습니다.

저 같은 경우 노트북을 사용하여서 GeForce RTX 3070 Mobile GPU가 설치되어 있는 것을 확인할 수 있습니다.

시스템 업데이트

그 다음으로는 시스템을 업데이트 하겠습니다.
(NVIDIA 드라이버와 CUDA 툴킷은 최신 시스템 패키지와 의존성을 요구합니다. 시스템을 업데이트하지 않으면 드라이버 설치 중 충돌이 발생하거나, CUDA가 제대로 작동하지 않을 가능성이 있습니다.)

먼저 로컬 패키지 인덱스를 업데이트 하겠습니다.
sudo apt update를 통해서 먼저 업데이트를 합니다.


(저 같은 경우 지금 cuda를 설치하려다가 제대로 설치가 되지 않아서 InRelease가 나오는데 이 부분의 경우 넘어가셔도 됩니다. 아마 Hit~~가 나온다면 정상적으로 실행 된 것 일겁니다.)



sudo apt upgrade -y를 통해서 그 다음 upgrade를 진행하겠습니다.

본격적으로 시작!

그 다음으로 sudo apt install ubuntu-drivers-common를 실행합니다.

NVIDIA 드라이버 추천
ubuntu-drivers-common 패키지는 사용자의 하드웨어를 스캔하고 시스템에 적합한 NVIDIA 드라이버를 자동으로 추천해주기 때문에 이를 설치하는 것 입니다!

추천해주는 driver 확인

sudo ubuntu-drivers devices를 하여 recommended를 확인합니다.
가장 적합한 driver를 추천해주므로 이를 활용해서 설치를 진행하면 됩니다.

저 같은 경우 nvidia-driver-550 을 추천해주므로 이 driver를 설치하겠습니다.

model에서 제가 사용하고 있는 GPU를 확인할 수 있습니다.
lspci | grep -i NVIDIA말고도 sudo ubuntu-drivers devices를 통해서도 GPU를 확인할 수 있습니다!

(아마 다들 사용하는 GPU에 따라 추천해주는 driver가 다를 것이므로 추천해주는 driver를 설치하시면 됩니다.)

nvidia driver 설치

그 다음으로는 sudo apt install nvidia-driver-550을 통해서 nvidia driver을 설치하겠습니다. 이 때 뒤의 숫자는 추천해주는 driver number를 넣으셔야 됩니다!!!
(저의 경우 550을 추천해줘서 550으로 설치를 진행한 것 입니다.)

reboot 후 nvidia-smi 확인

이후 reboot를 입력하고 시스템을 재부팅한 뒤 다시 시작하겠습니다.

그렇게 되면 nvidia-smi를 입력하게 되면 설치된 Nvidia 드라이버의 세부 정보를 표시하는 Nvidia 시스템 관리 인터페이스가 나타나게 됩니다.

gcc 설치 및 버전 확인

다음으로는 cuda tool-kit을 설치할 때 필요한 gcc를 설치하겠습니다.

sudo apt install gcc를 통해서 gcc를 설치해줍니다.

설치 완료 이후 버전을 확인합니다.
gcc -v를 통해서 설치된 gcc의 버전을 확인합니다.

번외) 다르게 필수적인 패키지 설치

sudo apt install build-essential을 통해서 필수적인 패키지를 설치하실수도 있습니다.

Cuda 설치

추천하는 cuda version의 경우 12.4 였지만, Tensorflow GPU를 사용하기 위해서 12.1을 설치하겠습니다. 먼저, 설치를 위해서 cuda download를 입력 후 들어갑니다.

여기서 보시면 Version에서 24.04가 없는 것을 확인 할 수 있습니다.
하지만, 22.04에서도 24.04가 실행 가능하므로 걱정하시지말고 22.04를 클릭하여 진행하도록 합니다.

이후 나온 wget https://developer.download.nvidia.com/compute/cuda/12.1.1/local_installers/cuda_12.1.1_530.30.02_linux.run 를 터미널에 입력하여 다운로드 합니다.

(좀 오래 걸리는 작업이므로 다운로드 되는 동안 휴식을 취하시면 됩니다.)

저는 설치하는데 35분이나 걸렸네요!

이후 sudo sh cuda_12.1.1_5.0.30.02_linux.run을 입력합니다.
입력 후 비밀번호를 입력하게 되면 아래의 화면으로 넘어가게 됩니다.

여기서 아래 방향키로 내려 Continue를 엔터하여 다음 화면으로 넘어갑니다.

이 화면에서 아래에 accept를 입력 후 엔터를 치면, 다시 아래의 화면으로 넘어가게 됩니다.

이 화면에서 Driver의 경우 530.30.02인데, 새 터미널을 열어서 nvidia-smi를 입력하여 우리의 드라이버 버전을 확인하면 550인것을 확인할 수 있습니다.

따라서 굳이 설치할 필요가 없으므로 Driver부분을 엔터쳐서 X를 없애줍니다.

이후 Install을 엔터하여 설치를 진행합니다.

위 사진과 같이 설치가 완료되면 이상 없습니다!

nano ~./bashrc를 입력합니다.

입력화면에 들어간 뒤 가장 아래에 다음을 붙여넣기 합니다.

export PATH=/usr/local/cuda-12.1/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-12.1/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

이후 Ctrl+O 입력, 엔터누르고, Ctrl+X 입력하여 저장 후 나옵니다.

다음으로 위 사진과 같이 source ~./bashrc 입력하여 적용시킵니다.

그 다음으로 sudo nano /etc/ld.so.conf를 입력합니다.

(라이브러리 경로를 입력하기 위함입니다.)

(sudo nano /etc/ld.so.conf를 입력하여 넘어온 화면의 모습입니다.)
이 화면에서 /usr/local/cuda-12.1/lib64 를 입력하여 저장하고 나가도록 합니다.

항상 암호를 입력할 때 한/영 변환이 제대로 되어있는지 확인하시기 바랍니다.
방금 하는 도중 자꾸 비밀번호가 틀렸다길래 왜 그런가 확인했더니 한/영 변환이 되어 있지 않아서 이런 문제가 지속적으로 발생했습니다. ㅠㅠ

이후 sudo ldconfig입력 후 아무것도 반환되지 않으면 됩니다.
다음으로 echo $PATH를 입력하여 아래에 제대로 설치됐는지 확인합니다.

여기서 12.1이 나오는것을 확인하면 OK입니다!
(다른 버전을 다운로드 하신 분들은 다운로드한 버전의 숫자가 나온다면 제대로 설치가 된 것입니다!)

다음으로 echo $LD_LIBRARY_PATH를 입력 후 lib이 제대로 나오는지 확인합니다.

이렇게 모두 잘 나온다면 기본적으로 시스템에서 cuda tool-kit이 구성되었으므로
sudo ldconfig -p | grep cuda을 입력하면 많은 것을 확인할 수 있습니다.

위 사진과 같이 여러개가 나오는 화면을 확인할 수 있으면 성공입니다!

이제 nvcc --version을 입력하면

짠~~!! 드디어 CUDA가 제대로 설치 된 것을 확인할 수 있습니다!

nvcc -V를 입력해도 제대로 나오는 것을 확인할 수 있습니다!

Cudnn 설치

cudnn을 설치하기 위해서 cudnn을 입력 후 nvidia의 cudnn archive에 들어갑니다.

12.x를 지원하기 때문에 cuDNN의 8.9.7을 다운로드 합니다.
이 때 Linux_x86_64(Tar)을 다운로드 합니다.

별표된 부분을 클릭하여 다운로드 합니다.

다운로드가 완료됐다면 Downloads폴더에서 다운된 파일을 확인할 수 있습니다.

이제 다운로드 폴더로 이동합니다. cd Downloads
tar -xvf cudnn-linux-x86_64-8.9.7.29_cuda12-archive.tar.xz를 입력하여 다운로드한 cudnn 의 압축을 해제합니다.

오류 발생!!

다운로드를 하던 도중 아래와 같이 오류가 발생할 수 있습니다.
그런 경우에 다음 명령어를 통해서 다운로드된 파일의 크기를 확인해보시고, 파일의 크기가 아마 800MB를 넘지 않는다면 제대로 다운로드가 되지 않아서 발생하는 에러일 가능성이 높습니다.
그런 경우 다운로드 한 파일을 삭제하고 다시 다운로드 하는게 오류를 일으키지 않을 가능성이 높습니다.
저 같은 경우 파일의 크기가 380MB로 제대로 압축이 풀릴 수가 없는 환경이였다는 것을 인지 후 다시 재 다운로드를 하였습니다.

파일 크기를 확인하는 명령어 :
ls -lh cudnn-linux-x86_64-8.9.7.29_cuda12-archive.tar.xz

다시 돌아와서

이렇게 완료된 모습을 확인할 수 있었습니다.

그 다음으로 cd cudnn-linux-x86_64-8.9.7.29_cuda12-archive를 입력하여 폴더로 이동합니다.

이제 파일들을 cuda로 복사 붙여넣기를 진행해야 됩니다.
아래의 커맨드들을 순서대로 입력해줍니다.

sudo cp include/cudnn*.h /usr/local/cuda-12.1/include

sudo cp lib/libcudnn* /usr/local/cuda-12.1/lib64

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

이제 cd ..를 입력하여 전 폴더(다운로드 폴더)로 이동한 뒤

ls -l /usr/local/cuda-12.1/lib64/libcudnn*를 입력하여 복사 붙여넣기가 제대로 잘 작동했는지 확인합니다.

다음으로 nano test_cudnn.c를 입력하여 입력창이 나오면 아래의 코드를 입력하고 저장합니다.

// test_cudnn.c
#include <cudnn.h>
#include <stdio.h>

int main() {
    cudnnHandle_t handle;
    cudnnStatus_t status = cudnnCreate(&handle);
    if (status == CUDNN_STATUS_SUCCESS) {
        printf("cuDNN successfully initialized.\n");
    } else {
        printf("cuDNN initialization failed.\n");
    }
    cudnnDestroy(handle);
    return 0;
}

위 사진처럼 코드를 입력 후 저장합니다.

gcc -o test_cudnn test_cudnn.c -I/usr/local/cuda-12.1/include -L/usr/local/cuda-12.1/lib64 -lcudnn 다음으로 위 커맨드를 입력합니다.

이후 ./test_cudnn를 입력하여 실행시키면

짠~! 이제 성공적으로 초기화 되었음을 확인할 수 있습니다!

profile
행복합시다~

0개의 댓글

관련 채용 정보