본문으로 건너뛰기

NVIDIA GPU 환경 설정

카카오클라우드 GPU 인스턴스에서 NVIDIA 드라이버, CUDA, cuDNN을 설치하고 검증하는 방법을 안내합니다.

기본 정보
  • 예상 소요 시간: 30분
  • 권장 운영 체제: macOS, Ubuntu

시나리오 소개

이 시나리오에서는 머신러닝과 딥러닝 작업에 필요한 NVIDIA GPU 환경을 구성합니다. 카카오클라우드에서 제공하는 Ubuntu 20.04 NVIDIA 이미지를 사용하는 방법과 일반 Ubuntu 이미지에 원하는 NVIDIA 드라이버, CUDA, cuDNN 버전을 직접 설치하는 방법을 함께 다룹니다.

주요 내용은 다음과 같습니다.

  • NVIDIA 드라이버 프리인스톨 이미지로 GPU 환경을 빠르게 구성하는 방법
  • 특정 NVIDIA/CUDA 버전이 필요할 때 일반 Ubuntu 이미지에 드라이버와 라이브러리를 설치하는 방법
  • GPU 인스턴스에 SSH로 접속해 드라이버와 라이브러리를 설치하는 과정
  • CUDA와 cuDNN 설치 후 GPU 환경을 검증하는 방법

시작하기 전에

사전 작업으로 VPC와 서브넷, 보안 그룹을 설정합니다.

1. VPC와 서브넷 생성

인스턴스를 생성하기 전, 인스턴스가 생성될 VPC 및 서브넷을 생성해야 합니다. VPC와 서브넷이 없다면, VPC 생성, 서브넷 생성 문서를 참고하여 VPC 및 서브넷을 생성합니다.

2. 보안 그룹 설정

보안 그룹 생성 문서를 참고하여 보안 그룹을 생성합니다. 인바운드 규칙은 다음과 같이 추가합니다.

나의 퍼블릭 IP 확인하기

다음 버튼을 클릭하면 현재 사용 중인 나의 퍼블릭 IP를 확인할 수 있습니다.

CIDR프로토콜포트 번호역할
{사용자 퍼블릭 IP}/32TCP     22     SSH

시작하기

NVIDIA 드라이버 프리인스톨 이미지를 사용하는 방식과 일반 Ubuntu 이미지에 드라이버를 직접 설치하는 방식을 순서대로 진행합니다.

Type 1. NVIDIA 드라이버 프리인스톨 이미지 사용

카카오클라우드에서 제공하는 기본 이미지인 Ubuntu 20.04(NVIDIA VERSION)를 통해 GPU 인스턴스를 생성하는 방법은 다음과 같습니다. 이 이미지에는 NVIDIA 드라이버 버전 470.199.02, CUDA 버전 11.4이 포함되어 있으므로, 별도의 NVIDIA 드라이버 또는 CUDA 설치가 필요하지 않습니다.

특정 NVIDIA/CUDA 버전 설치가 필요할 경우

Ubuntu 20.04 (NVIDIA VERSION) 이미지 이외에 다른 버전의 이미지를 사용할 경우에는 일반 Ubuntu 이미지를 사용 문서를 참고하세요.

Step 1. GPU 인스턴스 생성

  1. 카카오클라우드 콘솔 > Compute > Beyond Compute Service > Virtual Machine 메뉴로 이동합니다.

  2. 인스턴스 탭에서 [인스턴스 생성] 버튼을 클릭합니다.

  3. 인스턴스 생성에서 아래 항목에 해당하는 인스턴스를 생성한 뒤 [생성] 버튼을 클릭합니다.

    항목설정값
    기본 정보- 이름: 자유롭게 지정
    - 개수: 1개
    이미지Ubuntu 20.04 - NVIDIA 선택
    인스턴스 유형p2i.6xlarge
    볼륨루트 볼륨: 50GB 또는 그 이상
    키 페어{USER_KEYPAIR}
    .pem 형식의 키 파일은 안전하게 보관

Step 2. 퍼블릭 IP 연결

GPU 인스턴스에 퍼블릭 IP를 연결합니다.

  1. 카카오클라우드 콘솔 > Compute > Beyond Compute Service > Virtual Machine 메뉴로 이동합니다.
  2. 위에서 생성한 GPU 인스턴스의 [⋮] 버튼을 클릭한 뒤 [퍼블릭 IP 연결] 버튼을 클릭합니다.
  3. 퍼블릭 IP 연결 설정 팝업창에서 [새로운 퍼블릭 IP를 생성하고 자동으로 할당]을 선택한 뒤 [확인] 버튼을 클릭합니다.
  4. 퍼블릭 IP 칼럼에서 퍼블릭 IP를 확인합니다.

Step 3. cuDNN 설치

딥 뉴럴 네트워크를 위한 GPU 가속화 라이브러리인 NVIDIA cuDNN(NVIDIA CUDA Deep Neural Network library)을 설치합니다.

  1. cuDNN 파일을 실행하기 위해 해당 인스턴스에 SSH 접속합니다.

    ssh ubuntu@${GPU_PUBLIC_IP} -i ${PRIVATE_KEY}.pem

    #예제) ssh ubuntu@210.100.00.000 -i test.pem
    파라미터유형필수 여부설명
    GPU_PUBLIC_IPString필수GPU 인스턴스의 퍼블릭 IP 주소
    PRIVATE_KEYString필수키 파일

    이미지 SSH 접속 완료

  2. 다음 NVIDIA에서 제공하는 cuDNN 설치 가이드를 확인하여 cuDNN과 CUDA를 설치합니다. 해당 문서는 Ubuntu 20.04 버전에서 cuDNN을 설치하는 방법과 명령어를 안내합니다.

  3. 아래 명령어를 통해 정상 설치된 cuDNN을 확인합니다.

    cat /usr/include/x86_64-linux-gnu/cudnn_version*.h | grep CUDNN_MAJOR

    # define CUDNN_MAJOR 9

    이미지 cuDNN 설치 완료

Type 2. 일반 Ubuntu 이미지를 사용

카카오클라우드에서 제공하는 NVIDIA 드라이버 프리인스톨 이미지가 아닌 특정 NVIDIA 또는 CUDA 버전이 필요한 경우에는, 일반 Ubuntu 이미지를 사용하여 원하는 NVIDIA 또는 CUDA 버전을 설치할 수 있습니다.

Step 1. GPU 인스턴스 생성

  1. 카카오클라우드 콘솔 > Compute > Beyond Compute Service > Virtual Machine 메뉴로 이동합니다.

  2. 인스턴스 탭에서 [인스턴스 생성] 버튼을 클릭합니다.

  3. 인스턴스 생성에서 아래 항목에 해당하는 인스턴스를 생성한 뒤 [생성] 버튼을 클릭합니다.

    항목설정값
    기본 정보- 이름: 자유롭게 지정
    - 개수: 1개
    이미지Ubuntu 20.04 선택
    인스턴스 유형p2i.6xlarge
    볼륨루트 볼륨: 50GB 또는 그 이상
    키 페어{USER_KEYPAIR}
    .pem 형식의 키 파일은 안전하게 보관

Step 2. 퍼블릭 IP 연결

GPU 인스턴스에 퍼블릭 IP를 연결합니다.

  1. 카카오클라우드 콘솔 > Compute > Beyond Compute Service > Virtual Machine 메뉴로 이동합니다.
  2. 위에서 생성한 GPU 인스턴스의 [⋮] 버튼을 클릭한 뒤 [퍼블릭 IP 연결] 버튼을 클릭합니다.
  3. 퍼블릭 IP 연결 설정 팝업창에서 [새로운 퍼블릭 IP를 생성하고 자동으로 할당]을 선택한 뒤 [확인] 버튼을 클릭합니다.
  4. 퍼블릭 IP 칼럼에서 퍼블릭 IP를 확인합니다.

Step 3. GPU 인스턴스 접속 및 환경 확인

  1. 키 파일이 위치한 경로로 이동합니다.

  2. 위에서 생성한 퍼블릭 IP에 SSH로 접속하여 정상 동작을 확인합니다.

    ssh ubuntu@${GPU_PUBLIC_IP} -i ${PRIVATE_KEY}.pem
    파라미터유형필수 여부설명
    GPU_PUBLIC_IPString필수호스트 퍼블릭 IP 주소
    PRIVATE_KEYString필수키 파일
  3. GPU 인스턴스의 이미지 정보 및 NVIDIA 장치 정보를 확인합니다.

    cat /etc/*release
    lspci | grep -i NVIDIA

Step 4. NVIDIA 드라이버 설치

GPU 환경을 구성하기 위해 필요한 드라이버와 라이브러리를 확인하여 설치합니다.

권장 드라이버 및 라이브러리 버전
GPU TypeNVIDIA 버전CUDA 버전cuDNN
NVIDIA A100450.80.02 이상CUDA Toolkit 11.4 이상8.1 이상
안내

다른 환경에서 가이드를 진행 중이거나 다른 특정 버전이 요구되는 경우, CUDA Toolkit Archive에서 필요한 버전을 다운로드할 수 있습니다.

  1. 패키지 리스트를 업데이트합니다.

    sudo apt-get update
    sudo apt-get -y upgrade

    이미지 패키지 리스트 업데이트 완료

  2. 사용자 환경에 따라 이미 설치된 NVIDIA 드라이버가 있을 수 있는데, 이로 인해 몇 가지 이유로 문제가 발생할 수 있습니다. 따라서, 아래 명령어를 이용하여 기존 드라이버를 제거합니다.

    sudo apt-get -y remove 'nvidia*' && sudo apt autoremove -y
    sudo apt-get install build-essential linux-headers-generic
  3. 패키지 저장소에 그래픽 드라이버 저장소를 추가합니다.

    sudo add-apt-repository ppa:graphics-drivers/ppa # 중간 설명글이 나오면 'Enter'키를 눌러 넘어갑니다.
    sudo apt-get update
  4. Ubuntu 20.04lts 버전을 지원하는 드라이버 중 하나인 nvidia-driver-470을 설치합니다.

    sudo apt install -y nvidia-driver-470

    이미지 nvidia-driver-470 설치 완료

  5. 설치된 드라이버를 적용하기 위해 인스턴스를 재부팅합니다. 일정 시간이 흐른 뒤, 다시 접속할 수 있습니다.

    sudo reboot
  6. 위에서 생성한 퍼블릭 IP에 SSH로 접속하여 정상 동작을 확인합니다.

    ssh ubuntu@${GPU_PUBLIC_IP} -i ${PRIVATE_KEY}.pem
    파라미터유형필수 여부설명
    GPU_PUBLIC_IPString필수호스트 퍼블릭 IP 주소
    PRIVATE_KEYString필수키 파일
  7. 아래 명령어를 입력하여 설치된 결과를 확인합니다.

    nvidia-smi
    # 정상적인 결과:
    # Thu Nov 3 02:21:13 2022
    # +-----------------------------------------------------------------------------+
    # | NVIDIA-SMI 470.141.03 Driver Version: 470.141.03 CUDA Version: 11.4 |
    # |-------------------------------+----------------------+----------------------+
    # | ...

    이미지 정상 설치 시

Step 5. NVIDIA CUDA Toolkit 설치

NVIDIA CUDA Toolkit은 엔비디아 GPU 가속화 애플리케이션 개발 플랫폼입니다. CUDA Toolkit에는 GPU 가속화 라이브러리, 디버깅 및 최적화 도구, 컴파일러 그리고 애플리케이션을 배포하기 위한 CUDA 런타임이 포함됩니다. 자세한 설명은 NVIDIA 공식 홈페이지를 참고하세요.

CUDA 설치 여부 확인

nvcc -V 명령어로 CUDA Toolkit 설치 여부를 확인합니다. CUDA 드라이버가 인식되면 CUDA 설치 단계를 생략하고 cuDNN 설치 단계로 이동합니다.

CUDA 설치 여부 확인
nvcc -V

# nvcc: NVIDIA (R) Cuda compiler driver
# Copyright (c) 2005-2021 NVIDIA Corporation
# ...

Step 6. CUDA 설치

  1. CUDA 설치 패키지를 다운로드합니다.

    wget https://developer.download.nvidia.com/compute/cuda/11.4.0/local_installers/cuda_11.4.0_470.42.01_linux.run
  2. 다운로드한 CUDA 설치 파일을 실행합니다.

    sudo sh cuda_11.4.0_470.42.01_linux.run
  3. 설치 진행 중 아래와 같은 문구가 나타나면 [continue]를 선택합니다.

    ┌──────────────────────────────────────────────────────────────────────────────┐
    │ Existing package manager installation of the driver found. It is strongly │
    │ recommended that you remove this before continuing. │
    │ Abort │
    > Continue
    ...
  4. 다음으로 사용자에게 EULA 라이선스 승인을 요구합니다. 승인에 동의해야 실습을 진행할 수 있습니다. 다음을 참고하여 입력 부분에 accept를 입력합니다.

    ┌──────────────────────────────────────────────────────────────────────────────┐
    │ End User License Agreement │
    │ -------------------------- │
    │ │
    │ The CUDA Toolkit ...

    ...

    │──────────────────────────────────────────────────────────────────────────────│
    │ Do you accept the above EULA? (accept/decline/quit): │
    │ accept │
    └──────────────────────────────────────────────────────────────────────────────┘
  5. 이미 설치된 드라이버는 체크를 해제합니다. 확인 후 [Install]을 선택하여 설치할 수 있습니다.

    ┌──────────────────────────────────────────────────────────────────────────────┐
    │ CUDA Installer │
    │ - [] Driver │
    [] 470.42.01 │
    │ + [X] CUDA Toolkit 11.4
    [X] CUDA Samples 11.4
    [X] CUDA Demo Suite 11.4
    [X] CUDA service 11.4
    │ Options │
    > Install
    ...
  6. 설치가 완료되면 CUDA Toolkit 관련 환경변수를 추가합니다.

    export PATH=$PATH:/usr/local/cuda/bin
    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64
    export CUDADIR=/usr/local/cuda
  7. nvcc -V 명령어를 실행하여 설치된 CUDA Toolkit을 확인합니다.

    nvcc -V

    # 성공 결과:
    # nvcc: NVIDIA (R) Cuda compiler driver
    # Copyright (c) 2005-2021 NVIDIA Corporation
    # ...

Step 7. cuDNN 설치

딥 뉴럴 네트워크를 위한 GPU 가속화 라이브러리인 NVIDIA cuDNN(NVIDIA CUDA Deep Neural Network library)을 설치합니다. 자세한 설명은 NVIDIA 공식 홈페이지를 참고하세요.

  1. NVIDIA cuDNN 페이지에 접속합니다.

  2. 설치할 cuDNN 버전을 선택한 후, 아래 경로를 따라 설치합니다.

    • 경로: Archive of Previous Releases > cuDNN 버전 > Linux > x86_64 > Ubuntu > deb (network)
    • GPU 인스턴스에 SSH 접속한 상태에서, 페이지에서 제공되는 명령어를 실행하여 설치합니다.
    정보

    cuDNN 9.x의 CUDA 11.x용 동적 라이브러리는 CUDA 11.4 환경에서도 사용할 수 있습니다. 단, 일부 기능이나 정적 링크 구성은 CUDA 11.5 이상 또는 CUDA 11.8을 요구할 수 있으므로, 사용하려는 프레임워크와 NVIDIA cuDNN Support Matrix를 함께 확인하세요. 일반적으로 cuDNN 9.10.2를 권장하며, 프레임워크 호환성이 필요한 경우 cuDNN 9.6.0 또는 cuDNN 8.x 버전을 선택할 수 있습니다. 특히 TensorFlow 2.x 일부 버전은 cuDNN 8.x 환경에서 더 안정적으로 동작할 수 있으므로, 사용 중인 프레임워크에 맞는 버전을 선택하세요.

  1. cuDNN이 설치되었는지 확인합니다.

    cat /usr/include/x86_64-linux-gnu/cudnn_version*.h | grep CUDNN_MAJOR

    # 출력 예시
    # define CUDNN_MAJOR 9