GPU Server
    • PDF

    GPU Server

    • PDF

    기사 요약

    네이버 클라우드 플랫폼 콘솔에서 GPU 서버를 생성하고 관리하는 방법을 설명합니다.

    참고
    • 예기치 못한 서버의 장애 또는 예정된 변경 작업 등에 대하여 중단 없이 서비스 연속성을 보장할 수 있도록 서버는 기본적으로 존 간 이중화 구성을 권장합니다. Load Balancer 개요를 참고하여 이중화 설정을 진행해 주십시오.
    • 네이버 클라우드 플랫폼에서는 메모리, CPU, 전원 공급 등 물리 서버의 장애에 대비하기 위해 High Availability(HA) 구조를 제공합니다. HA는 하드웨어에서 발생한 장애가 Virtual Machine(VM) 서버로 확대되는 것을 방지하기 위한 정책으로, 호스트 서버에 장애가 발생하면 자동으로 호스트 서버 안에 있는 VM 서버를 안정된 다른 호스트 서버로 옮기는 Live Migration을 지원합니다. 하지만 Live Migration을 진행할 수 없는 오류가 발생하면 VM 서버가 재시작됩니다. VM 서버 한 대로 서비스를 운영하면 VM 서버 재시작으로 장애가 발생할 수 있으므로 장애 발생 빈도를 줄이기 위해서는 위의 안내와 같이 VM 서버를 다중화하길 권장합니다.

    서버 생성

    GPU 서버는 콘솔의 Services > Compute > Server 메뉴에서 생성할 수 있습니다. 자세한 생성 방법은 Server 생성을 참고해 주십시오.

    참고

    GPU 서버는 기업 회원에 한하여 최대 5대까지 생성할 수 있습니다. 더 많은 GPU 서버가 필요하거나 GPU 서버 생성이 필요한 개인 회원의 경우 고객 지원으로 문의해 주십시오.

    서버 정보 확인

    GPU 서버 정보를 확인하는 방법은 일반 서버 정보를 확인하는 방법과 같습니다. 자세한 내용은 서버 정보 확인을 참고해 주십시오.

    주의

    GPU 서버는 서버 정지 시에도 전체 서버 요금이 과금됩니다.

    서버 관리 및 설정 변경

    GPU 서버 관리 및 설정 변경 방법은 일반 서버 관리 및 설정 변경 방법과 같습니다. 자세한 내용은 서버 관리 및 설정 변경을 참고해 주십시오.

    참고
    • GPU 서버는 동일한 타입의 서버로만 스펙을 변경할 수 있습니다.
    • GPU 서버를 생성한 후 GPU를 제거하여 일반 서버로 전환할 수는 없습니다. 일반 서버로 변경하려면 서버 이미지를 생성한 후, 서버 이미지를 사용해 일반 서버를 새로 생성해야 합니다.
    • 일반 서버에서 생성한 서버 이미지를 사용해 GPU 서버를 생성할 수 있습니다.

    GPU 드라이버/CUDA 재설치 및 업그레이드

    GPU 서버 사용 중 다음과 같은 경우에 서버의 GPU 드라이버 및 CUDA를 재설치할 수 있습니다.

    • OS 커널 버전이 변경(업데이트)되어 현 GPU 드라이버와 호환되지 않는 경우: GPU 드라이버만 재설치해 주십시오.
    • 사용 중인 구 버전의 GPU 드라이버를 네이버 클라우드 플랫폼에서 제공 중인 최신 드라이버로 업그레이드할 경우
    • 사용자가 원하는 임의의 버전으로 드라이버 업그레이드가 필요한 경우
    참고
    • 네이버 클라우드 플랫폼에서 기본 설치하여 제공하는 버전 이외의 드라이버 설치 후 발생하는 문제에 대하여 공식적인 지원을 받기 어려울 수 있습니다.
    • 네이버 클라우드 플랫폼에서 제공 중인 드라이버보다 하위 버전으로의 재설치는 권장하지 않습니다.
    • 네이버 클라우드 플랫폼에서 기본 설치하여 제공하는 드라이버 버전은 다음과 같습니다.
    Linux
    GPU Driver535.161.08
    CUDA12.2
    cuDNN8.9.7

    사용 중인 OS에 따라 다음의 안내를 참고해 주십시오.

    GPU 드라이버 재설치(Linux)

    네이버 클라우드 플랫폼에서 제공하는 버전의 드라이버는 스크립트를 통해 재설치할 수 있습니다.
    별도의 버전을 사용하실 계획이라면 수동 재설치 절차를 따르십시오.

    스크립트를 통한 재설치

    스크립트를 통해 GPU 드라이버를 재설치하는 방법은 다음과 같습니다.

    1. wget http://init.ncloud.com/gpu/ncp_gpu_reinstall.sh 명령어를 입력해 스크립트 파일을 다운로드해 주십시오.
    2. ./ncp_gpu_reinstall.sh 명령어를 입력해 기존의 GPU 드라이버를 삭제해 주십시오.
    3. 서버를 재부팅해 주십시오.
    4. ./ncp_gpu_reinstall.sh 명령어를 다시 입력해 GPU 드라이버를 재설치해 주십시오.

    수동 재설치

    스크립트를 통한 재설치에 실패하거나, GPU 드라이버 버전을 변경하여 설치하는 방법은 다음과 같습니다.

    1. 재설치 또는 업그레이드하려는 버전의 드라이버 파일을 다운로드해 주십시오.
    2. 다음 명령어 입력하시어 기존의 GPU 드라이버를 삭제해 주십시오.
      • <예시> 네이버 클라우드 플랫폼에서 기본 제공하는 535.161.08 버전
      # ./NVIDIA-Linux-x86_64-535.161.08.run -s
      Verifying archive integrity... OK
      Uncompressing NVIDIA Accelerated Graphics Driver for Linux-x86_64    535.161.08..........................................................................................................
      
    3. 서버를 재부팅해 주십시오.
    4. 다음 명령어를 입력하시어 신규 GPU 드라이버를 설치해 주십시오.
      # ./NVIDIA-Linux-x86_64-535.161.08.run -a --ui=none --no-questions --accept-license
      Verifying archive integrity... OK
      Uncompressing NVIDIA Accelerated Graphics Driver for Linux-x86_64 535.161.08..........................................................................................................
      
      Welcome to the NVIDIA Software Installer for Unix/Linux
      
      (생략)
      
      Installation of the kernel module for the NVIDIA Accelerated Graphics Driver for Linux-x86_64 (version 535.161.08) is now complete.
      
    5. 서버를 재부팅해 주십시오.
    6. nvidia-smi 명령어를 입력해 정상적으로 설치된 드라이버 버전과 인식된 GPU 카드 모델 및 개수를 확인해 주십시오.

    CUDA 재설치(Linux)

    CUDA는 cuDNN도 함께 재설치해야 정상적으로 동작합니다. 설치하는 방법은 다음과 같습니다.

    1. CUDA Toolkit 다운로드 웹사이트에 접속해 주십시오.
    2. 설치하고자 하는 버전의 CUDA Runtime 설치 파일을 선택하여 다운로드 링크를 가져와 주십시오.
      • 설치 유형은 OS 의존성이 없는 runfile (local)을 선택해 주십시오.
    3. 기존 CUDA 경로의 심볼릭 링크를 확인한 후, 기존 버전의 실제 경로 디렉터리를 삭제해 주십시오.
      • 기존의 CUDA Toolkit과 cuDNN이 삭제됩니다.
      # ll /usr/local/cuda
      # lrwxrwxrwx 1 root root 21 Apr 16 15:42 /usr/local/cuda -> /usr/local/cuda-12.2/
      # rm -rf /usr/local/cuda-12.2
      
    4. 다음 명령어를 입력해 CUDA Toolkit을 재설치해 주십시오.
      • <예시> 네이버 클라우드 플랫폼에서 기본 제공하는 12.2 버전
      # ./cuda_12.2.2_535.104.05_linux.run --toolkit --toolkitpath=/usr/local/cuda-12.2 --samples --samplespath=/usr/local/cuda-12.2/samples --silent
      
    5. 재설치된 CUDA의 버전을 확인해 주십시오.
      # nvcc --version
      
    6. cuDNN 다운로드 웹사이트에 접속해 다운로드 링크를 가져와 주십시오.
    7. 가져온 링크를 통해 cuDNN을 다운로드해 주십시오.
    8. cuDNN은 별도의 설치 관리자 없이 CUDA가 설치된 디렉터리에 압축을 푸는 형태로 설치됩니다. 다음을 참고하여 설치해 주십시오.
      • <예시> 네이버 클라우드 플랫폼에서 기본 제공하는 8.9.7 버전
      # cd /root
      # tar -xvf cudnn-linux-x86_64-8.9.7.29_cuda12-archive.tar.xz
      # mv cudnn-linux-x86_64-8.9.7.29_cuda12-archive cuda
      # cp cuda/include/cudnn* /usr/local/cuda/include
      # cp cuda/lib64/libcudnn* /usr/local/cuda/lib64
      # chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*
      
    9. 설치된 cuDNN의 버전을 확인해 주십시오.
      • cuDNN 8.x 기준 확인 방법
      # cat /usr/local/cuda/include/cudnn_version.h | grep -A2 MAJOR
      #define CUDNN_MAJOR 8
      #define CUDNN_MINOR 9
      #define CUDNN_PATCHLEVEL 7
      
    참고

    nvidia-smi 명령어 실행 시 출력되는 정보는 다음과 같습니다.

    항목설명
    Driver Version설치된 드라이버 버전
    CUDA Version드라이버가 지원하는 CUDA API 버전
    NameGPU 모델명
    TempGPU 코어의 온도
    PerfGPU의 Performance State
    • GPU 온도 및 전력 사용량에 따라 유동적으로 변화
    Pwr:Usage/Cap현재 GPU가 사용 중인 전력량
    Memory-UsageGPU의 메모리 사용량(현재 사용량/GPU 메모리 용량)
    Volatile GPU-UtilGPU 사용률
    Uncorr. ECCUncorrectable ECC(Error Correction Code) 오류 발생 횟수
    MIG M.MIG(Multi Instance GPU) Mode 상태
    • 네이버 클라우드 플랫폼에서 제공하는 P40, T4, V100 GPU는 기능 미지원
    Processes현재 GPU를 사용 중인 프로세스 정보
    • GPU: 프로세스가 동작 중인 GPU 번호
    • GI ID/CI ID: MIG(Multi-Instance GPU) 기능으로 Slice된 GPU Instance 및 Compute Instance 정보
    • PID, Process name: 프로세스의 ID 및 이름
    • Type: CUDA/OpenCL 프로세스는 C(Compute)로, DirectX/OpenGL 프로세스는 G(Graphics)로 표시
    • GPU Memory Usage: 프로세스의 GPU 메모리 사용량

    NTK를 통해 진단 데이터 수집/전달

    Ncloud Tool Kit(NTK)를 통해서 GPU VM의 NVIDIA 디버그 로그를 수집할 수 있습니다. 또한 점검을 위해, 수집한 로그 파일을 네이버클라우드의 기술 지원 센터로 전송할 수 있습니다.

    참고

    NTK에 대한 자세한 설명은 Ncloud Tool Kit를 참고해 주십시오.

    1. NTK 실행

    Linux 서버에서 NTK를 실행하는 방법은 다음과 같습니다.

    1. cd /usr/local/etc 명령어를 입력해 주십시오.
      • NTK가 위치한 경로로 이동합니다.
    2. tar zxvf ntk.tar.gz 명령어를 입력해 주십시오.
      • NTK 파일 압축이 해제됩니다.
      • ntk.tar.gz 파일이 없거나 해당 파일을 최신 버전으로 교체하려면 wget -P /usr/local/etc http://init.fin-ncloud.com/server/ntk/linux/xen/ntk.tar.gz을 입력해 파일을 다운로드해 주십시오.
    3. /usr/local/etc/ntk/ntk 명령어를 입력해 NTK를 실행해 주십시오.

    2. 디버그 로그 수집 및 전송

    NTK에서 디버그 로그를 수집하고 네이버클라우드의 기술 지원 센터로 전송하는 방법은 다음과 같습니다.

    1. NTK 메인 화면에서 E EXCUTE - << Run System Apps >>를 선택해 주십시오.
      server-gpuserver-vpc_debug-collect_1

    2. G GPU DEBUG COLLECTING - FOR LOG COLLECT를 선택해 주십시오.
      server-gpuserver-vpc_debug-collect_2

    3. Yes를 선택해 주십시오.
      server-gpuserver-vpc_debug-collect_3

      • 로그 수집 스크립트가 바로 실행됩니다.
    4. 로그 수집 완료 메시지 및 로그 파일 저장 경로가 출력되면 내용을 확인한 후 Ok를 선택해 주십시오.
      server-gpuserver-vpc_debug-collect_4

    5. 네이버클라우드의 기술 지원 센터로 로그 파일을 전송할지의 여부를 선택해 주십시오.
      server-gpuserver-vpc_debug-collect_5

      • 전송을 원한다면 Yes를 선택해 주십시오. 파일 전송이 바로 시작됩니다. 전송 완료 시, 성공 메시지 및 사용자가 로그를 다운로드할 수 있는 단축 URL이 표시됩니다.
      • 전송을 원하지 않는다면 No를 선택하여 종료해 주십시오.

    수집된 로그 전송

    이전에 수집했으나 네이버클라우드의 기술 지원 센터로 전송하지 않은 로그 파일을 전송할 수 있습니다.

    참고

    네트워크 이슈로 인해 네이버클라우드의 기술 지원 센터로 로그 파일이 정상적으로 전송되지 않는 경우, VM에 저장된 로그 파일을 첨부해서 전달해 주십시오.

    • 로그 파일 저장 경로: /usr/local/etc/ntk/logs/gpu_get_log

    로그를 전송하는 방법은 다음과 같습니다.

    1. NTK 메인 화면에서 V VIEW - << View & Upload Logs >>를 선택해 주십시오.
      server-gpuserver-vpc_debug-view_1

    2. G - GPU DEBUG FILES를 선택해 주십시오.
      server-gpuserver-vpc_debug-view_2

    3. 생성된 로그 파일 목록을 확인한 후, 네이버클라우드의 기술 지원 센터에 전송할 로그 파일을 선택해 주십시오.
      server-gpuserver-vpc_debug-view_3

    4. Yes를 선택해 주십시오.
      server-gpuserver-vpc_debug-collect_5

      • 파일 전송이 바로 시작됩니다. 전송 완료 시, 성공 메시지 및 사용자가 로그를 다운로드할 수 있는 단축 URL이 표시됩니다.

    GPU 디버그 로그 파일 종류

    NTK를 통해 생성되는 GPU 로그 파일은 다음과 같습니다.

    로그 파일명사용 명령어역할
    date.logdate로그 생성 일시 출력
    dmesg-xid.logdmesg grep -i xidxid가 포함된 커널 메시지 출력
    dmesg.logdmesg커널 메시지 출력
    free.logfree -mMB 단위로 메모리 사용량 출력
    last.loglast로그인과 재부팅 로그를 출력
    ps.logps auxf프로세스 상태 확인
    top.logtop -b -n 1top(batch 모드로 1회), 시스템 정보 출력
    uptime.loguptimeuptime 결과 출력
    nvidia-bug-report.log.gzcellnvidia-bug-report.sh 스크립트 수행

    GPU 리소스 모니터링

    Cloud Insight를 이용해 GPU 리소스를 모니터링할 수 있습니다. Cloud Insight에 대한 자세한 내용은 Cloud Insight 사용 가이드를 참고해 주십시오.

    대시보드 조회

    Services > Management & Governance > Cloud Insight > Dashboard 메뉴에서 Service Dashboard/Server 대시보드를 선택하면 서버와 관련된 기본 메트릭을 한눈에 볼 수 있습니다.

    • [위젯 데이터 변경] 버튼을 클릭하면 위젯에 표시할 데이터를 필터링할 수 있습니다.
    • GPU 서버와 관련하여 확인할 수 있는 메트릭은 다음과 같습니다.
      • Current GPU MEM Usage (GPU/vmem_usage(%)) : GPU 메모리 사용량 = GPU/vmem_usage(%)
      • Current GPU MEM Usage (GPU/vmem_usage(MiB)) : GPU 메모리 사용량 = GPU/vmem_usage(MiB)
      • Current GPU Usage : GPU 사용량 = GPU/usage(%)

    대시보드를 조회하는 방법에 대한 자세한 내용은 Cloud Insight의 대시보드 조회를 참고해 주십시오.

    사용자 대시보드 추가

    원하는 메트릭만 모니터링할 수 있도록 사용자 대시보드를 추가할 수 있습니다.
    [대시보드 생성] 버튼을 클릭하여 새로운 대시보드를 생성한 후, [위젯 추가] 버튼을 클릭하여 표시할 위젯 종류 및 메트릭 정보를 설정해 주십시오.

    • GPU 서버와 관련된 위젯을 생성하려면, 데이터 설정 시 Product TypeServer로 선택해야 합니다.
    • GPU 관련 메트릭을 설정 데이터로 사용할 때, 반드시 디멘션(gpu_idx)을 GPU 수만큼 모두 추가해야 합니다.
      server-gpuserver-vpc_metric_ko

    대시보드를 추가 생성하는 방법에 대한 자세한 내용은 Cloud Insight의 대시보드 생성을 참고해 주십시오.


    이 문서가 도움이 되었습니까?

    Changing your password will log you out immediately. Use the new password to log back in.
    First name must have atleast 2 characters. Numbers and special characters are not allowed.
    Last name must have atleast 1 characters. Numbers and special characters are not allowed.
    Enter a valid email
    Enter a valid password
    Your profile has been successfully updated.