딥러닝 개발을 위한 Docker 설정
NVIDIA NGC (NVIDIA GPU Cloud)는 NVIDIA에서 제공하는 클라우드 기반 소프트웨어 허브다. 이 플랫폼은 머신 러닝, 딥 러닝, 데이터 과학, HPC(고성능 컴퓨팅) 애플리케이션을 가속화하기 위해 최적화된 AI 소프트웨어 및 HPC 애플리케이션의 광범위한 카탈로그를 제공한다. NGC의 주요 특징은 다음과 같다:
NGC의 핵심 요소
- 컨테이너: NGC는 다양한 AI 및 HPC 애플리케이션을 위한 사전 구성 및 최적화된 컨테이너를 제공한다. 이 컨테이너들은 NVIDIA GPU를 활용해 최적의 성능을 발휘하도록 설계되었다.
- 모델 스크립트 및 예제: 사용자가 빠르게 시작할 수 있도록 다양한 딥 러닝 모델 및 스크립트를 제공한다. 이러한 예제는 사용자가 자신의 데이터셋에 적용하여 학습을 가속화할 수 있도록 도와준다.
- 헬리콥터 카탈로그: NGC는 AI, 데이터 과학, HPC 작업을 위한 다양한 소프트웨어 및 애플리케이션을 포함하고 있다. 이들은 NVIDIA의 최신 GPU 아키텍처에 최적화되어 있다.
NGC의 주요 이점
- 생산성 향상: NGC를 사용하면 복잡한 소프트웨어 스택 설정 및 구성에 드는 시간과 노력을 줄일 수 있다. 사전 구성된 컨테이너와 최적화된 환경 덕분에 개발자와 데이터 과학자는 빠르게 작업을 시작하고 집중할 수 있다.
- 확장성: 클라우드, 온프레미스, 엣지 환경 등 다양한 환경에서 NGC 컨테이너를 사용할 수 있다. 이는 작업 환경에 관계없이 일관된 성능과 경험을 제공한다.
- 최신 기술 접근: NVIDIA는 지속적으로 NGC 컨테이너와 소프트웨어를 업데이트하며 최신 GPU 기술을 지원한다. 이를 통해 사용자는 최신 AI 및 HPC 기술을 쉽게 활용할 수 있다.
사용 사례
- 딥 러닝 및 머신 러닝: 데이터 과학자와 연구원은 NGC를 활용해 복잡한 딥 러닝 모델을 빠르게 훈련시키고 배포할 수 있다.
- 고성능 컴퓨팅: 과학자와 엔지니어는 HPC 애플리케이션을 위한 최적화된 환경에서 복잡한 시뮬레이션과 계산 작업을 수행할 수 있다.
사용 예시
1. Running PyTorch Using Docker
해당 튜토리얼에서는 python 3.8 버전을 기준으로 pytorch 이미지를 가져온다.
Docker 버전이 19.03 이상일 경우
$ docker run --gpus all -it --rm nvcr.io/nvidia/pytorch:22.03-py3
Docker 버전이 19.03 아래 버전일 경우
$ nvidia-docker run -it --rm nvcr.io/nvidia/pytorch:22.03-py3
이미 image가 있는 경우 환경이 바로 실행되고, 없는 경우 image를 pull 한 다음 실행된다.
nvidia-smi
와 torch.cuda.is_available
실행되면 현재 gpu와 맞는 버전을 설치한 것.
(Local에서 바로 테스트하는 것 보다 사용할 환경에서 버전을 맞추는 것이 더 좋음)
$ python
>>> import torch
>>> print(torch.cuda.is_available())
True
해당 환경에서 pytorch를 실행하다가 memory 오류가 나면 --ipc=host
인자를 추가해주면 된다.
2. 추가 라이브러리 설치
해당 환경을 기준으로 필요한 여러 라이브러리를 설치
$ pip install opencv-python timm
3. Docker 이미지 파일 저장
Docker 이미지 파일을 저장하려면 docker 이미지를 실행할 때 아래 명령어로 실행해야한다.
$ docker run --gpus all -it --name "Docker Name" nvcr.io/nvidia/pytorch:22.03-py3
이후에 추가 라이브러리 설치 후 exit
docker ps -a
: 모든 컨테이너를 출력
$ docker ps -a
CONTAINER ID IMAGE COMMAND ... NAMES
"Docker Name"
Docker 이미지 커밋 및 .tar
로 저장
$ docker commit "Docker Name" "Name:Tag"
$ docker save -o "파일명.tar" "Name:Tag"
'Programming > Docker' 카테고리의 다른 글
Docker 이미지 공유하기 (1) | 2024.10.01 |
---|---|
Docker 이미지 만들기 (3) | 2024.09.30 |
Docker 설치 및 사용법 (1) | 2024.09.20 |
Docker란? (0) | 2024.09.04 |