Grid nvidia что это

Обновлено: 03.07.2024

Графические ускорители NVIDIA GRID K1 и K2

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

Рассмотрим основные характеристики решений K1 и K2. Так как графические ускорители линейки GRID должны быть установлены в сервера их корпус, и система охлаждения значительно оптимизированы, обеспечивая хорошее охлаждение графическим чипам и памяти при интенсивной нагрузке. В моделях K1 и K2 лежат графические чипы на основе архитектуры NVIDIA Kepler. Чип GK107 используется в модели K1, а чип GK104 в модели K2. Модель K1 ориентирована на применение в виртуализации рабочих столов и приложений, не требующих высокой производительности от графической подсистемы, но в то же время, когда необходимо развернуть виртуальные машины для множества пользователей, в данной модели используется 4Гб графической памяти на каждый из четырех GPU. В то же время модель K2 ориентирована на более требовательные к графическим вычислениям приложения, такие как пакеты DCC. В данной модели используются более производительные GPU и быстрая память, для каждого из них также выделено по 4Гб графической памяти стандарта GDDR5.

В таблице 1.1 приведены основные технические характеристики GPU NVIDIA GRID K1 и K2.

1x 6-pin PCI Express power connector

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

Citrix XenServer с NVIDIA NVIDIA GRID

Hypervisor + XenDesktop с HDX

Windows Server 2012 + RemoteFX

Windows Server 2008 R2 + RemoteFX

VMware ESXi + View с vSGA

Таблица 1.1. Конфигурация плат NVIDIA GRID K1 и K2.

Если принимать во внимание фактор потребления энергии, то графический ускоритель K1 будет выгоднее по сравнению с более производительным ускорителем K2. При том же на модели K1 можно развернуть больше виртуальных машин и предоставить возможности использования производительной графики большему количеству пользователей. Но для решения более сложных задач (проектирование, 3D анимация, визуализация) все же необходимо прибегнуть к применению производительной модели K2 и разработать надежное питание энергией между всеми элементами системы.

Виртуализация рабочих столов и vGPU

Перед тем как мы перейдем к практическим экспериментам и демонстрации работы технологии в реальных приложениях, необходимо разобраться с теоретическими аспектами виртуализации рабочих столов и GPU, а так же в том, как организован сервер с NVIDIA GRID управляемый решениями Citrix.

Терминология

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

  • CitrixReceiver – Легковесное приложение которое запускается на Windows, Mac, Linux, iOS, Android и Windows Phone устройстве пользователя и соединяется с виртуальной машиной в дата-центре на которой установлен Citrix XenDesktop.
  • CitrixXenDesktop – Продукт виртуализации рабочих столов от Citrix предоставляющий пользователю доступ к удаленному рабочему столу.
  • CitrixXenServer – Коммерческий гипервизор от Citrix который позволяет запускать множество операционных систем на одном серверном узле.
  • ВыделенныйGPU (DedicatedGPU) – решение, где GPU полностью используется виртуальной машиной не распределяясь между другими виртуальными машинами.
  • GPUPass-Through – технология которая связывает виртуальную машину с GPU. Эта технология разработана NVIDIA и известна как NMOS (NVIDIA Multi-OS). Она позволяет каждой операционной системе выполняемой на сервере виртуализации напрямую использовать все возможности физического GPU.
  • Хост (HostMachine) – компьютер на котором установлен гипервизор и запущена одна или несколько виртуальных машин и являющийся хостом. Каждая из виртуальных машин называется гостевой машиной. Гипервизор предоставляет гостевым операционным системам виртуальную операционную платформу и управляет выполнением гостевых операционных систем.
  • Гипервизор (Hypervisor) – технологически гипервизор или менеджер виртуальных машин (VMM) является частью программного обеспечения, прошивка или оборудование которого создают и запускают виртуальные машины.
  • Удаленная рабочая станция (RemoteWorkstation) – единица рабочей станции, которая запускается в дата-центре и перенаправляется через сеть на клиентское устройство. Удаленная рабочая станция может быть доступна как из офиса пользователя, так и может быть доступна со стороны партнерского портала, в путешествии или из дома пользователя.
  • Виртуальная машина (VirtualMachine) – единица операционной системы, которая запускается поверх гипервизора, используя абстрактный образ оборудования реализуемым гипервизором.
  • Виртуализация (Virtualization)– практика абстракции виртуальной машины из физического оборудования, на котором она выполняется. На практике виртуализация используется для запуска виртуальных машин на одном физическом сервере (оборудовании).
    • Инфраструктура виртуальных рабочих столов (VirtualDesktopInfrastructure (VDI)) – практика размещения операционной системы на виртуальной машине в централизованном или удаленном сервере.
    • Виртуализация оборудования (HardwareVirtualization) – создание виртуальной машины, которая действует подобно реальному оборудованию поверх гипервизора или как поднабор оборудования. Программное обеспечение выполняемое на таких виртуальных машинах, работает поверх ресурсов физического оборудования (т.е. операционная система может загружать родные для оборудования драйверы и взаимодействовать с ними напрямую).
    • Аппаратно-виртуализированныйGPU (HardwareVirtualizedGPU) – платы K1 и K2 на основе чипов архитектуры NVIDIA Kepler позволяют множеству пользователей использовать возможности одного GPU и предоставляют каждому пользователю прямой доступ к "железному" GPU. Это увеличивает плотность пользователей, предоставляя им реальную производительность и совместимость.
    • Программная виртуализация (SoftwareVirtualization) – программная виртуализация обеспечивает интерфейс между оборудованием и виртуальной машиной, создавая плотную адаптацию между различными уровнями конфигураций оборудования. На практике программы действуют аналогично аппаратным ресурсам, пропуская команды к гипервизору, который может выполнять их на реальном оборудовании или эмулируемом оборудовании.
    • ВиртуальныйGPUNVIDIAGRID (NVIDIAGRIDvGPU) – ключевая технология, используемая для реализации виртуализации 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 и функциональные ограничения, вызванные описанной выше особенностью.

    Приложение

    Поддержка vGPU

    (OpenGL и DirectX)

    Ограниченные возможности 1

    Редакторы 3D графики и анимации

    Autodesk 3ds Max 2016

    Не доступен NVIDIA PhysX с GPU ускорением

    Autodesk Maya 2016

    Не доступен OpenCL evaluator (Evaluation Manager)

    Не доступна аппаратная тесселяции геометрии в OpenSubdiv

    Не доступен NVIDIA PhysX с GPU ускорением

    Autodesk Mudbox 2016

    Pixologic ZBrush 5

    The Foundry MARI

    Не доступны функции с GPU ускорением (CUDA, OpenCL)

    Side Effects Houdini 14

    Не доступна аппаратная тесселяция геометрии в OpenSubdiv

    Не доступны функции с GPU ускорением в POP Grains Solver

    Не доступны функции с GPU ускорением в Pyro

    Не доступна аппаратная тесселяция геометрии в OpenSubdiv

    Не доступна аппаратная тесселяция геометрии в OpenSubdiv

    Редакторы 2D и векторной графики

    Adobe Photoshop CC

    Не доступны фильтры с GPU ускорением

    Adobe Illustrator CC

    Не доступны инструменты с GPU ускорением

    Редакторы видео и системы пост-продакшн/композитинга

    Adobe Premiere Pro CC

    Adobe Mercury Engine с GPU ускорением

    Переходы и эффекты с GPU ускорением

    Adobe After Effects CC

    Adobe Mercury Engine с GPU ускорением

    Эффекты и фильтры с GPU ускорением

    Ядро визуализации с трассировкой луча (NVIDIA OptiX)

    The Foundry NUKE

    Не доступны функции с GPU ускорением

    Не доступны функции с GPU ускорением

    Системы визуализации

    NVIDIA mental ray

    Не доступны функции GPU AO и GPU GI, NVIDIA iray (CUDA)

    Не доступна версия с GPU ускорением (CUDA)

    В Autodesk 3ds Max также не доступна версия с GPU ускорением

    Chaos Group V-Ray RT

    Не доступна версия с GPU ускорением (CUDA, OpenCL)

    Не доступна версия с GPU ускорением (CUDA, OpenCL)

    Otoy Octane Renderer

    Cebas Moskito Renderer

    PIXAR RenderMan 20

    Да (Visualizer Integrator)

    1 – Отсутствие прямой поддержки CUDA и OpenCL из-за ограничения технологии vGPU.

    Таблица 1.2. Поддержка vGPU со стороны приложений и ограниченные возможности

    Также хочется заметить, что на текущий момент гипервизор от Citrix и реализация управляющего драйвера NVIDIA GRID для Citrix XenServer не позволяют "пробрасывать" несколько GPU в одну виртуальную машину. Поэтому вы можете использовать только NVIDIA GRID в режиме GPU Pass-Through или исключить обработку OpenGL и DirectX на аппаратном уровне, а такой GPU как 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. В данную концепцию входит предоставление неограниченных в функциях виртуальных рабочих мест с высокой производительностью свойственной персональным высокопроизводительным рабочим станциям применяемых инженерами или художниками для работы с комплексными моделями и большими массивами данных.

    Общая схема реализации элементов VDI с Dedicated GPU.

    В виртуальных рабочих станциях каждый из установленных в 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).

    Плата

    Кол-во физических GPU

    Типы виртуальных GPU

    Кол-во vGPU на физ. GPU

    Оценка стоимости решения

    Для окончательного сравнения решения по виртуализации графических рабочих мест с персональными рабочими станциями, необходимо определить стоимость одного рабочего места для обеих реализаций.

    Сделал несколько расчетов в разных вариантах: виртуальное рабочее место получается дороже физической графстанции от 1,5 до 4 раз, в зависимости от количества виртуальных машин. Самая бюджетная виртуальная машина получилась в конфигурации: 32 виртуалки, 1-Core, 7GB RAM, K220Q 0,5GB (эквивалент Quadro K420).

    Для тех, кто хочет увидеть реальные цифры, прилагаю ссылки на Официальный сайт
    Канал Youtube
    В контакте и Facebook
    Twitter и Instagram

    Тестируем NVIDIA GRID + VMware Horizon


    На сегодняшний день уже есть масса статей о тестировании технологии виртуализации графических рабочих мест с помощью технологии NVIDIA GRID. Были реализации и на Citrix, и на VMware.

    Но объективного сравнения в лоб с локальной производительностью Quadro я не нашёл.

    У нас в конфигураторе давно открыты модели серверов с поддержкой технологии GRID, ведь карты GRID (ранее VGX) появились уже давно.

    Первые тесты не оправдали ожиданий, я ждал когда допилят драйверы, и постепенно перестал следить за прогрессом в этой области.

    Идея тестирования этой технологии вернулась в момент реализации одного проекта, когда клиенту потребовалось оптимизировать существующий парк серверов под виртуализацию рабочих мест, использующих специализированный 3D-софт.
    Серверы были следующей конфигурации:

    — Корпус CSE-745TQ
    — Материнская плата X9DR3-F
    — ЦП 2шт E5-2650
    — ОЗУ 128Гб
    — 8 SAS-дисков в RAID5

    Оборудовали серверы картами GRID K2. В качестве гипервизора выбрали VMware. Установили специализированное ПО на виртуальные машины и провели тестирование.

    Во время работы бенчмарка заказчика, я наблюдал беспрецедентную для виртуальной среды производительность 3D-графики. Полученные результаты побудили меня продолжить исследование. Для дальнейших тестов GRID я решил использовать SPECviewperf, как достаточно объективный бенчмарк.

    Также захотелось оценить общую стоимость решения для сравнения с реализацией на базе персональной рабочей станции.
    К счастью, на складе нашлись карты Quadro K5000 и Quadro K420.

    Для начала, провел тесты локально на Windows 7 — получил результаты производительности Quadro K5000 и K420. Так как карта GRID K2 включает в себя 2 чипа, аналогичных чипу K5000, эти данные мне понадобятся для сравнения производительности виртуальных машин в различных режимах деления графических процессоров.

    В самом начале появились трудности с охлаждением карты: GRID K2 имеет пассивное охлаждение, а корпус 745 не может обеспечить необходимый продув карты штатными способами. Пришлось установить 90мм-вентилятор на заднюю панель корпуса, заглушив полностью пустые слоты расширения. Чтобы не рисковать — выставил обороты на максимум. Шум от него получился значительный, но охлаждение — превосходное.



    В сети есть множество пошаговых руководств по настройке и установке ПО, поэтому коротко пробегусь по основным пунктам.
    После установки ESXI ставим необходимые драйверы и модули для GRID. Поднимаем vCenter и Horizon. Создаём виртуалку c Windows (например), обновляем ПО VMware и устанавливаем все обновления Windows. А вот дальнейшие настройки зависят от того, какой режим виртуализации GPU мы выбираем.

    Есть 3 варианта:

    • vSGA (распределение ресурсов GPU между виртуалками через драйвер VMware) — этот режим не интересный (высокая плотность, но крайне низкая производительность) и рассматриваться не будет.
    • vDGA (физический проброс GPU в виртуальную машину с использованием родного драйвера NVIDIA) — этот режим также малоинтересен, так как не обеспечивает высокой плотности. Рассмотрим его только для сравнения с локальной работой Quadro K5000 и профиля vGPU K280Q.
    • vGPU (проброс части ресурсов GPU в виртуальную машину с использованием специального драйвера NVIDIA) — это самый интересный и долгожданный вариант реализации, на него и возлагалась основная надежда, так как vGPU позволяет обеспечить беспрецедентную плотность виртуальных машин с использованием аппаратного 3D-ускорения.

    Для использования этого режима виртуализации, необходимо пробросить в виртуальную среду нашу карту GRID K2. Через vsphere client в настройках хоста выделяем устройства для передачи ресурсов виртуальным машинам.


    После перезагрузки хоста в виртуальной машине выбираем новое PCI устройство.


    Запускаем машину, ставим драйверы NVIDIA GRID и Horizon Agent. После перезагрузок в системе появляется физическая карта с родным драйвером NVIDIA и еще куча виртуальных устройств (устройства воспроизведения звука, микрофон и прочее).


    Далее переходим к настройке Horizon. Через web-интерфейс создаем новый пул из готовых виртуальных машин.


    Аппаратный рендеринг не включаем, так как у нас режим passthrough. Настраиваем права доступа к пулу. На данном этапе любое устройство с установленным Horizon-клиентом может использовать эту виртуальную машину.

    Я попробовал подключение через iPhone 5.

    3D отображалось с несильными задержками, а вот потоковое видео жутко тормозило. Так как при подключении по локалке все летало — я сделал вывод: либо тормоза вызваны беспроводной сетью, либо процессор телефона не справляется с распаковкой PCoIP.
    Провел тесты на iPhone 5s — результат был получше. А вот iPhone 6 показал прекрасный результат.

    Производительность на Android-смартфонах не сильно отличалась от iPhone 5, и работа была не очень комфортной. Но, в любом случае, гибкость доступа к виртуальной машине очевидна. Можно использовать уже существующий парк рабочих станций / офисных компьютеров. Либо можно пересесть на тонкие клиенты. Horizon-клиент ставится практически на любую популярную ОС.

    Также существует уже готовая сборка на linux. В неё уже входит необходимый клиент и стоит она около $40.

    Итак, в режиме vDGA мы можем создать 2 виртуальные машины на каждую карту K2, которые будут монопольно использовать каждая свой GPU.
    Производительность при тесте SPECviewperf очень высокая для виртуальной среды, но всё равно ниже, чем при локальных тестах на Quadro K5000. Все результаты представлю в конце статьи для объективной оценки.

    Для использования этого режима виртуализации, необходимо снять/оставить пустыми галочки в настройках хоста, отвечающих за проброс ресурсов в виртуальную среду.

    В настройках виртуальной машины выбираем Shared PCI Device.


    На выбор дается несколько профилей.


    K200 — это урезанный K220Q, меньше разрешение и объем видеопамяти.
    K220Q-K260Q — основные профили, которые можно выбрать для выполнения конкретных 3D-задач.
    K280Q — спорный профиль, по максимальному количеству виртуалок — это тот же vDGA (2 шт. на карту K2), а по производительности ниже. Единственный, на мой взгляд, плюс этого профиля состоит в том, что его можно использовать совместно с другим профилем vGPU. Следует отметить, что на одну карту GRID можно выделять не более 2-х типов профилей. Причем совмещать режимы vGPU и vDGA нельзя по понятным причинам — у них разный способ взаимодействия с виртуальной средой.

    Определившись с профилями и создав необходимое количество виртуальных машин или шаблонов, переходим к созданию пула/пулов.
    На это раз в настройках рендера выбираем NVIDIA GRID VGPU.


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


    На пальцах

    У многих компаний складывается необходимость обеспечить несколько рабочих мест масштабными графическими ресурсами, - например, штат дизайнеров или даже проектировщиков, - или даже небольшими, множество машин. Обычно в этом случае закупается сервер, оснащается мощными видеокартами и затем виртуализирует GPU.

    Однако графически насыщенные приложения выдвигают, как правило, высокие требования, отчего ресурса видеокарт нужно все больше. Можно просто увеличивать количество комплектующих, а можно использовать более умное железо! NVIDIA GRID использует особую технологию vGPU, которая позволяет сэкономить мощности на гипервизоре, т.к. с ее помощью графические команды передаются от виртуальных машин сразу в графический процессор. Так что даже по сравнению с картами той же мощности GRID будет выигрывать по производительности.

    Это огромное преимущество:

    • Очень требовательные к графическим ресурсам приложения можно будет использовать максимально оперативно и на любом расстоянии.
    • На одном реальном графическом процессоре может работать до восьми пользователей.
    • На каком бы расстоянии вы ни находились, графические ресурсы будут в вашем распоряжении.
    • GRID совместима с ведущими виртуализационными решениями - VMware, Microsoft, Citrix и т.д.
    • Данные и интеллектуальная собственность будут обеспечены большей безопасностью.

    Ну и не стоит замечать, что NVIDIA GRID спроектированы под работу в сервере, то есть для круглосуточной и многолетней работы, так что покупая такую видеокарту, вы приобретаете графические ресурсы на много лет вперед.

    Тестирование SPECviewperf V12.0.2

    Визуально выглядело всё очень здорово, особенно в режиме K280Q

    Для сравнения тот же тест в режиме K220Q.

    Уже не так бодренько, но в любом случае достойно для виртуальной среды.

    Ниже привожу сводную таблицу по каждому модулю тестирования SPEC для всех режимов виртуализации + результаты локальных тестов Quadro K5000 и K420.











    Проанализировав результаты, можно увидеть, что не во всех режимах есть линейный прирост производительности для тех или иных 3D-приложений. Например для Siemens NX нет разницы между профилями K240Q, K260Q и K280Q (скорей всего узким местом стал ЦП). А модуль Medical показал одинаковый результат не только в режимах K240Q, K260Q и K280Q, но и в режиме vDGA и даже при локальных тестах Quadro K5000. Maya, в свою очередь, демонстрирует существенный скачок между режимами K240Q и K260Q (вероятно, это связано с объемом видео памяти), а Solid Works показал одинаковый результат во всех полноценных профилях.

    Эти результаты далеко не полностью отражают производительность решения, но, в любом случае, помогут подобрать оптимальную конфигурацию и грамотно спозиционировать решение для специализированных 3D-задач.

    3D ускорение VDI на практике. Часть 1

    3D ускорение VDI на практике

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

    Виртуализация рабочих мест (VDI) уже прочно вошла в нашу жизнь, в первую очередь в корпоративном сегменте рынка, и уверенно пробивает путь в остальные сегменты, в том числе и в виде публичных облачных сервисов (Desktop as a Service). Отсутствие же аппаратного ускорения графики сдерживает использование данной технологии в тех отраслях, которые могли бы оценить такие преимущества использования VDI как удаленную доступность, безопасность данных и упрощение аутсорсинга персонала.

    Первые шаги к использованию 3D ускорения в VDI были сделаны достаточно давно и заключались в пробросе PCI устройств в виртуальные машины, что позволяло выдавать для VDI видеокарты, установленные в сервер или подключенные к серверу с помощью внешних PCIe корзин, например, таких как Dell PowerEdge C410x. Недостатки такого решения очевидны — повышенное использование электроэнергии, места в стойках и высокая стоимость.

    Коротко о технологии NVIDIA GRID

    С анонсом технологии NVIDIA GRID (NVIDIA VGX на момент анонса) в прошлом году интерес к использованию 3D ускоренных VDI значительно возрос. Суть технологии GRID, которая исходно предназначена именно для 3D ускорения в виртуальных средах, достаточно проста и включает в себя следующие принципы:

    • Агрегация на базе одной PCIe карты нескольких графических ускорителей;
    • Возможность виртуализации графических ускорителей на уровне гипервизора;
    • Возможность виртуализации графических ускорителей средствами технологии GRID Virtual GPU.

    Включение в платформу GRID серверов различных вендоров, обеспечивающих установку до 4 карт GRID в один сервер избавляет от необходимости применять внешние PCIe корзины.

    ПО, поддерживающее технологию GRID — это гипервизоры VMware, Citrix и Microsoft, а также системы виртуализации рабочих станций VMware и Citrix (и Microsoft, если рассматривать варианты общего доступа к серверу).

    Описание нашего тестового стенда
    • Dual socket R (LGA 2011) supports Intel® Xeon® processor E5-2600 and E5-2600 v2 family
    • Up to 512GB ECC DDR3, up to 1866MHz; 8x DIMM sockets
    • 3x PCI-E 3.0 x16 slots (support GPU/Xeon Phi cards), 1x PCI-E 3.0 x8 (in x16) low-profile slot
    • Intel® X540 10GBase-T Controller
    • 4x Hot-swap 2.5" SATA3 Drive Bays
    • 1800W Redundant Power Supplies Platinum Level (94%+)

    SATA корзина позволяет использовать недорогие SSD диски для Host Based кэширования доступа к данных, столь полезного при VDI нагрузках, с характерными пиками дисковой активности в начале и окончании рабочего дня.

    При современных же ценах на модули памяти восьми DIMM-слотов оказывается вполне достаточно в ситуации, когда плотность VM на сервер ограничивается CPU и GPU ресурсами.

    В данный сервер мы установили карту NVIDIA GRID K1. Приводим фото сервера с готовой к установке видеокартой:

    Подключаем NVIDIA GRID K1 к нашему серверу

    В качестве платформы виртуализации была выбрана привычная нам VMware vSphere. Забегая вперед, отмечу, что во второй части данной статьи нам придется использовать Citrix XenServer, поскольку на данный момент только он и только в статусе Tech Preview поддерживает технологию GRID Virtual GPU.

    Гипервизор ESXi определяет видеокарту как 4 устройства NVIDIAGRID K1, подключённые через PCI/PCI bridge, что делает ускорители доступными для раздельного использования как passthrough устройства, подключаемые к ВМ, или как основу для виртуализации на уровне гипервизора.

    Гипервизор ESXi определяет видеокарту

    В гипервизор инсталлируется драйвер от NVIDIA:

    Все устройства, которые не переведены в режим passthrough, при загрузке инициализируются и используются драйвером от NVIDIA:

    2013-10-28T06:12:42.521Z cpu7:9838)Loading module nvidia .
    2013-10-28T06:12:42.535Z cpu7:9838)Elf: 1852: module nvidia has license NVIDIA
    2013-10-28T06:12:42.692Z cpu7:9838)module heap: Initial heap size: 8388608, max heap size: 68476928
    2013-10-28T06:12:42.692Z cpu7:9838)vmklnx_module_mempool_init: Mempool max 68476928 being used for module: 77
    2013-10-28T06:12:42.693Z cpu7:9838)vmk_MemPoolCreate passed for 2048 pages
    2013-10-28T06:12:42.693Z cpu7:9838)module heap: using memType 2
    2013-10-28T06:12:42.693Z cpu7:9838)module heap vmklnx_nvidia: creation succeeded. >
    2013-10-28T06:12:42.943Z cpu7:9838)PCI: driver nvidia is looking for devices
    2013-10-28T06:12:42.943Z cpu7:9838)PCI: driver nvidia claimed device 0000:86:00.0
    2013-10-28T06:12:42.943Z cpu7:9838)PCI: driver nvidia claimed device 0000:87:00.0
    2013-10-28T06:12:42.943Z cpu7:9838)PCI: driver nvidia claimed 2 devices
    NVRM: loading NVIDIA UNIX x86_64 Kernel Module 304.76 Sun Jan 13 20:13:01 PST 2013
    2013-10-28T06:12:42.944Z cpu7:9838)Mod: 4485: Initialization of nvidia succeeded with module ID 77.
    2013-10-28T06:12:42.944Z cpu7:9838)nvidia loaded successfully.
    После загрузки гипервизора

    В качестве платформы для создания инфраструктуры VDI используется продукт Citrix XenDesktop 7, который в настоящий момент используется и в нашей production инфраструктуре, предоставляющей сервисы VDI для наших заказчиков. На тестовых машинах используется технология HXD 3D Pro, осуществляющая эффективную упаковку и проброс на клиента отрендеренного GPU изображения. Тестовый виртуальный сервер имеет следующую конфигурацию: 4vCPU 2GHz, 8GB RAM, 60GB HDD.

    Тестирование vSGA

    vSGA — это технология VMware, обеспечивающая виртуализацию ресурсов GPU, установленных в сервера под управлением гипервизора VMware ESXi, и последующее использование данных GPU для обеспечения 3D ускорения для виртуальных видеокарты, выданных для виртуального сервера.

    Технология обладает множеством ограничений по производительности и функционалу виртуальных видеокарт, однако позволяет максимизировать плотность виртуальных машин на один GPU.

    Фактически, нам удалось запустить машины с близким к двухкратному превышением количества виртуальной видеопамяти в сравнении с количеством физической видеопамяти на используемых GPU.

    • поддерживаемые API: DirectX 9, OpenGL 2.1
    • максимальный объем видеопамяти: 512MB
    • производительность графического ядра: динамическая, не управляется.
    1. включить поддержку 3D,
    2. установить размер видеопамяти в свойствах видеокарты в редактировании машины:

    Редактируем параметры в VMware View

    В гостевой ОС такая виртуальная видеокарта определяется как «VMware SVGA 3D». Она отличается от обычной виртуальной видеокарты только объемом памяти и поддержкой аппаратного ускорения вышеперечисленных API.

    Результаты выполнения теста FurMark на такой VDI машине однозначно говорят, что играть на ней не придется (при этом необходимо отметить, что во время тестирования физической видеокартой пользовалась одна виртуальная машина, то есть все вычислительные ресурсы видеокарты, с учетом накладных расходов виртуализации, были доступны тесту):

    Результаты теста FurMark на DVI машине

    С точки зрения AutoCad 2014 возможности видеокарты выглядят следующим образом:

    Enhanced 3D Performance: Available and on
    Smooth display: Available and off
    Gooch shader: Available and using hardware
    Per-pixel lighting: Available and on
    Full-shadow display: Available and on
    Texture compression: Available and off
    Advanced material effects: Available and on
    Autodesk driver: Not Certified
    Effect support:
    Enhanced 3D Performance: Available
    Smooth display: Available
    Gooch shader: Available
    Per-pixel lighting: Available
    Full-shadow display: Available
    Texture compression: Available
    Advanced material effects: Available

    Как видно, формально все параметры аппаратного ускорения поддерживаются драйвером. Предполагается, что проблемы с поддержкой мы можем увидеть только при использовании более тяжелых продуктов, использующих, например, архитектуру CUDA.

    Результаты выполнения теста Cadalyst Benchmark:

    Тест в Cadalyst Benchmark

    Результаты не впечатляю, однако использовать данное ПО можно, а если большой производительности и работы со сложными моделями не требуется — например, в учебном классе, то высокая плотность и низкая стоимость таких машин может оказаться полезной.

    Тестирование vDGA

    vDGA — это название, используемое VMware для обозначения проброса физической видеокарты в виртуальную машину.

    Фактически, для данной технологии NVIDIA GRID дала одно единственное преимущество — высокую плотность GPU, которая позволяет отказаться от использования внешних PCIe корзин.

    Например, в используемый на тестовом стенде сервер возможно установить три видеокарты NVIDIA GRID K1, что даст нам 12 независимых ускорителей класса QUADRO K600. Это позволяет запустить на сервере 12 виртуальных серверов, что позволяет загрузить мощности сервера, а в зависимости от профиля нагрузки — и дает запас по GPU ресурсам по сравнению с CPU ресурсами.

    Для проброса видеокарты в виртуальный сервер необходимо включить режим passthrough для данного PCIe устройства в конфигурации хоста и добавить PCI устройство в конфигурацию виртуальной машины:

    Добавляем PCI ус-во в VMware View

    Также, требуется установить полное резервирование памяти для данной виртуальной машины

    Установка полного резервирования памяти для виртуальной машины

    и провести настройку pci hole. На этот счет существуют различные мнения, мы выбрали значения от 1200 до 2200:

    Выбор значений pci hole в VMware View

    В гостевой ОС в таком случае видеокарта видится полноценным устройство от NVIDIA и требует установки драйверов для семейства видеокарт GRID.

    Результаты FurMark близки к результатам, полученным в тесте vSGA, что говорит об относительной эффективности уровня виртуализации для этого теста:

    результат дал относительный уровень эффективности виртуализации

    При использовании AutoCad 2014 картина следующая:

    Current Effect Status:
    Enhanced 3D Performance: Available and on Smooth display: Available and off
    Gooch shader: Available and using hardware
    Per-pixel lighting: Available and on
    Full-shadow display: Available and on
    Texture compression: Available and off
    Advanced material effects: Available and on
    Autodesk driver: Not Certified
    Effect support:
    Enhanced 3D Performance: Available
    Smooth display: Available
    Gooch shader: Available
    Per-pixel lighting: Available
    Full-shadow display: Available
    Texture compression: Available
    Advanced material effects: Available

    Все возможности также ожидаемо поддерживаются, однако карточка не является сертифицированной. Из серии GRID для AutoCad сертифицирована только K2.

    Результаты выполнения бенчмарка Cadalyst 2012:

    Результаты проброшенной видеокарты и виртуализированной

    Как мы видим, проброшенная видеокарта показывает фактически результаты в 4 раза большие, чем виртуализированная. В данном случае, использовать для работы проектировщика такую машину уже возможно.

    Если же производительности карты K1 не достаточно, можно установить K2 и получить top range видеокарту внутри виртуального сервера.

    Во второй части статьи

    Мы подробно расскажем о возможности виртуализации GPU посредством технологий NVIDIA, которые обещают нам поддержку всех доступных физической карте API и производительность, достаточную для уверенной работы с CAD, покажем тестовый стенд, замеры производительности таких видеокарт и подведем итоги. Продолжение следует.

    Тестирование КОМПАС-3D

    Ради интереса провёл тест бенчмарком Компас-3D. Производительность графики во всех режимах отличалась не сильно — колебалась от 29 до 33 в их «попугаях». Специалисты АСКОН сказали, что это средний результат подобного решения на Citrix. Тест прошел как-то стремительно, модель вертелась с огромной скоростью (не было такой плавности как в SPEC), видимо это особенность теста. Поэтому я попробовал повертеть её вручную. Крутилась плавно и комфортно, не смотря на то, что модель сложная.

    Тестирование 3ds Max

    Так как тест SPEC для 3ds Max на данный момент поддерживает только версию 2015, и требует её установки, я ограничился ручным тестом пробной версии 2016.

    Все режимы vGPU ведут себя достойно — ограничения как и всегда: чем меньше видео памяти выделено — тем меньшее количество полигонов можно обрабатывать.

    Работа в самом младшем режиме (K220Q — 16 пользователей на карту) была ничем не хуже работы на младших Quadro. При повышении количества полигонов FPS оставался на комфортном уровне 20-30 кадров в секунду.

    Режим Realistic (автоматический рендер в превью-окне) работал без задержек, при остановке модели обновление текстур происходило достаточно быстро. В общем, я не нашел ничего, что вызывало бы дискомфорт в работе.

    Аппаратная акселерация PCoIP

    Проанализировав результаты SPEC, я обнаружил, что в некоторых режимах тестирования узким местом мог стать процессор. Я провел тесты с понижением количества ядер на виртуальную машину. В одноядерной виртуалке результаты были существенно хуже, не смотря на то, что SPEC загружал только один поток и редко на 100%.

    Я осознавал, что помимо основных задач, центральный процессор занимается кодированием PCoIP потока для отправки его клиенту. Учитывая то, что PCoIP нельзя назвать «лёгким» протоколом, нагрузка на процессор должна быть существенной. Для разгрузки ЦП я попробовал использовать Teradici PCoIP Hardware Accelerator APEX 2800.


    Установив драйвер на ESXI и виртуальные машины я повторил несколько тестов. Результаты были впечатляющие:










    В некоторых тестах производительность увеличилась до 2-х раз, при использовании APEX 2800. Эта карта способна разгружать до 64 активных дисплеев.

    В пользу NVIDIA GRID

    В пользу NVIDIA GRID

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

    Компания NVIDIA специализируется на графических процессорах уже более четверти века, это признанный лидер отрасли, а потому логично ожидать от нее впечатляющих hi-end решений.

    И NVIDIA GRID не обманывает наших ожиданий!

    Читайте также: