Amazon Web Services 한국 블로그

Amazon EC2 신규 GPU 인스턴스 타입 – P2 (16 GPU 지원)

컴퓨팅 하드웨어가 계속 발전하는 동안 CPU 연산 속도는 기하 급수적으로 증가하였습니다. 최근에 GPU (Graphics Processing Unit) 프로세스는 CPU 연산을 병렬적으로 처리하게 해줌으로서 기존 CPU의 병목을 줄여주는 핵심 하드웨어 장치가 되었습니다. 이를 통해 더 빠른 프로세스를 만들기 보다는 더 많은 병렬 컴퓨팅을 처리하게 되었습니다.

저희는 최근 많이 활용 요구가 높은 기계 학습 및 딥러닝(Deep Learning) 및 유체 역학 컴퓨팅 연산, 지진파 분석, 분자 모델링, 유전학 및 금융 분석 등 대량 컴퓨팅 연산에 도움이 될 P2 인스턴스 타입을 오늘 출시하게 되었습니다.

신규 P2 인스턴스 타입
신규 인스턴스 타입은 8 NVIDIA Tesla K80 Accelerators (각각 2개의 NVIDIA GK210 GPU)을 지원합니다. 각 GPU는 12GB 메모리를 가지고 있으며 (초당 240GB 메모리 대역폭 제공) 2,496개의 병렬 코어를 지원합니다. 또한, 더블 비트 오류를 검출해서 싱글 비트 오류를 고치는 ECC 메모리 보호 기능을 지원합니다. ECC 메모리 보호 가능 및 이중 플로팅 포인트 기능을 통해 위의 다양한 요구 사항을 수용할 수 있습니다.

아래는 오늘 출시한 인스턴스 타입 스펙입니다.

Instance Name GPU Count vCPU Count Memory Parallel Processing Cores
GPU Memory
Network Performance
p2.xlarge 1 4 61 GiB 2,496 12 GB High
p2.8xlarge 8 32 488 GiB 19,968 96 GB 10 Gigabit
p2.16xlarge 16 64 732 GiB 39,936 192 GB 20 Gigabit

모든 인스턴트 타입은 AWS에 제공하는 Intel Broadwell 2.7 GHz프로세스로서, p2.16xlarge는 C-states 및 P-states를 지원하며, 하나 또는 2개 코어를 제공할 때는 3.0 GHz까지 올릴 수 있습니다.

본 인스턴스의 GPU는 CUDA 7.5 이상, OpenCL 1.2 및 GPU Compute API를 지원합니다.  p2.8xlargep2.16xlarge 의 GPU는 PCI 파브릭으로 접속하고, 낮은 지연 속도와 피어간 GPU 및 GPU 전송을 지원합니다.

모든 인스턴스 타입은 Elastic Network Adapter (고성능 Amazon EC2 네트워크 어댑터)을 위의 표에 따라 지원하고, 최대 20 Gbps 네트워크 대역폭도 지원합니다.

P2  인스턴스는 VPC만 지원하며,  64-bit, HVM-스타일, EBS-지원 AMI에서 구동됩니다. 오늘 부터 US East (Northern Virginia), US West (Oregon)Europe (Ireland) 리전에서 온디멘드, 스팟 인스턴스, 예약 인스턴스 및 전용 호스팅(Dedicated Host)으로 사용할 수 있습니다.

아래는 어떻게 NVIDIA 드라이버 및  CUDA 툴킷을 설치하는 지 과정입니다. 먼저, 인스턴스를 띄운 후에 EBS 볼륨을 마운트 하고, 여기에 CUDA 및 관련 샘플을 설치합니다. (10GiB 이상 저장 공간 필요)

Bash
$ cd /ebs
$ sudo yum update -y
$ sudo yum groupinstall -y "Development tools"
$ sudo yum install -y kernel-devel-`uname -r`
$ wget http://us.download.nvidia.com/XFree86/Linux-x86_64/352.99/NVIDIA-Linux-x86_64-352.99.run
$ wget http://developer.download.nvidia.com/compute/cuda/7.5/Prod/local_installers/cuda_7.5.18_linux.run
$ chmod +x NVIDIA-Linux-x86_64-352.99.run
$ sudo ./NVIDIA-Linux-x86_64-352.99.run
$ chmod +x cuda_7.5.18_linux.run
$ sudo ./cuda_7.5.18_linux.run   # Don't install driver, just install CUDA and sample
$ sudo nvidia-smi -pm 1
$ sudo nvidia-smi -acp 0
$ sudo nvidia-smi --auto-boost-permission=0
$ sudo nvidia-smi -ac 2505,875

여기서 NVIDIA-Linux-x86_64-352.99.runcuda_7.5.18_linux.run 는 대화형 설치 프로그램으로서, 라이선스 동의 및 몇 가지 옵션과 경로를 설정합니다. 아래는 cuda_7.5.18_linux.run:를 통해 CUDA를 설치하는 과정입니다.

P2 및 OpenCL 실제 해보기
p2.8xlarge 인스턴스에서 Gist 를 받아서 컴파일을 할 수 있습니다.

Bash
[ec2-user@ip-10-0-0-242 ~]$ gcc test.c -I /usr/local/cuda/include/ -L /usr/local/cuda-7.5/lib64/ -lOpenCL -o test

테스트 실행 결과는 다음과 같습니다.

Bash
[ec2-user@ip-10-0-0-242 ~]$ ./test
1. Device: Tesla K80
 1.1 Hardware version: OpenCL 1.2 CUDA
 1.2 Software version: 352.99
 1.3 OpenCL C version: OpenCL C 1.2
 1.4 Parallel compute units: 13
2. Device: Tesla K80
 2.1 Hardware version: OpenCL 1.2 CUDA
 2.2 Software version: 352.99
 2.3 OpenCL C version: OpenCL C 1.2
 2.4 Parallel compute units: 13
3. Device: Tesla K80
 3.1 Hardware version: OpenCL 1.2 CUDA
 3.2 Software version: 352.99
 3.3 OpenCL C version: OpenCL C 1.2
 3.4 Parallel compute units: 13
4. Device: Tesla K80
 4.1 Hardware version: OpenCL 1.2 CUDA
 4.2 Software version: 352.99
 4.3 OpenCL C version: OpenCL C 1.2
 4.4 Parallel compute units: 13
5. Device: Tesla K80
 5.1 Hardware version: OpenCL 1.2 CUDA
 5.2 Software version: 352.99
 5.3 OpenCL C version: OpenCL C 1.2
 5.4 Parallel compute units: 13
6. Device: Tesla K80
 6.1 Hardware version: OpenCL 1.2 CUDA
 6.2 Software version: 352.99
 6.3 OpenCL C version: OpenCL C 1.2
 6.4 Parallel compute units: 13
7. Device: Tesla K80
 7.1 Hardware version: OpenCL 1.2 CUDA
 7.2 Software version: 352.99
 7.3 OpenCL C version: OpenCL C 1.2
 7.4 Parallel compute units: 13
8. Device: Tesla K80
 8.1 Hardware version: OpenCL 1.2 CUDA
 8.2 Software version: 352.99
 8.3 OpenCL C version: OpenCL C 1.2
 8.4 Parallel compute units: 13

보시다시피 정말 많은 용량의 컴퓨팅 리소스를 얻을 수 있습니다.

신규 Deep Learning AMI 제공
앞서 말씀 드린 대로, P2 인스턴스 타입은 기계 학습 및 딥러닝, 분자 모델링, 게놈 분석, 금융 데이터 분석 등의 요구 사항에 맞도록 설계되었습니다. 이를 위해 Deep Learning AMI 도 함께 제공합니다. 딥 러닝을 통해 더 많은 예측을 계산할 수 있습니다.

신규 AMI는 인기 높은 MNIST 데이터 베이스에서 추천하는 MXNet –  Caffe –  Theano –  TensorFlow –  Torch 등의 라이브러리를 기본적으로 설치 되어있습니다.

좀 더 자세한 사항은  ~ec2-user/src 내 README 파일을 참고하시기 바랍니다.

NVIDIA 지원 AMI
NVIDIA가 제공하는 아래 AMI도 참고하실 수 있습니다.

Jeff;

이 글은 New P2 Instance Type for Amazon EC2 – Up to 16 GPUs의 한국어 편집 및 요약본입니다.