카테고리 없음

네트워크 GPU CLoud(NGC) / Docker 구성

더덕2 2024. 9. 6. 14:12
  1. NVIDIA GPU CLoud(NGC)

      

      - NGC는 NVIDIA에서 제공하는 GPU에 최적화된 소프트웨어, 관리 도구 등을 지원하는 software Hub 입니다.

      - 도커 컨테이너 기반의 개발환경을 제공함으로 안정되고 간편한 설치를 지원합니다.

      - 인공지능(AI) 개발자들을 위한 엔비디아 GPU 클라우드 컨테이너 레지스트리 서비스 입니다.      

      

 

설계 목적

- NGC는 개발자, 데이터 과학자, 연구자들이 GPU 가속 컴퓨팅환경에서 보다 효율적으로 작업할 수 있도록 설계 되었습니다.

 

주요 구성 요소

- 컨테이너 이미지 : NGC는 사전 빌드된, 최적화된 Docker 컨테이너 이미지를 제공합니다.

- TensorFlow, PyTorch , MXNet, TensorRT, CUDA 등 주요 딥러닝 프레임워크와 소프트웨어 라이브러리를 포함하고있습니다.

 

- 모델 레지스트리 : 사전 훈련된 AI 모델과 훈련 가능 모델이 포함되어 있습니다.

 

- 업데이트 및 지원 : NVIDIA는 NGC의 컨테이너와 모델을 정기적으로 업데이트하여 최신버전의 sw와 라이브러리를 제공합니다.

 

- 클라우드 제공업체 지원 : NGC는 AWS, Azure, Google Cloud와 같은 클라우드 제공업체와 통합되어, 선호하는 클라우드 환경에서 GPU 가속컴퓨팅을 사용할수 있습니다.

 

- 온프레미스 지원 : NGC는 클라우드뿐만 아니라, 엔비디아 그래픽 카드가 장착된 온프레미스 시스템에서도 사용할 수 있습니다.

 

- 명령줄 인터페이스 : 명령줄 인터페이스인 NGC CLI를 통해 사용자는 NGC 레지스트리와 쉽게 상호작용 및 컨테이너를 적용할 수 있습니다.

 

- NGC 인스턴스 : 클라우드에서 GPU 가속 인스턴스를 사용하여 AI 모델을 훈련하고 배포할 수 있습니다.

 

2. Docker
GPU 서버 시스템 명세서
항목
세부 정보
서버 이름
GPU-Server-01
운영 체제
Ubuntu 22.04.3 LTS
GPU 모델
NVIDIA A100-PCIE-40GB
GPU 수
2
GPU VRAM
40GB HBM2 per GPU
CUDA 버전
12.5
NVIDIA 드라이버 버전
555.42.02
Docker 버전
27.0.3
PyTorch 버전
2.3.0
작업 순서
      (1) nvidia 드라이버 설치 확인
      (2) 시스템 업데이트 ( 최신상태 유지 )
      (3) 의존성 패키지 설치
      (4) 도커 공식 GPG 키 추가
      (5) 도커 저장소 설치
      (6) 패키지 업데이트
      (7) 도커 설치
      (8) 도커 서비스 시작
      (9) 설치 확인
      (10) nvidia 컨테이너 toolkit 설치
      (11) NGC 계정 생성 및 도커사용하여 NGC 로그인
      (12) PyTorch 컨테이너 pull
      (13) PyTorch 컨테이너 실행
      (14) PyTorch 설치 확인
상세 작업 내용
      
      (1) nvidia 드라이버 설치 확인
            - nvidia-smi ( nvidia 드라이버 설치 확인 )
            - dpkg -l | grep nvidia ( nvidia 패키지 설치된 항목 찾기
      (2) 시스템 업데이트 ( 최신상태 유지 )
            - sudo apt-get update
      (3) 의존성 패키지 설치 (도커를 설치하기위해 여러 유틸리티 패키지들을 설치하였습니다. )
            - sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common

 

            
      (4) 도커 공식 GPG 키 추가 ( 도커 패키지 무결성 검증을위한 GPG 키 추가 )
            - curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

 

      (5) 도커 저장소 설치 ( 도커를 설치하기위한 저장소 설치 )
            -echo "deb[arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs)               stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
      (6) 패키지 업데이트
            - sudo apt-get update
      
      (7) 도커 설치
            - sudo apt install docker-ce
      (8) 도커 서비스 시작
            - sudo systemctl start docker
      (9) 도커 설치 확인
            - sudo docker --version
      (10) nvidia 컨테이너 toolkit 설치( nvidia 홈페이지에서 엔비디아 컨테이너 툴킷 설치 )
            - curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
              && curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
               sed 's#deb [https://#deb]https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] [https://#g]https://#g' | \
               sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
            - sed -i -e '/experimental/ s/^#//g' /etc/apt/sources.list.d/nvidia-container-toolkit.list
            - sudo apt-get update
            - sudo apt-get install -y nvidia-container-toolkit
      (11) NGC 계정 생성 및 도커사용하여 NGC 로그인
            - https://ngc.nvidia.com/signin ( 계정 생성 및 로그인 )
            - https://ngc.nvidia.com/setup/api-key ( [Generate API Key] 버튼 클릭 후 API 키 발급 및 도커인증 명령어 생성)
            - docker login nvcr.io ( 도커 NGC 로그인 명령어 ) 아래 내용 입력 후 login
              Username: $oauthtoken
              Password: <Your Key>
      (12) PyTorch 컨테이너 pull
            - nvcr.io/nvidia/pytorch:23.02-py3 ( docker에서 PyTorch 컨테이너 pull 받아오는 명령어 )
      (13) PyTorch 컨테이너 실행
            - docker run --gpus all -it --rm nvcr.io/nvidia/pytorch:23.02-py3 ( gpus all 이라는 명령어를 통해 cpu대신 gpu를 사용한 컨테이너 실행 )
      (14) PyTorch 컨테이너 내부에서 설치 확인
            - python -c "import torch; print(torch.__version__)" ( PyTorch 버전 확인 )
            - python -c "import torch; print(torch.cuda.is_available()) ( CUDA GPU 사용할 수 있는지 확인 TRUE 나오면 가능)