AWS vs Azure: GPU в облаке
Погружение
Существует довольное большое количество задач, где вычисления на процессорах графических карт ведет к значительному сокращению как времени вычислений, так и финансовых затрат, необходимых для построения и поддержания соответствующей аппаратной инфраструктуры.
Как правило, это compute-intensive задачи, оперирующие большим объемом данных. Одним из наиболее перспективных направлений применения GPU-вычислений являются задачи машинного обучения, в общем, и задачи, относящиеся к классу deep learning, в частности. Но приобретение/владение сервером с высокопроизводительной графической картой – мероприятие не из самых дешевых. И тут облачные провайдеры пришли на помощь стартапам, частным исследователям и просто энтузиастам.
Пионером в GPU-on-demand была Amazon: компания анонсировала доступность в облаке AWS виртуальных машин с GPU еще в 2010 году. А совсем недавно в Microsoft Azure также появилась возможность получить VM c возможностью вычисления на высокопроизводительных графических процессорах NVidia.
1. GPU in Azure
В начале августа 2016 года было объявлено о начале закрытого тестирования (private preview) инстансов виртуальных машин, оборудованных картами NVidia Tesla [1]. Эта возможность предоставляется в рамках сервиса Azure VM – IaaS-сервис предоставляющий виртуальные машины по требованию (аналог Amazon EC2).
C точки зрения доступа приложения к графическому процессора архитектура сервиса выглядит так:

Расчеты на 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. Цены
На сентябрь 2016 года цены на N-Series Azure VM выглядят следующим образом:

Но пусть Ваше любопытство эти 4-ехзначные числа не уменьшают: как всегда, в облаке мы платим за использование ресурсов.
Для IaaS-сервисов, каковым сервис Azure 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 в Azure 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 | Memory, 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) инстансы в Azure 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 |
Заключение
Возможность проводить вычисления на GPU давно одна из самых ожидаемых возможностей платформы Azure. Текущий preview-статус этой возможности –
большой минус совершенно обычный этап в жизненном цикле большинства облачных сервисов (я отношусь как к возможности использовать пораньше и подешевле, чем остальные).
Это же изменение дает надежду на другую ожидаемую фичу уже в сервисе Azure Machine Learning – поддержку алгоритмов из семейства deep learning (поддержка нейросетей в Azure ML есть, но поддержка сверточных алгоритмов отсутствует).
Вообще Microsoft буквально за год-два очень серьезно обросла различными AI-технологиями/сервисами/фреймворками/инструментами, и, в том числе (может - в первую очередь), для разработчиков и data scientist’ов. Насколько это все серьезно и удобно можно оценить самому, посмотрев записи с прошедшего в последние дня сентября 2-ух дневного Microsoft ML & DS Summit [6].
По итогам этого саммита московская Cloud + Data User Group соберется на теплый ламповый митап: послушать пару докладов, обсудить вкусные анонсы саммита, поделиться опытом и просто приятно пообщаться, попить халявного кофе с печеньем. В ближайшее время опубликуем программу встречи, регистрация уже доступна.
В следующей части мы перейдем к практической части упражнений на GPU инстансах в Azure.
References
- [1] NVIDIA GPUs in Azure: регистрация в preview-программе.
- [2] Leveraging NVIDIA GPUs in Azure. Вебкаст на Channel 9.
- [3] Linux GPU Instances: документация.
- [4] Анонс P2-инстансов в AWS, 29 сентября 2016.
- [5] Цены на Azure Virtual Machines (в т.ч. Azure VM GPU).
- [6] Конференция Microsoft Machine Learning & Data Science Summit.
Комментариев нет:
Отправить комментарий