BLOG

AWS Deep Learning AMI는 이제 Amazon EC2 인스턴스 딥 러닝을 가속화하기 위해 최적화된 TensorFlow 1.9 및 Keras 2용 Apache MXNet 1.2를 지원합니다.
작성일: 2018년 8월 10일

UbuntuAmazon LinuxAWS Deep Learning AMI에는 이제 소스에서 직접 사용자 정의로 제작된 최적화된 TensorFlow 1.9의 빌드와 Amazon EC2 인스턴스 전반에 걸쳐 미세하게 조정된 고성능 훈련이 제공됩니다. 또한 AMI에는 최신 성능의 성능 및 사용 편의성이 향상된 Apache MXNet 1.2와 고성능 멀티-GPU 훈련을 지원하는 새로운 Keras 2-MXNet 백엔드 및 MXNet 모델 훈련을 위한 향상된 디버깅 및 시각화를 위한 새로운 MXBoard 툴이 포함되어 있습니다.

 

최적화된 TensorFlow 1.9 및 Horovod를 통한 신속한 훈련

Amazon Machine Image (AMI)에는 이제 Amazon EC2 C5 인스턴스를 지원하는 Intel Xeon Platinum 프로세서의 훈련 성능을 가속화하기 위해 소스에서 직접 사용자 정의한 TensorFlow 1.9의 컴퓨팅 최적화 빌드가 제공됩니다. C5.18xlarge 인스턴스 유형의 TensorFlow 1.9 사용자 정의 빌드를 사용하여 합성 ImageNet 데이터셋으로 ResNet-50 벤치 마크를 훈련하는 것은 stock TensorFlow 1.9 바이너리 훈련보다 7 배 빠릅니다. 또한 AMI에는 Amazon EC2 P3 인스턴스를 구동하는 Volta V100 GPU에서 혼합 정밀 훈련을 활용할 수 있도록 NVIDIA CUDA 9 및 cuDNN 7로 구성된 TensorFlow 1.9의 GPU 최적화 빌드가 제공됩니다. 딥 러닝 AMI는 TensorFlow 가상 환경을 처음 활성화 할 때 선택한 EC2 인스턴스에 최적화된  TensorFlow의 고성능 빌드를 자동으로 배포합니다.

단일 GPU에서 여러 GPU로 TensorFlow 훈련을 확장하려는 개발자를 위해 AWS Deep Learning AMI에는 Horovod가 제공되며, Amazon EC2 P3 인스턴스로 구성된 분산 교육 클러스터 토폴로지를 효율적으로 활용할 수 있도록 최적화되어 있습니다. Horovod는 MPI (Message Passing Interface) 모델을 기반으로하는 오픈 소스 분산 교육 프레임 워크입니다. 이는 고성능 분산 컴퓨팅 환경에서 노드 간 메시지 전달 및 통신 관리에 널리 사용되는 표준입니다. AWS Deep Learning AMI의 Horovod를 최적화하기 위해 MPI 순위 배치 패턴을 미세 조정하여 각 물리적 CPU 소켓을 해당 GPU에 가장 가까운 Amazon EC2 P3 클러스터에 배치하여 잦은 I / O 및 메모리 복사 작업으로 인한 오버 헤드를 최소화했습니다. 또한 분산형 훈련 과정에서 개별 노드에서 생성된 텐서를 결합하는 데 사용되는 전체 감소 작업을 최적화했습니다. 우리는 일군의 텐서를 함께 줄이기 위해 사용되는 메모리 버퍼의 크기를 제어하는 ​​퓨전 임계 값 매개 변수를 미세 조정했습니다. 버퍼 크기가 작으면 하나의 배치에서 결합할 수 있는 축소 작업 수가 제한되지만 큰 버퍼 크기로 인해 추가 대기 시간이 생길 수 있습니다. AWS Deep Learning AMI에서 EC2 P3에 최적화 된 Horovod를 사용하여 Amazon EC2 P3.16xlarge 인스턴스 8 개 (64 Volta V100 GPU)의 클러스터에서 ImageNet 데이터셋으로 ResNet-50 네트워크를 훈련하는 ResNet-50 분산 훈련 스크립트를 실행할 수 있습니다.

 

Apache MXNet 1.2를 통한 향상된 성능 및 상호운용성

Deep Learning AMI에는 이제 Apache MXNet 1.2 최신 버전이 함께 제공되어 사용이 쉽고 성능의 향상 및 상호 운용성 또한 증가되었습니다. MXNet 1.2에는 새로운 스칼라 기반 추론 API가 추가되어 MXNet으로 훈련된 딥 러닝 모델로 예측을 수행하기 위한 스레드 안정성이 좋은 API를 제공합니다. MXNet 1.2의 새로운 인텔 MKL-DNN 통합은 컴퓨팅에 최적화된 C5 인스턴스에서 컨볼루션 (convolution), 디콘볼루션 (deconvolution) 및 풀링(pooling)과 같은 신경망 오퍼레이터(operator)를 가속화합니다. 향상된 FP16 지원은 Amazon EC2 P3 인스턴스를 지원하는 NVIDIA Volta V100 GPU의 Tensor 코어에서 혼합된 정밀 훈련을 가속화합니다. 또한 MXNet 1.2에는 이제 ONNX 모델을 MXNet 심볼 인터페이스로 쉽게 가져올 수 있는 새로운 Open Neural Network Exchange Format (ONNX) 모듈이 함께 제공됩니다.

 

Keras 2용 MXNet 백엔드를 사용한 고성능 멀티 GPU 교육

Deep Learning AMI에는 새로운 Keras-MXNet 딥 러닝 백엔드가 미리 설치되어 있습니다. Keras는 파이썬으로 작성된 고급 신경 네트워크 API로, CNN (convolutional neural networks) 및 RNN (recurrent neural networks)의 빠르고 쉬운 프로토타입에 널리 사용됩니다. Keras 개발자는 이제 CNN 및 RNN의 분산 훈련을 위한 백엔드로 고성능 MXNet 딥 학습 엔진을 사용할 수 있습니다. 개발자는 Keras에서 설계하고, Keras-MXNet을 사용하여 교육을 수행하고, MXNet을 통해 대량 생산 방식으로 추론할 수 있습니다.

Keras MXNet 벤치마크를 사용하면 여러 GPU에서 더 빠른 훈련과 효율적인 확장을 테스트 할 수 있습니다. p3.16xlarge EC2 인스턴스에서 ImageNet 데이터셋으로 ResNet50 네트워크를 교육하면 1GPU에서 8GPU로 거의 선형적으로 처리량이 조정되는 것으로 나타났습니다. Keras2-MXNet을 시작하려면 단계별 가이드를 따르십시오.

 

MXBoard를 통한 개선된 디버깅 지원

이제 AMI에는 TensorBoard의 시각화를 위해 MXNet 데이터 로깅을 위한 API를 제공하는 Python 패키지인 MXBoard가 사전설치 되어있습니다. MXBoard를 사용하면 개발자는 히스토그램, 컨벌루션 필터 (convolutional filter) 등 다양한 시각화를 지원하여 MXNet 모델 교육을 쉽게 디버깅하고 시각화 할 수 있습니다. MXBoard를 시작하려면 단계별 가이드를 따르십시오.

 

Deep Learning AMI 시작하기

초기 자습서를 사용하여 AWS Deep Learning AMI를 빠르게 시작할 수 있으며 자습서, 리소스 및 릴리스 노트에 대한 자세한 내용은 개발자 안내서를 참조하세요. AWS 마켓플레이스에서 최신 AMI를 사용할 수 있으며 또한 토론 포럼에 가입하여 새로운 출시관련 정보를 받고 질문을 게시 할 수 있습니다.

 

원문 URL: https://aws.amazon.com/ko/blogs/machine-learning/aws-deep-learning-amis-now-with-optimized-tensorflow-1-9-and-apache-mxnet-1-2-with-keras-2-support-to-accelerate-deep-learning-on-amazon-ec2-instances/

** 메가존 TechBlog는 AWS BLOG 영문 게재글중에서 한국 사용자들에게 유용한 정보 및 콘텐츠를 우선적으로 번역하여 내부 엔지니어 검수를 받아서, 정기적으로 게재하고 있습니다. 추가로 번역및 게재를 희망하는 글에 대해서 관리자에게 메일 또는 SNS페이지에 댓글을 남겨주시면, 우선적으로 번역해서 전달해드리도록 하겠습니다.