Nvidia GPU Cloud 사용법 NGC(Nvidia GPU Cloud) 사용법에 대해 설명드립니다. NGC에서는 AI, 머신 러닝 및 고성능 컴퓨팅용 컨테이너를 제공하고 있으며, 모델과 시각화(Visualization) 등의 소프트웨어 등을 제공하고 있습니다. 클라우드 GPU 서버에서 NGC 컨테이너를 다운 받아 실행해 보도록 하겠습니다.


NGC 소개
NGC(Nvidia GPU Cloud) NVIDIA에서 제공하는 GPU 소프트웨어 패키지 플랫폼입니다. NVIDIA GPU를 사용하고 있는 연구자, 데이터 분석가, 개발자등을 대상으로 편리하게 컨테이너와 소프트웨어, 모델 등을 사용할 수 있도록 합니다.
NGC 컨테이너 레지스트리의 컨테이너는 NVIDIA GPU에 최적화되었으며, 상위 클라우드 제공업체의 NVIDIA GPU, NVIDIA DGX™ 시스템, NGC Ready 시스템, 일부 NVIDIA TITAN 및 NVIDIA Quadro® GPU를 포함하는 PC 및 워크스테이션을 비롯한 다양한 NVIDIA GPU 플랫폼에서 작동합니다.
NGC 실행 환경
Nvidia GPU Cloud 에서 제공하는 컨테이너를 실행하는 예제로, NGC 플랫폼 사용방법에 대해서 설명드립니다. 우분투 기반 운영체제에서 Nvidia GPU를 사용 할 수 있는 드라이버가 설치되어 있는 환경입니다. 그리고 nvidia-docker가 설치된 환경입니다. nvidia-docker가 설치되지 않았을 경우, 아래의 글을 참고해서 환경을 준비해 주시기 바랍니다.
NGC 계정 생성 및 인증
컨테이너 이미지를 다운 받기 위해서는, 먼저 NGC 게정이 있어야 하고 인증이 이뤄져야합니다. 먼저 아래의 페이지 방문후 [Create an Account] 버튼을 클릭하여, NGC 계정을 생성합니다.

생성된 계정으로 로그인 한 뒤에 아래의 페이지에 방문합니다.
https://ngc.nvidia.com/setup/api-key
상단의 [Generate API Key] 버튼을 클릭하면, 아래와 같이 API 키와 함께 docker 인증 명령어가 생성됩니다.

생성된 docker 명령어를 이용하여 아래와 같이 인증합니다.
$ docker login nvcr.io
Username: $oauthtoken
Password:
WARNING! Your password will be stored unencrypted in /home/ubuntu/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store
Login Succeeded
Password는 위에서 생성된 Key 값을 입력하면 되는데, 복사하여 붙여넣기 하면 됩니다. 붙여넣어도 내용은 입력되지 않는 것처럼 보일 수 있습니다. 인증이 성공적으로 이뤄지게 되면 위와 같은 메세지가 나타납니다.
만약 NGC 인증을 하지 않았을 경우, 컨테이너 이미지를 다운 받다가 아래와 같은 인증을 요구하는 메세지가 발생 할 수 있습니다.

필요할 경우 NGC CLI 등을 설치하셔서 사용하셔도 됩니다.
NGC 컨테이너 다운로드
아래의 페이지에 접속하시면 docker 컨테이너 및 모델등을 사용하실 수 있습니다.
https://ngc.nvidia.com/catalog/landing
다음 페이지에서 tensorflow GPU 버전의 컨테이너를 받아 보도록 하겠습니다.
https://ngc.nvidia.com/catalog/containers/nvidia:tensorflow
$ docker pull nvcr.io/nvidia/tensorflow:19.05-py2
19.05-py2: Pulling from nvidia/tensorflow
Digest: sha256:29276aaf4e91de81bf7475006adb9ab0354a439e33de03173c7d451d426f7e67
Status: Image is up to date for nvcr.io/nvidia/tensorflow:19.05-py2
다운로드 받은 이미지로 docker 컨터이너를 실행한 결과입니다.
$ nvidia-docker run -it --rm nvcr.io/nvidia/tensorflow:19.05-py2 python -c 'import tensorflow as tf; print(tf.__version__);'
1.13.1
NGC 에서 제공되는 docker 컨테이너 이미지 등은 NVIDIA GPU 에서 최적화된 이미지로 편리하게 NVIDIA 에서 제공되는 기술들을 활용 할 수 있습니다.
( 본문 인용시 출처를 밝혀 주시면 감사하겠습니다.)