Как создать azure с видеокартой
Я знаю многих Data Scientist-ов — да и пожалуй сам к ним отношусь — которые работают на машинах с GPU, локальных или виртуальных, расположенных в облаке, либо через Jupyter Notebook, либо через какую-то среду разработки Python. Работая в течение 2 лет экспертом-разработчиком по AI/ML я делал именно так, при этом подготавливал данные на обычном сервере или рабочей станции, а запускал обучение на виртуалке с GPU в Azure.
Конечно, мы все слышали про Azure Machine Learning — специальную облачную платформу для машинного обучения. Однако после первого же взгляда на вводные статьи, создаётся впечатление, что Azure ML создаст вам больше проблем, чем решит. Например, в упомянутом выше обучающем примере обучение на Azure ML запускается из Jupyter Notebook, при этом сам обучающий скрипт предлагается создавать и редактировать как текстовый файл в одной из ячеек — при этом не используя автодополнение, подсветку синтаксиса и другие преимущества нормальной среды разработки. По этой причине мы долгое время всерьез не использовали Azure ML в своей работе.
Однако недавно я обнаружил способ, как начать эффективно использовать Azure ML в своей работе! Интересны подробности?
При этом вы получаете следующие преимущества от использования Azure ML:
- Можно работать большую часть времени локально на своей машине в удобном IDE, и использовать GPU только для обучения модели. При этом пул обучающих ресурсов может автоматически подстраиваться под требуемую нагрузку, и установив минимальное количество узлов в 0 вы сможете автоматически запускать виртуалку "по требованию" при наличии обучающих заданий.
- Вы можете хранить все результаты обучения в одном месте, включая достигнутые метрики и полученные модели — нет необходимости самому придумывать какую-то систему или порядок для хранения всех результатов.
- При этом над одним проектом могут работать несколько человек — они могут использовать один и тот же вычислительный кластер, все эксперименты будут при этом выстраиваться в очередь, а также они могут видеть результаты экспериментов друг друга. Одним из таких сценариев является использование Azure ML в преподавании Deep Learning, когда вместо того, чтобы давать каждому студенту виртуальную машину с GPU, вы можете создать один кластер, который будет использоваться всеми централизованно. Кроме того, общая таблица результатов с точностью модели может служить хорошим соревновательным элементом.
- С помощью Azure ML можно легко проводить серии экспериментов, например, для оптимизации гиперпараметров — это можно делать несколькими строчками кода, нет необходимости проводить серии экспериментов вручную.
Надеюсь, я убедил вас попробовать Azure ML! Вот как можно начать:
Предварительные требования
Прежде чем приступить к созданию виртуальных машин на устройстве и управлению ими через портал Azure, убедитесь в следующем.
Вы настроили параметры сети на устройстве GPU Azure Stack Edge Pro, как описано в разделе Шаг 1. Настройка устройства GPU Azure Stack Edge Pro.
Вы включили сетевой интерфейс для вычислений. IP-адрес этого сетевого интерфейса используется для создания виртуального коммутатора для развертывания виртуальной машины. В локальном пользовательском интерфейсе устройства откройте раздел Вычисления. Выберите сетевой интерфейс, который будет использоваться для создания виртуального коммутатора.
Для служб вычислений можно настроить только один порт.
Включите службы вычислений на сетевом интерфейсе. Azure Stack Edge Pro создает виртуальный коммутатор, соответствующий этому сетевому интерфейсу, и управляет им.
Имеется доступ к виртуальному жесткому диску Windows или Linux, который будет использоваться для создания образа создаваемой виртуальной машины.
Рабочий процесс развертывания виртуальной машины
Общая сводка по рабочему процессу развертывания включает следующие действия:
Включите сетевой интерфейс для вычислений на устройстве Azure Stack Edge. В этом шаге на указанном сетевом интерфейсе создается виртуальный коммутатор.
Включите облачное управление виртуальными машинами с портала Azure.
Передайте виртуальный жесткий диск в учетную запись хранения Azure, используя Обозреватель службы хранилища Azure.
Используйте переданный виртуальный жесткий диск для скачивания виртуального жесткого диска на устройство и создайте образ виртуальной машины на основе виртуального жесткого диска.
Используйте ресурсы, созданные на предыдущих этапах.
- Созданный образ виртуальной машины.
- Виртуальный коммутатор, привязанный к сетевому интерфейсу, на котором включены вычисления.
- Подсеть, связанная с виртуальным коммутатором.
Создайте или укажите следующие ресурсы в строке:
- имя виртуальной машины, поддерживаемый размер виртуальной машины, учетные данные виртуальной машины для входа.
- Создайте новые диски данных или подключите существующие диски данных.
- Настройте статический или динамический IP-адрес виртуальной машины. Если вы предоставляете статический IP-адрес, выберите бесплатный IP-адрес в диапазоне подсети сетевого интерфейса, включенного для вычислений.
Используйте указанные выше ресурсы для создания виртуальной машины.
Установка поддерживаемых графических драйверов на виртуальной машине
Чтобы воспользоваться возможностями GPU виртуальных машин Azure серии N в службе "Виртуальный рабочий стол Azure", необходимо установить соответствующие графические драйверы. Для установки драйверов следуйте инструкциям из раздела Поддерживаемые операционные системы и драйверы. Поддерживаются только драйверы, поставляемые Azure.
- Для виртуальных машин Azure серии NV, NVv3 или NCasT4_v3 ускорение за счет GPU для большинства приложений и пользовательского интерфейса Windows поддерживают только драйверы NVIDIA GRID, а не драйверы NVIDIA CUDA. Если вы решили установить драйверы вручную, обязательно установите драйверы GRID. Если вы решили установить драйверы с помощью расширения виртуальной машины Azure, для этих размеров виртуальных машин будут автоматически установлены драйверы GRID.
- Для виртуальных машин Azure серии NVv4 установите драйверы AMD, предоставляемые Azure. Вы можете установить их автоматически с помощью расширения виртуальной машины Azure или вручную.
После установки драйвера необходимо выполнить перезагрузку виртуальной машины. Выполните инструкции по проверке, приведенные выше, чтобы убедиться в успешной установке графических драйверов.
1.3. Цены
Цены на N-Series Azure VM выглядят следующим образом (октябрь 2016) [5]:
Но пусть Ваше любопытство эти 4-ехзначные числа не уменьшают: как всегда, в облаке мы платим за использование ресурсов. Для IaaS-сервисов, каковым сервис Azure VM является, это стоит понимать, как почасовая тарификация. Кроме того, в Microsoft Azure есть много способов получить золото вычислительные ресурсы совершенно бесплатно.
Это распространяется на новые учетные записи в Azure, на студентов, на стартапы, если вы ищете лекарство от рака исследователь, или если Вы/компания, в которой Вы работаете, обладатель MSDN-подписки.
Развертывание виртуальной машины
Выполните следующие действия, чтобы создать виртуальную машину на устройстве GPU Azure Stack Edge Pro.
Проверка кодирования кадров с поддержкой ускорения за счет GPU
Чтобы убедиться, что удаленный рабочий стол использует кодирование с поддержкой ускорения за счет GPU, сделайте следующее:
- Подключитесь к рабочему столу виртуальной машины с помощью клиента Виртуального рабочего стола Azure.
- Запустите средство "Просмотр событий" и перейдите к следующему узлу: Журналы приложений и служб>Майкрософт>Windows>RemoteDesktopServices-RdpCoreCDV>Работающий
- Чтобы определить, используется ли кодирование с поддержкой ускорения за счет GPU, найдите событие с идентификатором 170. Если отображается "Включен аппаратный кодировщик AVC: 1", значит используется кодирование GPU.
Подключение к виртуальной машине Linux
Для подключения к виртуальной машине Linux выполните действия, описанные ниже.
Подключитесь к виртуальной машине с помощью частного IP-адреса, переданного во время создания виртуальной машины.
Откройте сеанс SSH для подключения с помощью IP-адреса.
В командной строке введите пароль, который использовался при создании виртуальной машины.
Если необходимо указать ключ SSH, выполните следующую команду.
ssh -i c:/users/Administrator/.ssh/id_rsa Administrator@5.5.41.236
Ниже приведен пример выходных данных при подключении к виртуальной машине.
Подключение к виртуальной машине Windows
Для подключения к виртуальной машине Windows выполните действия, описанные ниже.
Подключитесь к виртуальной машине Windows с помощью протокола удаленного рабочего стола (RDP) через IP-адрес, указанный во время создания виртуальной машины.
На своем клиенте откройте RDP.
Перейдите в раздел Пуски введите mstsc.
В области Подключение к удаленному рабочему столу введите IP-адрес виртуальной машины и учетные данные доступа, которые использовались в файле параметров шаблона виртуальной машины. В этом случае выберите Подключиться.
Добрый день!
В сегодняшней статье я постараюсь рассказать, как можно расширить границы использования Azure на примере создания в нем виртуальной машины и хостинга на ней веб-приложения.
Шаг 0. Получения доступа.
Для тех, кто поленился перейти по ссылке в начале статьи, я напомню, как можно получить бесплатный доступ к новым возможностям Windows Azure.
Для начала вам надо зарегистрироваться на 90-дневный триал, после чего добавить к своей подписке новые preview-функции (как раз те самые, о которых идет речь). Делается это на странице Предварительный просмотр компонентов, где можно выбрать то, что вы хотите попробовать. В данном случае выбираем Virtual Machine.
Шаг 1. Создание виртуальной машины
После того, как мы получили доступ к компонентам Windows Azure, самое время начать их использовать. Для этого в портале управления выберите пункт Virtual Machines и внизу страницы нажмите большую кнопку плюс (не промахнетесь):
Нам будет доступно два пункта: Quick Create и From Gallery. На самом деле разница между ними невелика, поэтому рассмотрим более полный путь. Выбираем From Gallery:
В данном диалоговом окне у нас есть несколько вариантов на выбор. Начнем с того, что помимо готовых образов ОС (видно на скриншоте), нам также предоставляется возможность загрузить свой собственный образ или VHD-диск, из которого впоследствие создастся виртуальная машина. Это будет удобно для крупных проектов, где нужно создать ферму одинаковых машин, не заморачиваясь с настройкой каждой из них. Нас же сейчас это не интересует, поэтому обратим свой взгляд на доступные готовые образы.
На выбор нам предлагается несколько вариантов. Есть Windows Server 2008 R2 (двух версий), линуксовые машинки, специализированный сервер под SQL Server (про этот образ, кстати, недавно писали на хабре) и герой нашего сегодняшнего эксперимента — Windows Server 2012. Почему именно он? Это лично мой выбор. Поскольку я использую Windows Azure пока больше в ознакомительных целях, то я решил, что было бы неплохо попробовать и «новинку сезона» — новый сервер 2012.
Итак, выбираем нужную нам ОС и жмем стрелку снизу. Попадаем на следующий экран мастера создания виртуальной машины:
Здесь все довольно понятно. Надо указать имя VM, пароль администратора и выбрать одну из предложенных конфигураций будущего «железа». Выбор довольно неплохой и может покрыть большинство требований по производительности для разных типов проекта. Я выбрал Small, что вполне меня устраивает. Идем дальше.
На третьем шаге мастера все тоже довольно понятно:
Для начала надо определиться с назначением будущей машины. Если мы хотим использовать ее как самостоятельный ресурс (а в данный момент мы именно этого и хотим), то выбираем Standalone. Режим Connect To, как написано в подсказке, позволит нам подключить данную ВМ в некую существующую сеть для разделения нагрузки. Нас это пока не интересует.
Остальные поля довольно понятны и особо заострять внимание на них не стоит. Там надо выбрать аккаунт хранилища (либо существующий, либо создать новый), расположение ВМ и подписку, в рамках которой данная машина будет тарифицироваться.
На четвертом шаге вообще ничего делать не нужно, оставляем все как есть:
Нажимаем на галку внизу, и виртуальная машина начнет создаваться.
Шаг 2. Управление виртуальной машиной
После того, как вы создали виртуальную машину, она будет доступна в соответствующем списке:
Обязательно дождитесь, когда статус машины сменится с Provisioning на Running. Это будет означать, что машина готова к использованию. Если нажать на ее имя, то откроется панель управления виртуальной машиной:
Внизу страницы есть кнопка Connect. Она поможет вам получить правильный файл rdp для подключения к этой машине с помощью удаленного рабочего стола. Настало самое время зайти на свеженький сервер и поуправлять им.
Шаг 3. Управление сервером
На самом деле, в этой статье я не буду подробно рассказывать об администрировании Windows Server 2012. Поскольку в названии данной статьи упоминаются web-приложения, вот именно этим мы и займемся — установим IIS.
При первом логине в новый сервер нам откроется окно Server Manager:
Жмем несколько раз Next, настраиваем будущую роль как нам надо и после завершения процесса установки наш сервер с радостью готов принимать гостей. Убедиться в этом можно, перейдя по localhost. Должно появиться что-то вроде этого:
Шаг 4. Открытие доступа
Если вы в панели управления виртуальной машиной посмотрите наверх, то увидите там три пункта меню: Dashboard, Endpoints и Configure. С первым мы разобрались в самом начале, с последним все понятно — там настраиваются параметры «железа», а вот что такое Endpoints давайте разберемся.
В закладке Endpoints мы можем задавать то, какие протоколы и какие порты будут открыты для данной виртуальной машины и на какие физические порты они будут перенаправлены:
Шаг 5. Присваиваем собственный домен
На предыдущем шаге мы сделали все, чтобы приложение заработало в облаке и было доступно извне. Однако согласитесь, что было бы совсем не круто, если бы мы могли обращаться к нему только по субдомену и никак бы не могли присвоить свой один или несколько доменов.
В качестве решения, которым, кстати, воспользовался и я, предлагается редактирование A записи в зоне DNS. В панели управления виртуальной машиной, в области справа, вы могли заметить два IP адреса. Один называется приватным и является IP самой машины, а второй — публичный, виртуальный (Virtual IP, VIP). Вот именно его и надо указывать в зоне A для редактируемого домена. В данном случае весь трафик будет посылаться на вашу виртуальную машину, где IIS будет определять домен и выдавать соответствующее приложение (при условии правильной настройки Web Sites в самом IIS). Все просто и очевидно до неприличия, но именно так оно и работает.
Шаг 6. Бонус
Файлы самого приложения я перенес безболезненно. Но когда я вспомнил о базе, то сначала немного опечалился. Я сразу представил себе, что мне придется сначала скачать дистрибутив, затем отвести под его установку некое место. Запустить службу БД на и без того не самой быстрой машине. Иметь БД и веб-приложение на одном сервере. Переносить данные с одного сервера на другой. Ну и еще несколько подобных неприятностей. Не сказать, чтобы это было прям так уж сложно, но, честно говоря, лениво.
И тут я подумал — а что если я натравлю приложение, размещенное в виртуальной машине, на БД, которая была создана в рамках хостинга сайта на Web Sites? Ведь с точки зрения приложения данная БД точно такая же, как если бы она была установлена на локальном сервере. Сказано — сделано. Я поменял web.config нужным образом, указав в качестве сервера БД тот самый сервер, который у меня существовал в Windows Azure. И что бы вы думали? Оно работает. Теперь у меня есть отдельный сервер приложений и отдельная база данных, которые можно независимо друг от друга замещать, расширять и зеркалить в случае необходимости. Спасибо Azure за такие приятности.
Заключение
На этой приятной ноте я хотел бы закончить рассказ. Надеюсь материал будет полезен начинающим исследователям Azure и поможет определиться с выбором хостинга для своих веб-проектов. На всякий случай хочу написть, что я никоим образом не связан с Microsoft и отражаю только свою личную точку зрения, без какой-либо рекламы.
Подходов к владению высокопроизводительными GPU минимум два: купить (on-premises) и арендовать (on-demand). Как накопить и купить – тема не этой статьи. В этой — мы рассмотрим, какие предложения есть по аренде инстансов VM c высокопроизводительными GPU у облачных провайдеров Amazon Web Service и Windows Azure.
Запускаем скрипт в Azure ML
Если же мы будем запускать скрипт на обучение через Azure ML, у нас будет два основных преимущества:
Соответствующая версия скрипта называется train_universal.py (она чуть более хитро устроена, чем написано выше, но не сильно). Этот скрипт можно запускать как локально, так и на удалённом вычислительном ресурсе.
Чтобы запустить его в Azure ML из VS Code, надо проделать следующее:
Убедитесь, что Azure Extension подключено к вашей подписке. Выберите иконку Azure в меню слева. Если вы не подключены, в правом нижнем углу появится уведомление (вот такое), нажав на которое вы сможете войти через браузер. Можно также нажать Ctrl-Shift-P для вызова командной строки VS Code, и набрать Azure Sign In.
После этого, в разделе Azure (иконка слева) найдите секцию MACHINE LEARNING:
Здесь вы должны видеть разные группы объектов внутри рабочей области: вычислительные ресурсы, эксперименты и т.д.
- Перейдите к списку файлов, нажмите правой кнопкой на скрипте train_universal.py и выберите Azure ML: Run as experiment in Azure.
- После этого последует серия диалогов в области командной строки VS Code: подтвердите используемую подписку и рабочую область Azure ML, а также выберите Create new experiment:
Выберите создание нового вычислительного ресурса Create New Compute:
- Compute определяет вычислительный ресурс, на котором будет происходить обучение. Вы можете выбрать локальный компьютер, или облачный кластер AmlCompute. Я рекомендую создать масштабируемый кластер машин STANDARD_DS3_v2 , с минимальным числом машин 0 (а максимальное может быть 1 или больше, в зависимости от ваших аппетитов). Это можно сделать через интерфейс VS Code, или предварительно через ML Portal.
Далее необходимо выбрать конфигурацию Compute Configuration, которая определяет параметры создаваемого для обучения контейнера, в частности, все необходимые библиотеки. В нашем случае, поскольку мы используем Scikit Learn, выбираем SkLearn, и затем просто подтверждаем предложенный список библиотек нажатием Enter. Если вы используете какие-то дополнительные библиотеки — их необходимо здесь указать.
- После успешной подачи эксперимента через VS Code, справа в области уведомлений вы увидите ссылку на Azure ML Portal, на которой сможете отслеживать статус и результаты эксперимента.
Впоследствии вы всегда сможете найти его в разделе Experiments Azure ML Portal, или в разделе Azure Machine Learning в списке экспериментов:
- Если вы после этого внесли в код какие-то исправления или изменили параметры — повторный запуск эксперимента будет намного быстрее и проще. Нажав правой кнопкой на файл, вы увидите новый пункт меню Repeat last run — просто выберите его, и эксперимент будет сразу же запущен:
Результаты метрик от всех запусков вы всегда сможете найти на Azure ML Portal, нет необходимости их записывать.
Теперь вы знаете, что запускать эксперименты с помощью Azure ML — это просто и безболезненно, и при этом вы получаете ряд приятных преимуществ.
Но вы могли заметить и недостатки. Например, для запуска скрипта потребовалось существенно больше времени. Конечно, для упаковки скрипта в контейнер и разворачивания его на сервере требуется время. Если при этом кластер был урезан до размера в 0 узлов — потребуется ещё больше времени для запуска виртуальной машины, и всё это очень заметно, когда мы экспериментируем на простых задачах типа MNIST, которые решаются за несколько секунд. Однако, в реальной жизни, когда обучение длится несколько часов, а то и дней или недель, это дополнительное время становится несущественным, особенно на фоне сильно более высокой производительности, которую может дать вычислительный кластер.
2. Amazon EC2 GPU Instances (+опасное сравнение)
Облачный провайдер Amazon Web Services (AWS) начал предоставлять инстансы VM с графическими процессорами еще в 2010 году.
Еще в начале сентября (2016) GPU-инстансы AWS были представлены только семейством 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-инстансы, содержащие более современные графические карты.
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 | 648 | 648 |
Azure NC6 | K80 | 1 | 6 | 56 | 10 (?) | +/+ | Private preview | 461 | 461 |
Amazon p2.8xlarge | K80 | 8 | 32 | 488 | 10 | 7.5/1.2 | GA | 5184 | 648 |
Azure NC24 | K80 | 8 | 24 | 224 | 10 (?) | +/+ | Private preview | 1882 | 235 |
Добавление виртуальной машины
Выполните следующие действия, чтобы создать виртуальную машину после создания образа виртуальной машины.
На странице Обзор для виртуальных машин выберите + Добавить виртуальную машину.
В колонке Основные сведения укажите следующие параметры.
Параметр | Описание |
---|---|
Имя виртуальной машины | Введите имя новой виртуальной машины. |
Группа ресурсов Edge | Создайте новую группу ресурсов для всех ресурсов, связанных с виртуальной машиной. |
Образ — | Сделайте выбор из образов виртуальных машин, доступных на устройстве. |
Размер | Сделайте выбор из Поддерживаемых размеров виртуальных машин. В качестве виртуальной машины GPU выберите размер виртуальной машины серии NCasT4-v3. |
Имя пользователя | Используйте имя пользователя по умолчанию azureuser для входа администратора на виртуальную машину. |
Authentication type (Тип проверки подлинности) | Выберите открытый ключ SSH или пароль, задаваемый пользователем. |
Открытый ключ SSH | Отображается, если в качестве типа проверки подлинности выбран открытый ключ SSH. Вставьте открытый ключ SSH. |
Пароль | Отображается, если в качестве типа проверки подлинности выбран пароль. Введите пароль для входа в виртуальную машину. Пароль должен содержать минимум 12 символов и соответствовать заданным требованиям к сложности. |
Подтверждение пароля | Введите пароль еще раз. |
По завершении выберите Next: Диски.
На вкладке Диски подключите диски к виртуальной машине.
Можно Создать и подключить новый диск или Подключить существующий диск.
Выберите Создать и подключить новый диск. В области Создать новый диск укажите имя диска и размер в ГиБ.
Повторите описанные выше действия, чтобы добавить дополнительные диски. Созданные диски отображаются на вкладке Диски. Выберите Далее: сеть.
На вкладке Сеть настройте сетевое подключение для виртуальной машины.
Параметр | Описание |
---|---|
Виртуальная сеть | В раскрывающемся списке выберите виртуальный коммутатор, созданный на устройстве Azure Stack Edge операцией включения вычислений в сетевом интерфейсе. |
Подсеть | В это поле автоматически вносится подсеть, привязанная к сетевому интерфейсу, на котором включены вычисления. |
IP-адрес | Укажите статический или динамический IP-адрес виртуальной машины. Статический IP-адрес должен быть доступным свободным IP-адресом из указанного диапазона подсети. |
Выберите Далее: Дополнительно. На вкладке Дополнительно можно выбрать расширение для установки во время развертывания виртуальной машины, а также указать скрипт cloud-init для настройки виртуальной машины.
Если вы хотите установить расширение на виртуальную машину во время ее создания, выберите Выбрать расширение для установки. Затем выберите расширение на экране Добавление расширения.
Подробные инструкции по установке расширения GPU во время развертывания виртуальной машины см. в статье Развертывание виртуальных машин GPU.
Если вы хотите использовать служебную программу cloud-init для настройки новой виртуальной машины при первой загрузке, на вкладке Дополнительно вставьте скрипт cloud-init в поле Пользовательские данные в разделе Пользовательские данные и инициализация облака.
Дополнительные сведения об использовании cloud-init см. в статье Обзор cloud-init.
По завершении выберите Next: Просмотр + создание.
На вкладке Просмотр и создание проверьте спецификации виртуальной машины. Щелкните Создать.
Начнется создание виртуальной машины, которое может занять до 20 минут. Чтобы отслеживать создание виртуальной машины, перейдите в раздел Развертывания.
После создания виртуальную машину можно просмотреть на панели Обзор.
Выберите созданную виртуальную машину для перехода в раздел Виртуальные машины.
Выберите виртуальную машину для просмотра сведений.
Для подключения к виртуальной машине вы будете использовать IP-адрес сетевого интерфейса.
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, нацеленные на графические расчеты.
Проверка кодирования видео в полноэкранном режиме
Чтобы убедиться, что удаленный рабочий стол использует кодирование видео в полноэкранном режиме, сделайте следующее:
- Подключитесь к рабочему столу виртуальной машины с помощью клиента Виртуального рабочего стола Azure.
- Запустите средство "Просмотр событий" и перейдите к следующему узлу: Журналы приложений и служб>Майкрософт>Windows>RemoteDesktopServices-RdpCoreCDV>Работающий
- Чтобы определить, используется ли кодирование видео в полноэкранном режиме, найдите событие с идентификатором 162. Если отображается "Доступный AVC: 1. Начальный профиль: 2048", значит используется AVC 444.
Настройка кодирования кадров с поддержкой ускорения за счет GPU
Удаленный рабочий стол кодирует всю графику в ходе отрисовки приложениями и рабочими столами (выполненной с помощью GPU или ЦП) для передачи клиентам удаленного рабочего стола. Если часть экрана часто обновляется, она кодируется видеокодеком (H. 264/AVC). По умолчанию удаленный рабочий стол не использует доступные GPU для этого кодирования. Настройте групповую политику для узла сеанса, чтобы включить кодирование кадров с поддержкой ускорения за счет GPU. Продолжите выполнять указанные выше шаги:
Кодирование кадров с ускорением за счет GPU на виртуальных машинах серии NVv4 недоступно.
Выберите политику Настройка кодировки оборудования H.264/AVC для подключений к удаленному рабочему столу и задайте для нее значение Включено, чтобы включить кодирование оборудования для AVC/H.264 в удаленном сеансе.
В Windows Server 2016 задайте для параметра Использовать кодировку AVC оборудования значение Всегда предпринимать попытки.
Теперь, когда групповые политики изменены, принудительно обновите групповую политику. Откройте командную строку и введите:
Завершите сеанс удаленного рабочего стола.
Подключение к виртуальной машине
Порядок подключения может отличаться в зависимости от ОС, в которой создана виртуальная машина — Windows или Linux. Невозможно подключиться к виртуальным машинам, развернутым на устройстве, через портал Azure. Чтобы подключиться к виртуальной машине под управлением Linux или Windows, выполните следующие действия.
Полезные ресурсы
Для более подробного изучения Azure ML, вам могут пригодиться следующие курсы Microsoft Learn:
Это содержимое применимо к Виртуальному рабочему столу Azure с объектами Azure Resource Manager для Виртуального рабочего стола Azure. Если вы используете Виртуальный рабочий стол Azure (классический) без объектов Azure Resource Manager, ознакомьтесь с этой статьей.
Виртуальный рабочий стол Azure поддерживает отрисовку и кодирование с поддержкой ускорения за счет GPU для повышения уровня производительности и масштабируемости. Ускорение GPU особенно важно для приложений с большим объемом графики и поддерживается в следующих операционных системах:
- Windows 10 версии 1511 или более поздней.
- Windows Server 2016 или поздней версии.
Многосеансовые версии Windows не перечислены специально, но каждый GPU в виртуальной машине Azure серии NV поставляется с лицензией GRID, которая поддерживает 25 параллельных пользователей. Подробные сведения см. в разделе о серии NV.
Выполнив инструкции, приведенные в этой статье, создайте оптимизированную для GPU виртуальную машину Azure, добавьте ее в свой пул узлов и настройте для использования ускорения GPU для отрисовки и кодирования. В этой статье предполагается, что уже созданы пул узлов и группа приложений.
Обучающий скрипт для MNIST
Рассмотрим классическую задачу распознавания рукописных цифр с использованием набора данных MNIST. Аналогично в дальнейшем вы сможете выполнять любые свои обучающие скрипты.
В нашем репозитории есть скрипт train_local.py , который обучаем простейшую модель линейной регрессии с использованием библиотеки SkLearn. Конечно, я понимаю, что это не самый лучший способ решить задачу — мы используем его для примера, как самый простой.
Скрипт сначала скачивает данные MNIST из OpenML, а затем использует класс LogisticRegression для обучения модели, и затем печатает полученную точность:
Вы можете запустить скрипт на своём компьютере и через пару секунд получите результат.
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 |
Заключение
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.
Дальнейшие действия
Выполнив приведенные в этой статье инструкции, вы настроили и запустили ускорение GPU на узле с одним сеансом (одной виртуальной машине). Дополнительные сведения о включении ускорения GPU в большем пуле узлов:
ПРИМЕНИМО К: Azure Stack Edge Pro — GPUAzure Stack Edge Pro 2Azure Stack Edge Pro RAzure Stack Edge Mini R
Вы можете создавать виртуальные машины и управлять ими на устройстве GPU Azure Stack Edge Pro, используя портал Azure, шаблоны, командлеты Azure PowerShell и сценарии Azure CLI или Python. В этой статье описан процесс создания виртуальной машины и управления ею на устройстве GPU Azure Stack Edge Pro с использованием портала Azure.
Рекомендуется включить многофакторную аутентификацию для пользователя, который управляет виртуальными машинами, развернутыми на устройстве, из облака.
Настройка кодирования видео в полноэкранном режиме
Кодирование видео в полноэкранном режим может быть включено даже без наличия GPU.
Если вы часто используете приложения, которые создают содержимое с высокой частотой кадров, например приложения для трехмерного моделирования, автоматизированного проектирования и производства или работы с видео, вы можете включить полноэкранное кодирование видео для удаленного сеанса. Профиль полноэкранного режима видео обеспечивает более высокую частоту кадров и удобство работы пользователей для таких приложений с учетом пропускной способности сети и ресурсов узла сеанса и клиента. Для полноэкранного видео рекомендуется использовать кодирование кадров с ускорением за счет GPU. Настройте групповую политику для узла сеанса, чтобы включить кодирование видео в полноэкранном режиме. Продолжите выполнять указанные выше шаги:
Выберите политику Назначить приоритет графического режима H.264/AVC 444 для подключений к удаленному рабочему столу и задайте для нее значение Включено, чтобы принудительно использовать кодек H.264/AVC 444 в удаленном сеансе.
Теперь, когда групповые политики изменены, принудительно обновите групповую политику. Откройте командную строку и введите:
Завершите сеанс удаленного рабочего стола.
Настройка отрисовки приложений с поддержкой ускорения за счет GPU
По умолчанию отрисовка приложений и рабочих столов, запущенных в Windows Server, выполняется с помощью ЦП без использования доступных GPU. Настройте групповую политику для узла сеанса, чтобы включить отрисовку с поддержкой ускорения за счет GPU:
- Подключитесь к рабочему столу виртуальной машины, используя учетную запись с правами локального администратора.
- Откройте меню "Пуск" и введите gpedit.msc, чтобы открыть редактор групповой политики.
- Перейдите по дереву к разделу Конфигурация компьютера>Административные шаблоны>Компоненты Windows>Службы удаленных рабочих столов>Узел сеансов удаленных рабочих столов>Среда удаленных сеансов.
- Выберите политику Use hardware graphics adapters for all Remote Desktop Services sessions (Для всех сеансов службы удаленных рабочих столов использовать аппаратный графический адаптер) и задайте для нее значение Включено, чтобы включить отрисовку с поддержкой ускорения за счет GPU в удаленном сеансе.
Что дальше?
Я надеюсь, что после прочтения этой статьи вы сможете и будете использовать Azure ML в своей работе для запуска скриптов, управления вычислительными ресурсами и централизованного хранения результатов. Однако Azure ML может предоставить вам ещё больше преимуществ!
Внутри рабочей области можно хранить данные, тем самым создавая централизованное хранилище для всех своих задач, к которому легко обращаться. Кроме того, вы можете запускать эксперименты не из Visual Studio Code, а с использованием API — это может быть особенно полезно, если вам нужно совершить оптимизацию гиперпараметров, и нужно запустить скрипт много раз с разными параметрами. Более того, в Azure ML встроена специальная технология Hyperdrive, которая позволяет делать более хитрый поиск и оптимизацию гиперпараметров. Об этих возможностях я расскажу в своей следующей заметке.
Добавление образа виртуальной машины
Отправьте виртуальный жесткий диск в учетную запись хранения Azure. Выполните действия, описанные в разделе Использование Обозревателя службы хранилища для отправки.
На портале Azure перейдите к ресурсу Azure Stack Edge для своего устройства. Затем перейдите в раздел Службы Edge>Виртуальные машины.
На странице Обзор сделайте следующее. Выберите Включить, чтобы включить управление облаком виртуальной машины.
Первым шагом является добавление образа виртуальной машины. В предыдущем шаге виртуальный жесткий диск уже отправлен в учетную запись хранения. Этот виртуальный жесткий диск будет использоваться для создания образа виртуальной машины.
Выберите + Добавить образ, чтобы скачать виртуальный жесткий диск из учетной записи хранения и добавить его на устройство. Процесс загрузки занимает несколько минут; длительность зависит от размера виртуального жесткого диска и пропускной способности сети, доступной для загрузки.
Поле | Описание |
---|---|
Скачивание из BLOB-объекта хранилища | Перейдите к расположению BLOB-объекта хранилища в учетной записи хранения, куда был отправлен виртуальный жесткий диск. |
Скачайте в | Автоматически указывается текущее устройство, на котором развертывается виртуальная машина. |
Группа ресурсов Edge | Выберите группу ресурсов, в которую нужно добавить образ. |
Сохраните образ как | Имя образа виртуальной машины, который создается на основе виртуального жесткого диска, отправленного в учетную запись хранения. |
Тип ОС | Выберите Windows или Linux в качестве операционной системы виртуального жесткого диска, который будет использоваться для создания образа виртуальной машины. |
После этого будет скачан виртуальный жесткий диск и создан образ виртуальной машины. Создание образа занимает несколько минут. Будет выдано уведомление об успешном завершении создания образа виртуальной машины.
После успешного создания образ виртуальной машины добавляется в список образов в области Образы.
Область Развертывания обновляется, показывая состояние развертывания.
Добавленное изображение также отображается на странице Обзор.
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 |
Azure ML Workspace и Azure ML Portal
Azure ML организован вокруг концепции рабочей области — Workspace. В рабочей области могут храниться данные, в неё отправляют эксперименты для обучения, там же хранятся результаты обучения — полученные метрики и модели. Посмотреть, что находится внутри рабочей области, можно через портал Azure ML — и оттуда же можно совершать множество операций, начиная от загрузки данных и заканчивая мониторингом экспериментов и развертыванием моделей.
Создать рабочую область можно через веб-интерфейс Azure Portal (см. пошаговые инструкции), или с использованием командной строки Azure CLI (инструкции):
С рабочей областью связаны также некоторые вычислительные ресурсы (Compute). Создав скрипт для обучения модели, вы можете послать эксперимент на выполнение в рабочую область, и указать compute target — при этом скрипт будет упакован, запущен в нужной вычислительной среде, а затем все результаты эксперимента будут сохранены в рабочей области для дальнейшего анализа и использования.
Выбор подходящего размера виртуальной машины Azure, оптимизированной для GPU
Выберите один из размеров виртуальных машин Azure серии NV, NVv3, NVv4 или серии NCasT4_v3 для использования в качестве узла-организатора сеансов. Они предназначены для виртуализации приложений и настольных компьютеров и позволяют большинству приложений и пользовательскому интерфейсу Windows использовать ускорение за счет GPU. Правильный выбор для вашего пула узлов зависит от ряда факторов, включая рабочие нагрузки приложений, желаемое взаимодействие с пользователем и стоимость. Как правило, большие и более производительные GPU обеспечивают более комфортную работу для пользователей при определенной их плотности, а небольшие и дробные размеры GPU позволяют более точно контролировать стоимость и качество. Рассмотрите возможность прекращения использования виртуальной машины серии NV при выборе виртуальной машины. Дополнительные сведения см. в разделе Прекращение использования NV
Виртуальные машины Azure NC, NCv2, NCv3, ND и NDv2, как правило, не подходят для узлов сеансов Виртуального рабочего стола Azure. Эти виртуальные машины адаптированы для специализированных высокопроизводительных вычислений или средств машинного обучения, например на основе NVIDIA CUDA. Они не поддерживают ускорение GPU для большинства приложений и пользовательского интерфейса Windows.
Проверка отрисовки приложений с поддержкой ускорения за счет GPU
Чтобы убедиться, что для отрисовки приложений используется GPU, попробуйте выполнить одно из следующих действий:
- Для виртуальных машин Azure с GPU NVIDIA используйте утилиту nvidia-smi , как описано в разделе Проверка установки драйверов, чтобы проверить использование GPU при запуске приложений.
- В поддерживаемых версиях операционной системы проверить использование GPU можно с помощью диспетчера задач. Выберите GPU на вкладке "Производительность", чтобы узнать, используют ли его приложения.
Читайте также: