GPU в хмарах

Потрібно побудувати більше GPU


Deep Learning – одне з найбільш інтенсивно розвиваються напрямків в області машинного навчання.

Успіхи досліджень в області глибокого (глибинного) навчання викликають за собою зростання кількості ML/DL-фреймворків (в т. ч. і від Google, Microsoft, Facebook), имплементирующих дані алгоритми. Через все зростаючу обчислювальною складністю DL-алгоритмів, і, як наслідок, збільшується складністю DL-фреймворків вже давно не викрадаються апаратні потужності ні настільних, ні навіть серверних CPUs.

Вихід знайшли, і він простий (здається таким) – використовувати для такого типу compute-intensive-завдань розрахунки на GPU/FPGA. Але і тут проблема: можна, звичайно, для цих цілей використовувати відеокарту улюбленого ноутбука, але який українська data scientist не любить швидкої їзди NVidia Tesla?

Підходів до володіння високопродуктивними GPU мінімум два: купити (on-premises) і орендувати (on-demand). Як накопичити і купити – тема цієї статті. У цій — ми розглянемо, які пропозиції є по оренді инстансов VM c високопродуктивними GPU у провайдерів хмарних Amazon Web Service і Windows Azure.


1. GPU in Azure
На початку серпня 2016 року було оголошено про початок закритого тестування (private preview) инстансов віртуальних машин, обладнаних картами NVidia Tesla [1]. Ця можливість надається у рамках сервісу Azure VMIaaS-сервіс надає віртуальні машини на вимогу (аналог Amazon EC2).

з точки зору доступу додатки до графічного процесора архітектура сервісу виглядає так:

Microsoft VM GPU Instances Architecture

Розрахунки на GPU доступні на віртуальних машинах серії N, які, в свою чергу, діляться на 2 категорії:
  • NC Series (computer-focused): GPU, націлені на обчислення;
  • NV Series (visualization-focused): GPU, націлені на графічні розрахунки.

1.1. NC Series VMs
Графічні процесори, призначені для compute-intensive навантаження з використання CUDA/OpenCL. Графічними платами для них служать NVidia Tesla K80: 4992 ядра CUDA, >2.91/8.93 Tflops c подвійний/одинарною точністю). Доступ до карт здійснюється з використанням технології DDA (discrete device assignment), яка наближає продуктивність GPU при використанні через VM до bare metal-продуктивності карти.

Як нескладно здогадатися, VM серії NC призначені для ML/DL-завдань.

У Azure доступні наступні конфігурації VM, обладнаних Tesla K80.





  NC6
NC12
NC24
Cores
6 (E5-2690v3)
12 (E5-2690v3)
24 (E5-2690v3)
GPU
1 x K80 GPU (1/2 Physical Card)
2 x K80 GPU (1 Physical Card)
4 x K80 GPU (2 Physical Cards)
Memory
56 GB
112 GB
224 GB
Disk
380 GB SSD
680 GB SSD
1.44 TB SSD
1.2. NV Series VMs
Віртуальні машини серії NV призначені для візуалізації. На даних VM стоять GPU Tesla M60 (4086 CUDA ядер, 36 потоків за 1080p H. 264). Ці карти підійдуть для задач (де)кодування, візуалізації, 3D-моделювання.

Заявлено про доступність примірників VM з наступними конфігураціями:





  NV6
NV12
NV24
Cores
6 (E5-2690v3)
12 (E5-2690v3)
24 (E5-2690v3)
GPU
1 x M60 GPU (1/2 Physical Card)
2 x M60 GPU (1 Physical Card)
4 x M60 GPU (2 Physical Cards)
Memory
56 GB
112 GB
224 GB
Disk
380 GB SSD
680 GB SSD
1.44 TB SSD
1.3. Ціни
Ціни на N-Series Azure VM виглядають наступним чином (жовтень 2016) [5]:

azurevm gpu instances prices

Але нехай Вашу цікавість ці 4-ехзначные числа не зменшують: як завжди, в хмарі ми платимо за використання ресурсів. Для IaaS-сервісів, яким сервіс Microsoft VM є, це варто розуміти, як погодинна тарифікація. Крім того, в Microsoft Azure є багато способів отримати золото обчислювальні ресурси абсолютно безкоштовно.

Це поширюється на нові облікові записи в Azure, на студентів, на стартапи, якщо ви шукаєте ліки від раку дослідник, або якщо Ви/компанія, в якій Ви працюєте, володар MSDN-підписки.

2. Amazon EC2 GPU Instances (+небезпечне порівняння)
Хмарний провайдер Amazon Web Services (AWS) почав надавати инстансы VM з графічними процесорами ще в 2010 році.

Ще на початку вересня (2016) GPU-инстансы AWS були представлені тільки сімейством G2.

Технічні подробиці про сімейство инстансов G2Конфігурації віртуальних машин сімейства G2:




Model GPUs vCPU Mem (GiB) SSD Storage (GB) Price, per hour/month g2.2xlarge 1 8 15 1 x 60 0.65/468 g2.8xlarge 4 32 60 2 x 120 2.6/1872
Инстансы G2 комплектуються графічними процесорами NVidia GRID K520 з 1556 CUDA-ядрами, підтримкою 4-ох відеопотоків 1080p H. 264. Заявлено про підтримку CUDA/OpenCL. Також є підтримка технології HVM (hardware virtual machine), яка за аналогією з DDA в Microsoft VM, мінімізує витрати, пов'язані з віртуалізацією, дозволяючи на гостьовий VM отримувати продуктивність GPU, близьку до bare metal-продуктивності.

Поки я писав статтю буквально місяць тому (кінець вересня 2016) AWS анонсували P2-инстансы, що містять більш сучасні графічні карти.

Инстансы сімейство P2 можуть включати в себе до 8-ми карт NVIDIA Tesla K80. Заявлено про підтримку CUDA 7.5, OpenCL 1.2. Инстансы p2.8xlarge і p2.16xlarge підтримують високошвидкісний GPU-to-GPU з'єднання, а для локальної мережі доступне з'єднання до 20 Gbps за технологією ENA (Elastic Network Adapter – високошвидкісний мережевий інтерфейс для Amazon EC2).





Instance Name GPU Cores vCPU Cores Пам'ять, Gb CUDA Cores GPU Memory Network, Gbps p2.xlarge 1 4 61 2496 12 High p2.8xlarge 8 32 488 19968 96 10 p2.16xlarge 16 64 732 39936 192 20
Для порівняння візьмемо самий продуктивний (NC24) і самий бюджетний (NC6) инстансы в Microsoft VM і, найближчі по продуктивності до ажуровским, инстансы в Amazon EC2.






Instance Family GPU Model GPU Cores vCPU Core RAM, Gb Network, Gbps CUDA/OpenCL Status Price, $/mo Price, $ per GPU/mo Amazon p2.xlarge K80 1 4 61 High 7.5/1.2 GA 306 306 Azure NC6 K80 1 6 56 10 (?) +/+ Private preview 461 461 Amazon p2.8xlarge K80 8 32 488 10 7.5/1.2 GA 2448 306 Azure NC24 K80 8 24 224 10 (?) +/+ Private preview 1882 235
Висновок
AWS довго «мучили» data-science-співтовариство досить слабенькі і разом з тим дорогими GPU-инстансами сімейства G2. Але конкуренція на ринку хмарних провайдерів зробила свою справу – місяць тому з'явилися GPU-инстансы сімейства P2, і виглядають вони дуже гідно.

Microsoft Azure також довго мучили коммьюніті взагалі відсутністю GPU-инстансов (ця була одна з найбільш очікуваних можливостей платформи Azure). На поточний момент GPU-инстансы в Azure виглядають досить непогано, хоча і не дістає технічних подробиць. Рreview-статус цієї можливості – великий мінус звичайний етап в життєвому циклі більшості хмарних сервісів.

Взагалі Microsoft буквально за рік-два серйозно обросла різними AI-технологіями / фреймворками/ інструментами, і в тому числі (може — в першу чергу) для розробників і data scientist'ів. Наскільки це все серйозно і зручно можна оцінити самостійно, переглянувши записи з минулого в кінці вересня Microsoft ML & DS Summit [6].

Крім того, рівно через тиждень – 1 листопада – відбудеться конференція Microsoft DevCon School, один з треків якої повністю присвячений машинного навчання. І розповідати там будуть не виключно про власні технології MS, а про звичні і «вільні» Python, R, Apache Spark.

Список джерел
  1. NVIDIA GPUs in Online: реєстрація в preview-програмі.
  2. Leveraging NVIDIA GPUs in Online. Вебкаст на Channel 9.
  3. Linux GPU Instances документація.
  4. Анонс P2-инстансов в AWS, 29 вересня 2016.
  5. Ціни на Microsoft Virtual Machines (в т. ч. Azure VM GPU).
  6. Конференція Microsoft Machine Learning & Data Science Summit.


Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.