За последние месяцы в Cloud4Y обратилось почти два десятка компаний, интересовавшихся возможностями виртуальных GPU. «Графикой» от Cloud4Y уже пользуется одна из крупных «дочек» Сбербанка, но в целом услуга не слишком популярная. Так что подобная активность нас весьма порадовала. Видя рост интереса к технологии, мы решили чуть подробнее рассказать про vGPU.
«Озёра данных», полученные в результате научных экспериментов и исследований, Deep Learning и другие направления работы с ИИ, моделирование крупных и сложных объектов — всё это требует высокопроизводительного «железа». Хорошо, если оно есть и позволяет быстро решать текущие задачи. Вот только из-за возрастающей вычислительной сложности задач (в первую очередь касается для бизнес-аналитики, рендеринга, DL-алгоритмов и фреймворков) аппаратные мощности настольных и даже серверных CPU всё чаще становятся бесполезны.
Выход был найден в использовании вычислений на GPU. Но вернёмся к GPU. Это технология ускорения графики, которая обеспечивает разделение ресурсов одного графического процессора между несколькими виртуальными компьютерами. GPU изначально проектировался для работы с графикой, потому состоит из тысячи мелких ядер, используемых для эффективной обработки параллельных задач. При этом на GPU выполняется часть самых ресурсоемких вычислений, остальное берёт на себя CPU.
Вычисления с помощью GPU придумала компания Nvidia ещё в 2007 году. Сегодня эта технология вышла на новый уровень и применяется в ЦОДах крупнейших предприятий и научных лабораторий. Однако у традиционного подхода есть один весомый недостаток: закупка физического оборудования обходится весьма недёшево. А если вспомнить скорость устаревания «железа», то становится ещё грустнее.
Проблему призвана решить технология виртуальных графических процессоров: vGPU. С её помощью пользователи могут удалённо запускать тяжёлые приложения вроде AutoCAD, 3DS Max, Maya, Sony Vegas Pro. Виртуализация быстро отвоевала свою долю рынка. Ведь какой русский data-scientist не любит быстрых вычислений на видеокартах NVidia Tesla?
Здесь стоит отметить, что до появления vGPU использовались другие методы ускорения обработки графики: Virtual Shared Graphics Acceleration (vSGA и Virtual Dedicated Graphics Acceleration (vDGA). Решение vGPU объединило лучшее из обеих технологий. Как и в случае vSGA, в среде vGPU предполагается совместное использование GPU и RAM несколькими виртуальными рабочими столами, но при этом каждая ВМ передаёт команды напрямую к GPU, как в случае с vDGA.
Зачем вообще нужны vGPU
Облачные вычисления с использованием vGPU позволяют компаниям справляться с задачами, которые раньше невозможно было решить. Или возможно, но для этого требовалось нереально много ресурсов. 1 современный GPU-сервер способен заменить до 100 обычных CPU. Есть и другие, ещё более внушительные цифры. Это не шутки: решения Nvidia обрабатывают петабайты данных в несколько раз быстрее классических CPU-серверов. А от же Google Cloud предлагает виртуальные машины с GPU, выдающие до 960 терафлопс.
Многие специалисты нуждаются в мощных устройствах, способных выполнять параллельные вычисления. Архитекторы и инженеры используют технологию vGPU в системах проектирования (тот же Autodesk, к примеру). Дизайнеры работают с цифровым фото- и видеоконтентом (Photoshop, CorelDraw). Виртуальные машины с графическими процессорами требуются и медицинским учреждениям, которые аккумулируют и анализируют данных о пациентах и заболеваниях. Работает с GPU и «Яндекс».
Думаете, всё? Как бы не так. Технологию используют и для автоматической проверки точности спутниковых снимков, и для прогнозирования эпидемий, метеорологических исследований, моделирования солнечных циклов и бизнес-аналитики. А ещё есть классная статья про моделирование в среде Unity3D от @ThisIsZolden
При всём при этом решения на базе vGPU пока что не получили широкого распространения в мире. Так, в 2018 году NetApp провёл опрос среди компаний, использующих в работе графические процессоры. Результаты показали, что 60% организаций по-прежнему работают на собственной ИТ-инфраструктуре. «Облаком» же пользуются лишь 23%. В России проникновение технологии облачных вычислений имеет меньшее значение. Но благодаря новым аппаратным и программным решениям число компаний, использующих виртуальные машины с GPU, постоянно растёт.
Решения для vGPU
Разработкой технологий виртуализации графических ускорителей занимается много компаний, но среди них есть безусловные лидеры.
Один из наиболее авторитетных разработчиков решений в сфере облачных решений, компания VMware предлагает компаниям гипервизор ESXi, под которым скорость работы виртуальных графических процессоров сопоставима с реализациями на голом железе. В недавнем обновлении разработчик отключил балансировщик нагрузки vMotion и добавил поддержку технологии DirectPath I/O, которая связывает драйвер CUDA с ВМ в обход гипервизора и ускоряет передачу данных.
Nvidia тоже старается соответствовать ожиданиям рынка, и для этого выпустила opensource-платформу Rapids. Решение объединяет несколько библиотек для работы с архитектурой CUDA, что упрощает работу с данными во время тренировки нейросетей и позволяет автоматизировать работу с Python-кодом. Использование Rapids с алгоритмом машинного обучения XGBoost даёт 50-кратное увеличение производительности по сравнению с системами на базе CPU.
Своя технология есть и у AMD. Платформа называется ROCm. Она использует технологию SR-IOV, которая делит аппаратные возможности физического устройства между несколькими виртуальными машинами. Ресурсы одного ускорителя можно разделить между шестнадцатью пользователями, поддерживая равную производительность для каждого из них. Таким образом ускоряется передача данных между облачными CPU и GPU.
Также используется специальный диалект C++ под названием HIP, который упрощает выполнение математических операций на GPU.
Intel строит свою технологию базе кросс-платформенного гипервизора Citrix XenServer 7, который в 2017 году получил сертификат соответствия ФСТЭК. Решение объединяет работу стандартного GPU-драйвера и виртуальной машины. То есть «виртуалка» может поддерживать работу тяжёлых приложений на устройствах большого (несколько сотен) количества пользователей.
Рыночные перспективы
Независимые аналитики считают, что объём продаж решений для HPC-систем достигнет 45 млрд долларов к 2022 году. Разработчики платформ также ожидают увеличения спроса на высокопроизводительные системы. Это ожидание подкрепляется популярностью Big Data и часто возникающей необходимостью обрабатывать крупные объёмы данных.
Также рост спроса на vGPU может стимулировать развитие гибридных технологий, объединяющих GPU и CPU в одном устройстве. В таких интегрированных решениях два вида ядер используют общий кэш, что ускоряет перенос данных между графическими и традиционными процессорами.
Гибриды в корне изменить подход к виртуализации и распределению виртуальных ресурсов в рамках дата-центров. А решения с открытым исходным кодом наподобие ROCm и Rapids позволяют операторам ЦОД эффективнее использовать вычислительные ресурсы, повышая производительность оборудования.
Есть и другое мнение. Например, что виртуальные GPU будут вытеснены оптическими чипами с фотонным кодированием данных. Такие решения уже существуют и используются для машинного обучения. Более того, они кажутся производительнее обычного GPU. Но технология ещё сыровата.
Какой можно сделать вывод? Несмотря на возможное появление аналогов, vGPU — вполне перспективное направление, способное решать большое количество задач. Но подходит оно не всем. Так что запятую в заголовке можете поставить сами.