понедельник, 28 сентября 2015 г.

Виртуализация рабочих станций с использованием платформы NVIDIA GRID

Индустрия проектирования, дизайна и визуализации интенсивно выходит в облака. Сейчас ни кого не удивить словосочетанием "посчитаем и сохраним в облаке", а для многих проектных организаций и дизайнерских бюро это дает большие возможности в экономии средств и развертывании IT-инфраструктуры и привлечения работников с внешней стороны (аутсорсинг).
Одним из серьезных препятствий применения виртуализации в проектировании предыдущих лет являлся вывод в облака высокопроизводительных рабочих станций используемых для проектирования в пакетах CAD и DCC. В первую очередь это было обусловлено отсутствием соответствующего оборудования, особенно графических процессоров (GPU) которые так необходимы в работе с ресурсоемкими CAD и DCC приложениями. В 2012 году компания NVIDIA выпустила первые продукты линейки GRID ориентированные на применение в виртуальных средах и предназначенные для виртуализации рабочих станций. К NVIDIA подключились такие известные компании разработчики платформ и инструментов виртуализации, как Citrix, VMware, Microsoft и за три года представили рынку комплексные решения для виртуализации с поддержкой GPU и Виртуализированных GPU (vGPU). Затем к новому направлению стали присоединяться разработчики прикладных приложений, такие как Autodesk, Adobe и другие. Стали разрабатываться новые модели лицензирования по подписке и выполняться оптимизация приложений и лицензий под применение в виртуальных средах.
В представленной вашему вниманию статье рассматриваются основные принципы виртуальных рабочих станций, какие возможности получают пользователи при использовании виртуализации с поддержкой полноценных вычислений на GPU. Как ведут себя профессиональные графические приложения, и какие возможности графических подсистем поддерживаются при работе на виртуальной рабочей станции.
Материал подготовлен при поддержке компании FORSITE любезно предоставившей тестовую платформу с несколькими виртуальными машинами в различных конфигурациях, а также всю необходимую информацию по виртуализации рабочих станций с поддержкой полноценного ускорения графики.


GPU NVIDIA GRID K1 и K2
Основная задача графических ускорителей NVIDIA GRID заключается в предоставлении высокой производительности графики в работе с ресурсоемкими приложениями требовательными к графическим вычислениям напрямую в виртуальной среде. Компания NVIDIA предлагает две модели графических процессоров линейки GRID, – K1 и K2. В ряде случаев могут быть использованы графические ускорители линейки NVIDIA Quadro, но решения Quadro не предназначены для установки в сервера и не позволяют обеспечить необходимую для задач виртуализации плотность, а также существует необходимость в большом количестве таких ускорителей.

GPU NVIDIA GRID K2
Рассмотрим основные характеристики решений K1 и K2. Так как графические ускорители линейки GRID должны быть установлены в сервера их корпус, и система охлаждения значительно оптимизированы, обеспечивая хорошее охлаждение графическим чипам и памяти при интенсивной нагрузке. В моделях K1 и K2 лежат графические чипы на основе архитектуры NVIDIA Kepler. Чип GK107 используется в модели K1, а чип GK104 в модели K2. Модель K1 ориентирована на применение в виртуализации рабочих столов и приложений, не требующих высокой производительности от графической подсистемы, но в то же время, когда необходимо развернуть виртуальные машины для множества пользователей, в данной модели используется 4Гб графической памяти на каждый из четырех GPU. В то же время модель K2 ориентирована на более требовательные к графическим вычислениям приложения, такие как пакеты CAD и DCC. В данной модели используются более производительные GPU и быстрая память, для каждого из них также выделено по 4Гб графической памяти стандарта GDDR5.
В таблице 1.1 приведены основные технические характеристики GPU NVIDIA GRID K1 и K2.
NVIDIA GRID K1
Чип                                   4 × GK107
Частота ядра                    850 MHz
Частота памяти                891 MHz
Ядра NVIDIA CUDA      768 (192 на GPU)
Объем памяти                  16 GB (4 GB на GPU)
Шина памяти                   128-bit DDR3
Конфигурация памяти    32 блока по 256M × 16 DDR3
Коннекторы дисплеев     Нет
Питание                           1x 6-pin PCI Express коннектор
Общая мощность платы 130 W

NVIDIA GRID K2
Чип                                   2 × GK104
Частота ядра                    745 MHz
Частота памяти                2.5 GHz
Ядра NVIDIA CUDA      3072 (1536 на GPU)
Объем памяти                  8 GB (4 GB на GPU)
Шина памяти                   256-bit GDDR5
Конфигурация памяти    32 блока по 128M × 16 GDDR5 SDRAM
Коннекторы дисплеев     Нет
Питание                            1x 8-pin PCI Express power connector[1]
                                           1x 6-pin PCI Express power connector
Общая мощность платы  225 W

Поддерживаемые решения виртуализации
Citrix XenServer с NVIDIA GRID Hypervisor + XenDesktop с HDX
Windows Server 2012 + RemoteFX
Windows Server 2008 R2 + RemoteFX
VMware ESXi + View с vSGA
Citrix XenServer + XenDesktop с HDX 3D Pro
[1] - В зависимости от модели: 699-52055-0010-000: Airflow intake from bracket или 699-52055-0020-000: Airflow exhaust to bracket
Таблица 1.1. Конфигурация плат NVIDIA GRID K1 и K2.
Если принимать во внимание фактор потребления энергии, то графический ускоритель K1 будет выгоднее по сравнению с более производительным ускорителем K2. При том же на модели K1 можно развернуть больше виртуальных машин и предоставить возможности использования производительной графики большему количеству пользователей. Но для решения более сложных задач (проектирование, 3D анимация, визуализация) все же необходимо прибегнуть к применению производительной модели K2 и разработать надежное питание энергией между всеми элементами системы.
Виртуализация рабочих столов и vGPU
Перед тем как мы перейдем к практическим экспериментам и демонстрации работы технологии в реальных приложениях, необходимо разобраться с теоретическими аспектами виртуализации рабочих столов и GPU, а так же в том, как организован сервер с NVIDIA GRID управляемый решениями Citrix.
Терминология
В данной статье мы рассматриваем виртуализацию рабочих столов, где выполняются основные приложения, предоставляя пользователям возможности полноценной рабочей станции с помощью удаленного подключения. В данном подразделе вы познакомитесь с основной терминологией.
  • Citrix Receiver – Легковесное приложение которое запускается на Windows, Mac, Linux, iOS, Android и Windows Phone устройстве пользователя и соединяется с виртуальной машиной в дата-центре на которой установлен Citrix XenDesktop.
  • Citrix XenDesktop – Продукт виртуализации рабочих столов от Citrix предоставляющий пользователю доступ к удаленному рабочему столу.
  • Citrix XenServer – Коммерческий гипервизор от Citrix который позволяет запускать множество операционных систем на одном серверном узле.
  • Выделенный GPU (Dedicated GPU) – решение, где GPU полностью используется виртуальной машиной не распределяясь между другими виртуальными машинами.
  • GPU Pass-Through – технология которая связывает виртуальную машину с GPU. Эта технология разработана NVIDIA и известна как NMOS (NVIDIA Multi-OS). Она позволяет каждой операционной системе выполняемой на сервере виртуализации напрямую использовать все возможности физического GPU.
  • Хост (Host Machine) – компьютер на котором установлен гипервизор и запущена одна или несколько виртуальных машин и являющийся хостом. Каждая из виртуальных машин называется гостевой машиной. Гипервизор предоставляет гостевым операционным системам виртуальную операционную платформу и управляет выполнением гостевых операционных систем.
  • Гипервизор (Hypervisor) – технологически гипервизор или менеджер виртуальных машин (VMM) является частью программного обеспечения, прошивка или оборудование которого создают и запускают виртуальные машины.
  • Удаленная рабочая станция (Remote Workstation) – единица рабочей станции, которая запускается в дата-центре и перенаправляется через сеть на клиентское устройство. Удаленная рабочая станция может быть доступна как из офиса пользователя, так и может быть доступна со стороны партнерского портала, в путешествии или из дома пользователя.
  • Виртуальная машина (Virtual Machine) – единица операционной системы, которая запускается поверх гипервизора, используя абстрактный образ оборудования реализуемым гипервизором.
  • Виртуализация (Virtualization) – практика абстракции виртуальной машины из физического оборудования, на котором она выполняется. На практике виртуализация используется для запуска виртуальных машин на одном физическом сервере (оборудовании).
  • Инфраструктура виртуальных рабочих столов (Virtual Desktop Infrastructure (VDI)) – практика размещения операционной системы на виртуальной машине в централизованном или удаленном сервере.
  • Виртуализация оборудования (Hardware Virtualization) – создание виртуальной машины, которая действует подобно реальному оборудованию поверх гипервизора или как поднабор оборудования. Программное обеспечение выполняемое на таких виртуальных машинах, работает поверх ресурсов физического оборудования (т.е. операционная система может загружать родные для оборудования драйверы и взаимодействовать с ними напрямую).
  • Аппаратно-виртуализированный GPU (Hardware Virtualized GPU) – платы K1 и K2 на основе чипов архитектуры NVIDIA Kepler позволяют множеству пользователей использовать возможности одного GPU и предоставляют каждому пользователю прямой доступ к "железному" GPU. Это увеличивает плотность пользователей, предоставляя им реальную производительность и совместимость.
  • Программная виртуализация (Software Virtualization) – программная виртуализация обеспечивает интерфейс между оборудованием и виртуальной машиной, создавая плотную адаптацию между различными уровнями конфигураций оборудования. На практике программы действуют аналогично аппаратным ресурсам, пропуская команды к гипервизору, который может выполнять их на реальном оборудовании или эмулируемом оборудовании.
  • Виртуальный GPU NVIDIA GRID (NVIDIA GRID vGPU) – ключевая технология, используемая для реализации виртуализации GPU. Это позволяет множеству виртуальных машин взаимодействовать напрямую с GPU. Система GRID Virtual GPU управляет ресурсами GPU которые позволяют множеству пользователей распределять возможности основного оборудования увеличивая плотность и формировать возможности полноценных PC в облаке.
Как вы можете заметить, ключевые технологии достаточно просты в понимании их назначения. Но как же реализуется инфраструктура сервера виртуальных машин на базе гипервизора Citrix XenServer и NVIDIA GRID? Для демонстрации инфраструктуры в данной статье мы приведем два примера; первый для решения VDI на основе GPU Pass-Through, а второй для VDI на основе vGPU.
NVIDIA CUDA и vGPU важная особенность
Если вы планируете использовать приложения, активно использующие GPU для ускорения вычислений, вам стоит обратить внимание на важную особенность. Технология виртуализированных GPU (vGPU) не поддерживает NVIDIA CUDA, OpenCL и Direct Compute. Это технологическая особенность присущая технологии вычислений общего назначения на GPU. Для обхода данной особенности необходимо использовать Dedicated GPU с технологией GPU Pass-Through. Это позволяет напрямую выполнять обращение из виртуальной машины к графическому процессору и "пробрасывать" GPU-accelerated приложения из виртуальной среды на реальное оборудование. При использовании vGPU вам доступны только графические API, такие как OpenGL и DirectX.
В таблице 1.2 приведены приложения, графические подсистемы которых поддерживают vGPU и функциональные ограничения, вызванные описанной выше особенностью.

Таблица 1.2. Поддержка vGPU со стороны приложений и ограниченные возможности.
Можем ли мы использовать NVIDIA Tesla совместно с NVIDIA GRID и Citrix?
Здесь существует еще одна особенность реализации технологии. На текущий момент гипервизор от Citrix и реализация управляющего драйвера NVIDIA GRID для Citrix XenServer не позволяют "пробрасывать" несколько GPU в одну виртуальную машину. Поэтому вы можете использовать только NVIDIA GRID в режиме GPU Pass-Through или исключить обработку OpenGL и DirectX на аппаратном уровне, а NVIDIA Tesla "пробросить" в виртуальную среду для вычислений CUDA-приложений.
Если же у вас используются не требовательные к графической подсистеме приложения или приложения, обладающие программным драйвером визуализации виртуального пространства, например Autodesk 3ds Max с драйвером Nitrous (Software), трюк с "пробросом" NVIDIA Tesla может сработать. Тогда вы получаете возможность выполнения вычислений на GPU с помощью NVIDIA CUDA, OpenCL и Direct Compute, а трехмерная сцена или модель, будут обрабатываться силами центрального процессора.
Инфраструктура виртуальных рабочих столов (VDI) с Dedicated GPU
Данная концепция носит имя Виртуальные удаленные рабочие станции (Virtual Remote Workstations) или VDI with Dedicated GPU. В данную концепцию входит предоставление неограниченных в функциях виртуальных рабочих мест с высокой производительностью свойственной персональным высокопроизводительным рабочим станциям применяемых инженерами или художниками для работы с комплексными моделями и большими массивами данных.
Общая схема реализации элементов Virtual Remote Workstation.
В виртуальных рабочих станциях каждый из установленных в NVIDIA GRID K1 и K2 графических чипов целиком выделяется под виртуальную машину. Операционная система в виртуальной среде видит графический ускоритель и задействует его аналогично тому, как это реализовано в персональной рабочей станции. Такой подход позволяет использовать ключевые возможности современных графических ускорителей от NVIDIA и поддерживает не только API OpenGL или DirectX, но также позволяет выполнять вычисления общего назначения на GPU с помощью NVIDIA CUDA, OpenCL и Direct Compute. При этом выделенная под каждый из GPU память будет доступна в максимальном объеме (4 Гб на GPU).
Если планируется использовать такие приложения как Autodesk Maya 2016, Autodesk 3ds Max 2016 с NVIDIA iray renderer и V-Ray RT GPU, а так же приложения для вычислений физических моделей, поддерживающие вычисления на GPU, данный тип виртуальных рабочих столов будет наиболее подходящим.
Но у данного типа есть одно существенное ограничение. Оно заключается в том, что мы не можем использовать множество виртуальных машин и распределять каждый из GPU на плате GRID под несколько виртуальных машин. Это обусловлено описанной выше важной особенностью, – поддержкой технологии NVIDIA CUDA и других API для вычислений общего назначения на GPU.
Инфраструктура виртуальных рабочих столов (VDI) с vGPU
Вторая концепция ориентирована на развертывание нескольких виртуальных машин на каждом из GPU. Она позволяет профессиональным пользователям использовать ресурсоемкие графические приложения, требовательные к графической подсистеме (OpenGL, DirectX) без значительного снижения производительности и качества визуализации изображения и виртуального пространства. Это актуально в таких областях как проектирование в CAD и моделирование или анимация в DCC приложениях несколькими пользователями.
Общая схема реализации элементов VDI с vGPU.
На рисунке выше приведена общая диаграмма для четырех виртуальных машин выполняемых на сервере с NVIDIA GRID K2, где каждый из GPU работает с двумя виртуальными машинами. За управление распределением ресурсов GPU отвечает специальная система управления NVIDIA GRID установленная на Citrix XenServer.
Как уже было сказано выше, у данной концепции есть одно существенное ограничение. Оно заключается в том, что нельзя использовать CUDA приложения. Например, такие решения для визуализации как NVIDIA iray и V-Ray RT будут доступны только в режиме работы на центральном процессоре (CPU).
Эту особенность можно обойти следующим образом: вывести все вычисления на GPU в отдельный узел. Это может быть отдельный сервер с GPU линейки NVIDIA Tesla или это может быть комплексное решение в виде NVIDIA Quadro VCA. Это специальное серверное решение, которое обеспечивает высокую производительность в таких инструментах визуализации, как NVIDIA iray и V-Ray RT GPU или других решениях использующих NVIDIA CUDA. При соответствующей конфигурации прикладного программного обеспечения можно вынести вычисления из виртуальной среды на отдельные узлы и снизить нагрузку на сервер виртуализации.
Сколько виртуальных машин и пользователей поддерживаются NVIDIA GRID?
Так как мы рассматриваем две концепции реализации GPU в виртуальной среде, в данном подразделе представлены сведения о том, сколько виртуальных машин может быть развернуто на каждом из GPU и для каких задач они могут быть использованы.

Таблица 1.3. Количество виртуальных машин и пользователей для VDI with vGPU и VDI with Dedicated GPU.
Каждый из физических GPU способен работать одновременно с 8 виртуальными машинами. Но при развертывании необходимо отталкиваться от выполняемых задач. Например, если вы хотите использовать все возможности графических ускорителей, не только обработку графических API, но и вычисления, то тогда вам будет доступно только по одному GPU на каждую виртуальную машину.
Также имеется зависимость объемов памяти от выбранного типа vGPU и количества пользователей. При настройке Citrix XenServer вам будут доступны заранее подготовленные модели vGPU с фиксированным объемом памяти (таблица 1.4).

Таблица 1.4. Типы vGPU, количество возможных vGPU на одной плате GRID, разрешение и объем памяти.
Как вы можете заметить из приведенной выше таблицы, каждый физический GPU может быть подразделен на несколько vGPU со значением кратным двум. При этом в виртуальных машинах необходимо выбирать единый профиль vGPU. А на каждом из физических GPU можно использовать профили vGPU разных типов, например на GPU 0 можно развернуть четыре виртуальные машины с профилем GRID K240Q, а на GPU 1 можно развернуть две виртуальные машины с профилем GRID K260Q. Это обусловлено технологическими решениями и распределением памяти между виртуальными машинами и пользователями. Также хочется обратить ваше внимание на литеру Q в большинстве профилей. Профили Q предоставляют виртуальной рабочей станции богатые возможности в конфигурации и возможностях драйвера аналогично драйверу для графических ускорителей линейки NVIDIA Quadro. К ним относится гибкая настройка дисплеев, поддержка профилей для профессиональных приложений CAD и DCC, а так же оптимизации производительности в работе с ресурсоемкими 3D моделями и большим объемом данных (высоко-полигональные модели, большое количество линий, высококачественные текстуры). Профиль без литеры Q обеспечивает пользователей возможностями присущими профессиональным графическим ускорителям NVIDIA NVS, которые наиболее востребованы в таких областях, как финансы и отображение большого количества 2D графики.
Распределение профилей vGPU на двух физических GPU платы NVIDIA GRID K2
Профили позволяют создавать виртуальные машины для решения различных задач менее или более требовательных к объемам графической памяти. В режиме GPU Pass-trough виртуальной машине будет выделен весь объем памяти GPU равный 4 Гб. В целом, чем больше vGPU будет создано, тем больше пользователей может быть подключено к виртуальной инфраструктуре с высокой производительностью, что существенно облегчает локальное управление ресурсами. Но помните, что чем больше пользователей мы хотим разместить на одном GPU, тем меньший объем памяти можно выделить под каждую виртуальную машину.
Категории пользователей для NVIDIA GRID и их назначение
Разработчики NVIDIA GRID заранее продумывали назначение различных типов профилей vGPU, и в каких задачах они будут применяться. Существует множество различных задач с различными требованиями к вычислительным мощностям оборудования. Где-то может потребоваться не очень большой объем памяти и производительность графики, а где-то наоборот необходим полный доступ ко всему GPU и памяти для работы с большими массивами данных.

Таблица 1.5. Категории пользователей в зависимости от типа vGPU.
В приведенной выше таблице вы можете определить тип виртуального GPU и категорию пользователя, которой он может быть назначен. Это один из важных моментов, которые необходимо соблюдать при создании виртуальных рабочих станций. В зависимости от того какой тип vGPU будет выбран и какой объем памяти будет отведен, можно распределить пользователей и их задачи.
  • Категория Designer представляет собой традиционного пользователя GPU линейки NVIDIA Quadro, данный пользователь создает и работает с комплексными наборами данных, используя интерактивные графические приложения (для 3D проектирования, медицинской диагностики и другие). Данная категория пользователя может быть использована в таких индустриях как Нефтяная и газовая промышленность, Машиностроение и производство, Индустрия развлечений, Медицинский анализ и исследования и др. Обычно пользователи данной категории работают с такими приложениями, как: Autodesk AutoCAD, Autodesk Revit, Autodesk Inventor, Autodesk 3ds Max, Autodesk Maya, Dassault Systems CATIA, SolidWorks, Enovia, Siemens NX.
  • Категория Power User представляет собой пользователя использующего визуальные данные, такие как 3D изображения, 2D графики и диаграммы. К данной категории пользователей также можно отнести тех, кто пытался применять виртуализацию рабочих столов без ускорения графических приложений со стороны GPU и не был удовлетворен производительностью. Конечно вы так же можете использовать эту категорию пользователя для работы с полноценными 3D приложениями, когда проектировщики или дизайнеры выполняют работу над отдельными объектами или элементами сцены, производительности vGPU и объемов памяти отводимых для них будет вполне достаточно для решения большинства задач.
  • Категория Knowledge Worker представляет собой типичного офисного сотрудника, который использует офисные приложения, электронную почту, видеоконференции и мультимедийные интернет приложения. В контексте данной статьи эта категория пользователей не будет рассматриваться, так как она наименее выгодна с точки зрения анализа производительности графической подсистемы, а офисные приложения не обладают высокими требования к высокопроизводительной графике.
Наиболее интересными в плане исследования производительности и реализации технологий являются пользователи категорий Designer и Power User. В принципе большинство CAD и DCC приложений могут работать как с физическим GPU, так и vGPU. Это обусловлено тем, что графические ядра программ в основном используют API OpenGL или DirectX, а такие возможности как вычисления общего назначения представлены в узком спектре задач.
Организация инфраструктуры для VDI
Рассмотрев основные решения NVIDIA GRID и теорию виртуализации на основе Citrix XenServer, мы перейдем к самому важному разделу данной статьи, – организации инфраструктуры для работы с VDI. Главная задача, которую решают системы виртуализации, – консолидация данных и рабочих мест в одном месте. В сложных проектах очень важно сохранять целостность данных и в то же время не рисковать, отдавая важную информацию в третьи руки. Ранее это условие было применимо только в задачах связанных с офисом и бизнесом в целом, например развертывание информационной системы на основе виртуализации для банков или торговых предприятий. Но с появлением NVIDIA GRID данную возможность получили такие направления как машиностроение, архитектура, медицина, газовая и нефтяная промышленность, дизайн и развлечения. А современные художники и дизайнеры теперь на самом деле могут работать из любой точки мира и не беспокоиться за свои проекты и данные, ведь всю инфраструктуру можно содержать в хорошо оборудованном и надежном дата-центре.
С другой стороны вы можете без проблем устраивать встречи со своими заказчиками и демонстрировать свои работы или текущее состояние проекта прямо на планшете или легком ноутбуке, подключив их к телевизору или проектору. Помимо этого заказчикам можно предоставлять доступ к специально созданной для них виртуальной машине, где они могут выполнять задачи по рецензированию проекта, вносить замечания и работать через единую систему управления проектами, используемую в вашей компании.
"Мне как автору этой статьи уже не раз доводилось работать с удаленными рабочими станциями и удаленными рабочими столами. В нескольких проектах я использовал данные решения для увеличения производительности в вычислениях и визуализации". – Говорит Дмитрий Чехлов, автор статьи, художник по освещению и затенению. "Пока на своем персональном компьютере я создавал модель и делал базовые настройки визуализации, финальный образ вычислялся на удаленном высокопроизводительном сервере с виртуальными машинами и NVIDIA GRID. При этом, это дало возможность осуществить несколько поездок, практически не отрываясь от работы".
Конечно, если мы говорим об инфраструктуре для предприятия, например проектного бюро или студии, важно понимать, что виртуальные машины сами по себе работать не будут, а пользователи должны быть управляемы через единую систему. Решения Citrix тесно интегрируются в серверные решения Microsoft и активно используют возможности операционных систем семейства Windows, а также решения на основе Active Directory (AD). Для полноценной реализации инфраструктуры системным администраторам необходимо развернуть сервер AD, который будет управлять пользователями в виртуальной среде. Ведь мы можем добавлять или удалять пользователя, изменять виртуальную машину и многое другое, что требует четкого понимания в организации инфраструктуры клиент-сервер и управления пользователями.
Для хранения образов систем, данных проектов, всех необходимых материалов необходимо также позаботиться о системе NAS, которая будет обеспечивать бесперебойную работу и сохранит данные в целостности, без рисков, возникающих при передаче третьим лицам и новым сотрудникам, нанятым на время проекта или определённого этапа, но работающим с "внешней стороны".

Комплексное решение компании FORSITE на основе NVIDIA GRID.
Здесь мы рассмотрим пример комплексного решения, предоставляемого компанией FORSITE и опробованного автором лично в процессе работы над статьей. На практике это комплексное решение может быть использовано как в небольшой компании (проектном бюро или студии), так и являться частью большой инфраструктуры в дата-центре крупной корпорации. Так как сервера с графическими ускорителями NVIDIA GRID обладают гибкой конфигурацией, подобрать наиболее подходящее решение не составляет труда.
На диаграмме выше приведен пример реализации данного решения. Ключевыми компонентами являются сервера с GPU NVIDIA GRID, именно на них выполняются все виртуальные машины с пользователями или виртуализированными приложениями. Для хранения данных используется независимый NAS, а для управления серверами предоставляется KVM-консоль. Выше мы упоминали о том, что для вычислений можно использовать отдельные серверные узлы. В приведенном выше примере, предусмотрена возможность установки отдельных вычислительных серверов, благодаря чему можно разгрузить сервера виртуализации, если дизайнеры или проектировщики занимаются интенсивными вычислениями, например визуализацией и моделированием физических явлений.
Какие устройства могут быть использованы со стороны пользователя?
Так как виртуализация основана на том принципе, что все клиенты подключаются к виртуальной среде с помощью удаленного подключения, устройством клиентом может выступать любой компьютер планшет и даже смартфон. Приложение Citrix Receiver подключается к отдельной виртуальной машине и получает изображение со стороны сервера, которое формируется и направляется в сеть с помощью XenDesktop или XenApp. Специальные решения в виде XenDesktop или XenApp является важной частью всей системы. Без них вы просто не сможете получить доступ к виртуальной машине. Если вам необходимо выполнить обмен данными со своей рабочей станцией или загрузить новые файлы в виртуальную машину, XenDesktop и Citrix Receiver могут подключать ваши жесткие диски к виртуальной машине, а файлы между ними будут перемещаться, как будто они скопированы с одного жесткого диска на другой.

Диалоговое окно запроса доступа к жестким дискам локального компьютера\устройства.
Мы рассмотрели основную концепцию виртуализации рабочих станций и технологий, используемых в NVIDIA GRID и решениях Citrix. Но как же это работает на самом деле; неужели приложения могут быстро обрабатывать большие массивы данных или просто без снижения производительности, моментально визуализировать окна проекций и виртуальное пространство сцены?
NVIDIA GRID, vGPU, Dedicated GPU и платформа Citrix в примерах
Для демонстрации работы технологии виртуализации GPU совместно с компанией FORSITE был создан сервер виртуализации с NVIDIA GRID K2 и двумя виртуальными машинами. Для тестирования были взяты такие известные CAD и DCC приложения, как Autodesk AutoCAD, Autodesk Revit, Bentley MicroStation, Autodesk 3ds Max, Autodesk Maya и Adobe Photoshop CC. Также мы провели несколько синтетических тестов на основе SPEC Viewperf 11 и Maxon Cinebench 15.
Синтетический тест SPEC Viewperf 11
Бесспорно, синтетический тест от SPEC для тестирования производительности графической подсистемы является одним из старейших инструментов анализа. Мы часто обращаемся к нему для сравнения производительности графической подсистемы различных физических рабочих станций, но для того чтобы сравнивать виртуальные рабочие станции, это впервые. За основу взят проверенный годами тест SPEC Viewperf 11 запущенный без сглаживания (AA off) и со сглаживанием (AA on).
В тестах принимали участие две настольных рабочих станции HP Z1 Gen 2 с NVIDIA Quadro K3100M и FORSITE X1240Q с NVIDIA Quadro K2000. А также мобильная рабочая станция FUJITSU Celsius H720 с мобильным графическим процессором NVIDIA Quadro K1000M. В таблице ниже приведены основные характеристики каждого из участвовавших в тесте графических процессоров.

Таблица 1.6. Технические характеристики участвовавших в тесте графических процессоров.
В виртуальных машинах тест выполнялся как на vGPU основанном на профиле GRID K240Q, так и на полноценном GPU NVIDIA GRID K2 работающем в режиме GPU Pass-trough. В приведенных ниже результатах тестирования вы можете сравнить частоты кадров тестов, чем выше значение, тем лучше.

Результат теста SPEC Viewperf 11 без сглаживания (AA off).
Как известно сглаживание геометрии и сетки потребляет достаточно много ресурсов независимо от того игровое приложение или профессиональное. Графический процессор всегда будет использоваться для обработки множества линий и граней. Зачастую для повышения производительности можно просто отключить аппаратное сглаживание, но в ряде случаев это может дать визуально неприемлемый результат аппаратной визуализации. В приведенной выше диаграмме наглядно показана производительность между всеми GPU использованными в тестах. В первом проходе, режим сглаживания во Viewperf был отключен полностью. Виртуальный графический ускоритель K240Q продемонстрировал очень интересный результат в двух тестах. Тест Siemens NX (snx-01) показал, что vGPU может работать гораздо быстрее, чем физические графические процессоры, продемонстрировав наибольший результат. Второй тест, показавший хороший результат, реализует возможности графического ядра пакета EnSight, CSM и CFD системы.
Тест, на основе ядра Pro/Engineer (proe-05), ныне именуемого как PTC Creo, продемонстрировал достаточно интересный и самый низкий результат, не превзойдя даже мобильный GPU NVIDIA Quadro K1000M. Такой же результат продемонстрировал тест maya-03, идя в ровню с результатом теста на мобильном GPU.
По результату теста без сглаживания практически все основные CAD пакеты продемонстрировали высокую скорость работы на vGPU NVIDIA GRID. Это достаточно хороший показатель для синтетического теста, выполненного в виртуальной среде.

Результат теста SPEC Viewperf 11 с 4x сглаживанием (4x AA on).
Второй тест заключался в активизации четырехкратного сглаживания сетки и геометрии и выполнялся в тех же условиях что и тест без сглаживания. Этот тест продемонстрировал более реальные значения и показал основные изменения в скорости между vGPU, GPU Pass-trough и полноценными дискретными графическими ускорителями. Лидером теста оказалась NVIDIA Quadro K3100M используемая в рабочей станции HP Z1, превзойдя все остальные графические процессоры по производительности. За ней следовал GPU NVIDIA Quadro K2000 установленный в рабочей станции X1240Q от компании FORSITE.
Интересный результат продемонстрировал тест Siemens NX (snx-01), когда производительность виртуального графического процессора оказалась выше производительности физического графического процессора установленного в HP Z1. Остальные тесты продемонстрировали закономерное снижение производительности и частоты кадров за счет активизации режима сглаживания.
Но мы говорим о виртуализации, когда система виртуализации старается распределить нагрузку со стороны большого количества пользователей, интенсивно обращающихся к ней. И здесь нельзя оценивать только один графический процессор. Мы специально провели небольшой эксперимент и запустили тест SPEC Viewperf одновременно на двух виртуальных машинах.
Результат теста SPEC Viewperf запущенного одновременно на двух виртуальных машинах с NVIDIA GRID K240Q.
Результат меня немного поразил. Система управления NVIDIA GRID, установленная в гипервизор XenServer, равномерно распределила вычисления между двумя виртуальными машинами развернутыми на одном физическом GPU. Конечно, синтетический тест не может показать всей реальной картины, но он превосходно демонстрирует возможности современных решений виртуализации и виртуальных графических процессоров которые могут равномерно распределить нагрузки и предоставить высокую производительность в работе пользователя. В некоторых тестах различия составляли 1 или 2 кадра, что не так критично в обычных действиях пользователя при навигации в виртуальными пространстве. Группа профессиональных дизайнеров может комфортно работать с двумя или даже четырьмя виртуальными машинами и виртуальными GPU.
Синтетический тест CINEBENCH R15

Тест Cinebench от компании Maxon представляющий работу графического ядра и ядра визуализации пакета Cinema4D продемонстрировал аналогичный результат в тестах на производительность графического ускорителя. Каждый из vGPU в обеих виртуальных машинах выдал идентичный результат в 64 кадра в секунду для графического ядра теста. С другой стороны, тест, выполненный на полноценном GPU (GPU Pass-trough) выполнялся гораздо быстрее, так как в данной конфигурации приложению был отдан весь графический процессор, "пробрасываемый" напрямую в виртуальную машину.
Тест Cadalyst 2015 v.5.5
Набор тестов Cadalyst специально разработан для тестирования работы всей системы на основе платформы Autodesk AutoCAD. Тесты выполняются напрямую в системе проектирования и предоставляют более взвешенный результат работы на основании реального приложения. В нашем тестировании мы использовали систему автоматизированного проектирования Autodesk AutoCAD 2016 и тест Cadalyst 2015 версии 5.5.
Результат теста Cadalyst в AutoCAD 2016 выполненного на виртуальной рабочей станции с vGPU.
Одним из важных тестов который мы выполняли, являлась одновременная работа AutoCAD в двух одновременно запущенных виртуальных машинах. На приведенной ниже диаграмме продемонстрирован пример производительности AutoCAD при выполнении теста на операции с 3D моделями и видами и 2D чертежами.
Сравнение производительности двух vGPU K240Q в тесте Cadalyst 2015 v.5.5
Как и в синтетическом тесте от SPEC две одновременно запущенные виртуальные машины с одновременно выполняющимся тестом Cadalyst в AutoCAD 2016 в тесте производительности графической подсистемы с 3D моделями показали схожий результат, в нем нагрузка на GPU была равномерно распределена между двумя виртуальными системами.
Тест графической подсистемы при работе с 2D чертежами продемонстрировал иной результат. Здесь же производительность отличается от работы с 3D пространством, но при этом сам результат незначительно расходится между двумя виртуальными системами. Данные тесты показывают, как платформа NVIDIA GRID может распределить нагрузку при возможных условиях эксплуатации.
Примеры работы реальных приложений на vGPU
Самым важным этапом в нашем исследовании являлась проверка работы в реальных приложениях и возможности виртуальных GPU, как поведет себя приложение в работе с vGPU и какая производительность будет доступна конечному пользователю.
Для эксперимента мы взяли три известных CAD приложения и два известных DCC приложения. В то время как в процессе работы с CAD нам важна поддержка больших объемов памяти для хранения всей необходимой информации о модели, а GPU старается все данные визуализировать в процессе навигации по модели, то в DCC приложениях важна скорость интерактивной визуализации виртуального пространства сцены. Для чего зачастую прибегают к использованию высокопроизводительных GPU с большим объемом графической памяти.
Производительность навигации в приложениях CAD на vGPU
В современных системах автоматизированного проектирования работа проектировщика не сильно отличается от работы современного цифрового художника использующего трёхмерную графику для самовыражения и воплощения своих идей в жизнь. Но при этом важна точность и аккуратность линий, граней, форм, по которым впоследствии будут созданы объекты реального мира. Графический ускоритель должен быстро обрабатывать модель или большое количество линий чертежа, а также выполнять затенение трёхмерной модели.
Для эксперимента мы взяли приложения Autodesk AutoCAD, Autodesk Revit и Bentley MicroStation. Для чистоты эксперимента все действия пользователя, подключенного к виртуальной машине через Citrix Receiver, были записаны с помощью приложения для записи видео с экрана с частотой в 30 кадров в секунду, установленного прямо в виртуальной машине. Последующий монтаж видео выполнялся также на виртуальной машине.
Autodesk AutoCAD 2016 на vGPU
Система автоматизированного проектирования AutoCAD от компании Autodesk является одним из самых популярных инструментов проектировщиков во всем мире. Это одно из первых приложений, разрабатываемых с учетом перспективного направления виртуализации. Приложение AutoCAD может быть установлено на виртуальной машине и предоставляет сертификацию для Citrix или VMware.
Autodesk AutoCAD 2016 на виртуальной машине с vGPU NVIDIA GRID K240Q
Для максимальной производительности AutoCAD достаточно интенсивно использует возможности графического процессора и рекомендуется использовать сертифицированные графические ускорители. Виртуальный GPU способен полноценно работать с таким API как DirectX, что существенно облегчает процесс сертификации платформы GRID под работу с AutoCAD.
Благодаря сертификации со стороны Autodesk в процессе работы на виртуальной рабочей станции пользователь не заметит серьезных ограничений в визуализации виртуального пространства модели или чертежа, а высокая производительность GRID K2 позволяет значительно быстрее оперировать сложными моделями и чертежами, где используется огромное количество различных графических элементов.

Видео-демонстрация работы Autodesk AutoCAD 2016 на виртуальной машине с NVIDIA GRID K240Q vGPU.
Как вы можете заметить, в режиме Wireframe виртуальный графический процессор молниеносно справляется с визуализаций модели, но в то же время, при активном режиме затенения Realistic (модель интерьера), виртуальный графический процессор немного "задумывается" над визуализацией модели. Однако это не значит, что производительность значительно снизится, в зависимости от модели и детализации графическое ядро AutoCAD спокойно будет обрабатывать ее средствами vGPU. Конечно, для более требовательных к вычислительным ресурсам моделей и чертежей, может потребоваться выбрать другой профиль vGPU с большим объемом памяти, но меньшим количеством поддерживаемых виртуальных машин.
Autodesk Revit 2016 на vGPU
Пакет Autodesk Revit 2016 также предоставляет сертифицированную поддержку платформы виртуализации Citrix и может быть установлен в виртуальной машине как с vGPU, так и с GPU Pass-trough. Так как для работы с комплексными моделями зданий необходима высокая производительность графической подсистемы, Autodesk Revit использует возможности API DirectX и будет максимально задействовать вычислительные ресурсы GPU для визуализации трехмерной модели.
Autodesk Revit 2016 на виртуальной машине с vGPU NVIDIA GRID K240Q
На приведенном выше изображении можно заметить один важный момент. Хоть Revit по умолчанию не поддерживает виртуальный GPU K240Q, он все же предоставляет возможность использовать аппаратное ускорение виртуального пространства и спокойно оперирует во всех режимах затенения и представления трехмерной модели.

Видео-демонстрация работы Autodesk Revit 2016 на виртуальной машине с NVIDIA GRID K240Q vGPU.
На приведенном выше видео вы можете пронаблюдать, как работают основные инструменты программы для навигации в виртуальном пространстве, и с какой скоростью программа реагирует на действия пользователя. Если присмотреться внимательнее, то vGPU полностью выполняет визуализацию основных эффектов затенения в Revit и оперирует стилями отображения виртуального пространства.
Как и в случае с AutoCAD при разработке виртуальных машин следует опираться на то, какие пользователи будут работать с программой. Если это пользователи, которые создают только семейства или их компоненты, то для них можно создать несколько виртуальных машин с vGPU меньшей производительности и меньшим объемом памяти. В то же время, если создаются полноценные здания и их семейства, насчитывающие множество элементов и связей, тогда стоит задуматься о том чтобы создать vGPU с большим объемом памяти или применять физический графический процессор с технологией Pass-trough GPU.
Bentley MicroStation v8i на vGPU
Система автоматизированного проектирования MicroStation от компании Bentley также является одним из лидеров рынка инструментов проектирования. Аналогично системе AutoCAD она использует богатые возможности графического ядра для представления, как двумерных данных, так и комплексных трёхмерных моделей, состоящих из множества элементов. Графические процессоры играют важную роль в представлении комплексных моделей и множества данных, используемых в проекте. Чем выше производительность графической подсистемы рабочей станции, тем лучше она будут справляться с обработкой больших объемов данных и их визуализацией.
Bentley MicroStation v8i на виртуальной машине с vGPU NVIDIA GRID K240Q
Как и в случае с Revit и AutoCAD vGPU NVIDIA GRID K240Q продемонстрировал достаточно высокую скорость работы и стабильность в визуализации трехмерной модели архитектурного комплекса и двумерных чертежей.

Видео-демонстрация работы Bentley MicroStation v8i на виртуальной машине с NVIDIA GRID K240Q vGPU.
Представленное выше видео наглядно демонстрирует работу MicroStation на vGPU K240Q. Как вы можете заметить, проект с комплексной моделью может незначительно "притормаживать" на профиле vGPU с небольшим объёмом памяти, а программа активизирует режим оптимизации геометрии в процессе навигации. Это можно объяснить тем, что данный профиль vGPU предоставляет пользователю всего 1 Гб графической памяти, что не всегда соответствует задачам, связанным с обработкой комплексных моделей насчитывающих большое количество элементов в сборке.
Мы предоставили возможность протестировать NVIDIA GRID и решения от компании FORSITE на реальном проекте в системе Bentley MicroStation, специалистам компании СОИЛОТЭК | SOILOTEK (Екатеринбург), занимающейся проектированием инфраструктуры особой экономической зоны в Свердловской области.
"Опыт проектирования инфраструктуры особой экономической зоны определил ряд особенностей:
  • планы резидентов характеризуются высокой изменчивостью, в тоже время, инфраструктура должна быть подготовлена уже к запуску первого резидента, учитывать перспективных резидентов, и исключать перекладку вновь построенного в будущем;
  • над проектом работает множество территориально распределенных проектных групп - подрядчиков, географически расположенных в Москве, Санкт-Петербурге и на Урале;
    концепция, заданная проектом планировки, разрабатывается поэтапно в проектной документации для дальнейшего поэтапного строительства;
  • график поэтапного строительства динамически уточняется после защиты проектно-сметной документации соответствующих этапов строительства в государственной экспертизе, защиты бюджетной части программы строительства, уточнения текущих планов уже заявленных и потенциальных резидентов ОЭЗ;
  • структура проектной документации по своей природе является распределенной и мульти дисциплинарной; здесь требуется распределенная система обработки и хранения данных с множеством файлов и моделей, между которыми установлены ассоциативные связи, и с которыми параллельно работают несколько территориально распределенных проектных групп.
Опытное тестирование виртуальных рабочих станций c технологией NVIDIA GRID от компании FORSITE с развернутым в виртуальной среде программным обеспечением по проектированию инфраструктуры от Bentley Systems позволило консолидировать распределенные проектные данные в высокопроизводительной и защищенной системе обработки данных, локализованной на единой технологической площадке, и одновременно сохранить распределенную природу данных, разрабатываемых территориально распределенными проектными группами. Производительность виртуальных рабочих станций FORSITE CLOUD VG на базе NVIDIA GRID K2 в переводе на одно рабочее место (виртуальную машину) сопоставима с настольными рабочими станциями высокого класса, но обладает несопоставимо более высокой степенью балансировки ресурсов при выделении рабочих мест.", – Евгений Чехлов, основатель компании СОИЛОТЭК | SOILOTEK.
Производительность навигации в приложениях DCC на vGPU
Отдельного внимания заслуживают приложения для создания цифрового контента. Цифровые художники используют требовательные к вычислительным ресурсам системы инструменты. А для работы им всегда необходимо высокопроизводительное оборудование. Одним из важнейших требований современных дизайнеров к программному обеспечению является высокая скорость навигации в трёхмерном пространстве и высокая скорость обработки трехмерной сцены в процессе анимации. За навигацию и визуализацию виртуального пространства в первую очередь отвечает графический процессор, который должен обладать достаточной производительностью и объемами графической памяти для хранения и визуализации миллионов полигонов и множества текстур. Для специалистов в области M&E это являлось важным критерием, а низкая производительность решений для виртуализации и отсутствие поддержки ускорения графики значительно осложняло данный процесс. Сейчас данная проблема решена и не только специалисты CAD могут использовать возможности ускорения графики с помощью NVIDIA GRID, но и специалисты, работающие в индустрии развлечений.
Аналогично тестированию приложений CAD, мы произвели несколько тестов с такими пакетами, как Autodesk 3ds Max и Autodesk Maya, записав для вас несколько демонстрационных видео, где пакеты работают на виртуальной машине с vGPU.
Autodesk 3ds Max 2016 на vGPU и Dedicated GPU
Пакет компьютерной графики Autodesk 3ds Max является одним из самых популярных инструментов среди художников, архитекторов, разработчиков игр и визуальных эффектов для телевидения и кино. Многие инструменты, разработанные для 3ds Max, позволяют интенсивно использовать возможности графических процессоров для визуализации данных. В первую очередь это касается современного движка виртуального пространства, - Nitrous, оптимизированного для высококачественного затенения трехмерных сцен и моделей. Он использует возможности API DirectX для затенения, освещения и визуализации.
Еще один важный момент – применение инструментов, в которых используется GPU ускорение, таких как NVIDIA PhysX или NVIDIA iray. Эти решения используют технологию NVIDIA CUDA и требовательны к производительным графическим процессорам. Эти решения могут быть использованы в виртуальной машине только при наличии Dedicated GPU или выведены на отдельный сервер с NVIDIA Tesla.
Autodesk 3ds Max на виртуальной машине с vGPU NVIDIA GRID K240Q
Как и в случае с CAD системами, в 3ds Max мы создали небольшую сцену с множеством объектов и проверили работу vGPU с различными режимами отображения виртуального пространства сцены. Как оказалось, виртуальный графический процессор способен превосходно обрабатывать сцены содержащие множество объектов.

Видео-демонстрация работы Autodesk 3ds Max 2016 на виртуальной машине с NVIDIA GRID K240Q vGPU.
Но так как мы использовали профиль с небольшим объемом графической памяти навигация по сцене, и подготовка нового стиля затенения была немного замедленной. Если же запустить 3ds Max на системе где используется технология GPU Pass-trough, то данная сцена будет обрабатываться гораздо быстрее, а процесс навигации будет плавнее.

Autodesk 3ds Max на виртуальной машине с vGPU NVIDIA GRID K2 и запущенным процессом визуализации с помощью NVIDIA iray renderer.

Видео-демонстрация работы Autodesk 3ds Max 2016 на виртуальной машине с NVIDIA GRID K2 с профилем GPU Pass-trough.
Благодаря полноценному доступу к физическому графическому процессору становится возможным применение таких возможностей визуализации в видовых окнах проекций как глубина резкости и размытие движения.
Autodesk Maya 2016 на vGPU и Dedicated GPU
Пакет Autodesk Maya является одним из важнейших инструментов профессиональных художников компьютерной графики и аниматоров. За счет максимальной открытости и мощных возможностей интеграции в любые производственные процессы данное решение заслужило большую популярность среди студий и компаний выпускающих графический контент. Поддержка нескольких платформ позволяет работать в самых разнообразных окружениях и выполнять быстрое развертывание пакета для решения разнообразных задач.
Аналогично 3ds Max пакет Maya предоставляет множество возможностей интенсивно использующих графические процессоры для визуализации виртуального пространства, финальной визуализации образов и вычислений различных эффектов.
В Autodesk Maya интенсивно используются возможности API OpenGL и DirectX для визуализации виртуального пространства, а некоторые из современных технологий используют возможности графических ускорителей для ускорения вычислений общего назначения. При этом важен и объем графической памяти, в которой будут храниться текстурные карты и вспомогательные данные или кэш геометрии.
Autodesk Maya на виртуальной машине с vGPU NVIDIA GRID K240Q
Так как система аппаратной визуализации Viewport 2.0 теперь используется по умолчанию, многие из технологий доступных в Autodesk Maya теперь плотно взаимодействуют с ней для обеспечения высокой производительности в работе программы. Например, новейшая система управления цветом (Color Management System) использует возможности OpenGL и DirectX для представления цвета текстурных карт как в 8-бит и 16-бит форматах, так и в 32-бит формате с плавающей точкой.

Видео-демонстрация работы Autodesk Maya 2016 на виртуальной машине с NVIDIA GRID K240Q vGPU.
Как было сказано выше, графическое ядро любого пакета компьютерной графики, которое использует OpenGL или DirectX будет полноценно поддерживать работу в виртуальных машинах с vGPU. Виртуальный графический процессор без проблем выполняет визуализацию сцены с различными эффектами затенения и множеством текстурных карт. Но для работы Maya существенную роль играет поддержка вычислений общего назначения, когда программа обращается к GPU для ускорения вычислений. Например, новое ядро программы использует OpenCL для ускорения вычислений в процессе анимации сцены. Хоть данная функция по умолчанию отключена, но при включении она не может быть использована на виртуальном графическом процессоре, о чем будет сообщено в соответствующем сообщении в консольном окне. Так же это касается и аппаратного со-ускорения тесселяции/сглаживания геометрии с помощью технологии Open SubDiv использующей возможности GPU для многократного подразделения полигональных поверхностей, тем самым придавая ей более гладкую форму или добавляя детали в процессе применения технологии на основе карт смещения.
Отсутствие поддержки вычислений на OpenCL в виртуальной машине с vGPU NVIDIA GRID K240Q. Библиотеки OpenCL применяется в новом анимационном ядре программы Autodesk Maya 2016.
Для полноценной работы всех возможностей Autodesk Maya 2016 рекомендуется использовать NVIDIA GRID и виртуальные машины, в которых выбран режим GPU Pass-trough. Это позволяет активизировать технологии вычислений общего назначения на основе NVIDIA CUDA и OpenCL, а так же предоставляет полный доступ к графической памяти GPU.
Поддержка вычислений на OpenCL в виртуальной машине с vGPU NVIDIA GRID K2. Используется технология GPU Pass-trough
Так как мы можем напрямую обращаться к физическому графическому процессору, это предоставляет гораздо больше возможностей для профессиональных пользователей и разработчиков программного обеспечения нацеленного на применение в виртуальной среде. Благодаря доступу к инструментам мониторинга нагрузки на GPU мы можем анализировать использование ресурсов графического ускорителя и впоследствии лучше распределять задачи между пользователями и нагрузку на виртуальные машины.

Видео-демонстрация работы Autodesk Maya 2016 на виртуальной машине с NVIDIA GRID K2 с профилем GPU Pass-trough.
Из приведенного выше видео вы можете заметить, что работа в виртуальной машине с прямым доступом к физическому GPU принципиально не отличается от работы с полноценной рабочей станцией. Практически все основные возможности Maya Viewport 2.0 могут быть использованы в полном объеме. Это предоставляет большие возможности CG художникам и дизайнерам, желающим работать удаленно как с моделями и сценами, так и с анимацией.
Adobe Photoshop CC 2015 на vGPU
Редактор растровой графики Adobe Photoshop за последнее десятилетие приобрел множество возможностей использующих вычислительную мощность графических процессоров. Одной из первых задач, ставившихся перед разработчиками, является обеспечение плавной навигации по холсту и быстрая визуализация растрового изображения. Начиная с Adobe Photoshop CS4, программа получила обновлённое графическое ядро, поддержку трехмерного пространства и поддержку ускорения со стороны GPU в различных инструментах, таких как инструменты навигации, фильтры и эффекты.

Adobe Photoshop CC на виртуальной машине с vGPU NVIDIA GRID K240Q
Так как Adobe Photoshop CC также обладает поддержкой вычислений общего назначения на GPU (OpenCL) в виртуальной машине, в которой используется профиль vGPU, будет не доступна данная функция, но все графические вычисления обработка трехмерных моделей и другие задачи, основанные на применении API OpenGL, будут полностью выполняться силами графического ускорителя NVIDIA GRID.

В Adobe Photoshop CC на виртуальной машине с vGPU не доступны возможности с OpenCL.
Проведенное исследование показало хороший результат в работе приложения в виртуальной среде. Практически все основные функции программы связанные с навигацией по холсту, отображением инструментов и визуализацией были реализованы полностью.

Видео-демонстрация работы Adobe Photoshop CC на виртуальной машине с NVIDIA GRID K240Q vGPU.
Как и в случае с пакетами для трехмерной графики чтобы получить доступ к вычислениям общего назначения с помощью OpenCL необходимо воспользоваться технологией GPU Pass-trough. Тогда в настройках производительности (Performance) будет активен параметр Use OpenCL.
Поддержка вычислений на OpenCL в виртуальной машине с vGPU NVIDIA GRID K2. Используется технология GPU Pass-trough
Как вы можете заметить, практически все основные функции с поддержкой ускорения со стороны GPU и доступные в Adobe Photoshop могут быть использованы вами в работе на виртуальной рабочей станции. Конечно, в первую очередь стоит исходить из требований и поставленных задач, какие объемы данных будут обрабатываться, какие задачи решает художник и многое другое, но вывести свою работу в облако на текущий момент не составляет никакой сложности.
Итоги исследования
Мне как эксперту, в области компьютерной графики и начинавшему с технологий графических ускорителей было давно интересно опробовать виртуализацию в действии. Первый опыт применения технологий и платформы NVIDIA GRID был получен еще с выходом первого поколения данной платформы в 2012 году. За три года данная платформа претерпела множество изменений, получив поддержку со стороны производителей программного и аппаратного обеспечения. Решения на основе Citrix значительно улучшили свои возможности, а программная основа от NVIDIA позволяет реализовать достаточно сложные задачи по распределению вычислительных возможностей графических процессоров между множеством независимых систем. Виртуализация рабочих станций выходит на новый уровень и предоставляет гораздо больше возможностей для компаний и пользователей предпочитающих "мобильный" образ жизни; это особенно важно современному молодому поколению дизайнеров, проектировщиков и цифровых художников. В то же время компании получают возможности для централизации хранения данных проектов и управления пользователями, а также их действиями. Системным администраторам будет гораздо легче управлять единой системой виртуализации, быстро перенастраивая виртуальные системы под требуемые задачи. Когда необходимо предоставить больше вычислительных мощностей или наоборот ограничить их.
Данная статья наглядно демонстрирует работу технологий платформы NVIDIA GRID в нескольких приложениях от ведущих разработчиков и может быть взята вами на вооружение для оценки перспектив применения технологии виртуальных рабочих станций и графики в своей компании. Виртуализация может быть применена не только для того чтобы обеспечить удаленных сотрудников всем необходимым, но также она может быть применена внутри самой компании, когда необходимо максимально централизовать IT-инфраструктуру и обеспечить высокую надежность работы систем.
Когда платформа виртуализации графики и графические ускорители NVIDIA GRID были анонсированы и представлены, многие дистрибьюторы облачных сервисов начали предоставлять такую возможность своим клиентам. Но основную часть взяли на себя дистрибьюторы профессиональных решений, сформировав совершенно новую область направления виртуализации и пакеты продуктов.
NVIDIA представила GRID 2.0
На проходившей в Сан-Франциско выставке-конференции VMworld, NVIDIA представила обновление технологии NVIDIA GRID (версия 2.0), которая позволяет обеспечивать работу графически насыщенных, ресурсоемких приложений в виртуальной среде на любом подключенном к Сети устройстве.
Более десятка компаний из списка Fortune 500 уже занимаются изучением возможностей бета-версии NVIDIA GRID 2.0. Ключевые производители серверов, среди которых Cisco, Dell, HP и Lenovo, сертифицировали решение GRID для 125 моделей серверов, включая блейд-серверы. Сотрудничество NVIDIA с Citrix и VMware обеспечивает конечным пользователям практически полный спектр возможностей для работы с графикой на ведущих платформах виртуализации.
NVIDIA GRID 2.0 обеспечивает беспрецедентную производительность, эффективность и гибкость виртуализированной графики в корпоративной среде. Пользователи могут работать практически в любом месте без задержек в загрузке файлов. IT-отделы компаний могут предоставлять работникам мгновенный доступ к мощным приложениям, повышая эффективность использования ресурсов. При этом хранение данных на центральном сервере гарантирует более надежную защиту данных по сравнению с моделью работы на персональных системах.
Низкая производительность, ограниченные возможности пользователей и ограниченная поддержка в серверах и приложениях препятствовали возможности целиком и полностью перенести в виртуальное пространство работу предприятий. Благодаря интеграции GPU непосредственно в инфраструктуру дата-центров, технология NVIDIA GRID 2.0 устранила существующие барьеры и предложила следующие возможности.
  • Удвоенная плотность пользователей: NVIDIA GRID 2.0 удваивает плотность пользователей - до 128 пользователей на сервер - по сравнению с предыдущей версией, представленной в прошлом году. Это повышает экономичность масштабирования решения для компаний, позволяя им предоставлять сервис большему числу сотрудников при более низких удельных затратах.
  • Удвоенная производительность приложений: благодаря использованию передовой графической архитектуры NVIDIA Maxwell™ технология NVIDIA GRID 2.0 обеспечивает вдвое более высокую производительность приложений, превосходя в скорости работы многих нативных клиентов.
  • Поддержка блейд-серверов: теперь заказчики смогут запускать виртуальные десктопы на базе GRID на блейд-серверах от ведущих мировых производителей, а не только на стоечных серверах.
  • Поддержка Linux: NVIDIA GRID 2.0 больше не ограничена ОС Windows, позволяя компаниям, использующим Linux, также воспользоваться преимуществами графически ускоренной виртуализации.
Технологически NVIDIA GRID 2.0 помимо перехода на новейшую архитектуру GPU, будет доступна на графических ускорителях линейки NVIDIA Tesla. Новая модель NVIDIA Tesla M6 предоставляет возможности 1 GPU с 1536 ядрами CUDA и 8 Гб графической памяти. Плата потребляет максимум 100 Ватт энергии. В отличие от предыдущих решений NVIDIA Tesla, модель M6 использует форм-фактор MXM (NVIDIA Mobile PCI Express Module) что дает возможность использовать данный ускоритель в легких и тонких блэйд-серверах. А это в свою очередь предоставляет широкие возможности по развертыванию мощной инфраструктуры для виртуализации с большой плотностью. Модель NVIDIA Tesla M60 предоставляет более производительное решение в виде полноценной платы в двух-слотовом исполнении с поддержкой интерфейса PCI-E 3.0. Данный ускоритель использует два графических чипа на основе архитектуры NVIDIA Maxwell с общим количеством ядер CUDA равным 4096.
Каждому чипу отведено по 8 Гб графической памяти (общий объем 16 Гб). Модель Tesla M60 ориентирована на применение в полноценных серверах и предназначена для работы в виртуальных средах с большой плотностью и высокими требования к производительности оборудования, плата потребляет 300 Ватт энергии.
Отметим, как только появится возможность протестировать новую версию платформы NVIDIA GRID, мы обязательно напишем об этом и расскажем в подробностях о производительности новых решений.

Выражаем большую благодарность компании FORSITE за предоставленные ресурсы и помощь в подготовке материалов и иллюстраций к статье. Вы так же можете обратиться к специалистам компании FORSITE за дополнительными сведениями и заказать тест-драйв NVIDIA GRID, и в полной мере протестировать свои приложения и проекты в реальных условиях.

Комментариев нет: