«Не процесором єдиним»: Віртуальні GPU

Обсяги даних, які накопичуються в світі, зростають, тож з'являються все нові способи їх обробки. Один із способів підвищення швидкості обчислень – спільне використання центрального (CPU) і графічного процесора (GPU). Обчислення GPU-прискоренням були придумані ще в 2007 році компанією Nvidia, але тепер технологія вийшла на новий рівень і застосовується в дата-центрах найбільших наукових лабораторій і підприємств.

Ми вже зачіпали тему віртуалізації в своєму блозі, коли говорили про те, як і ким використовується віртуальна інфраструктура. Сьогодні нам би хотілося розповісти вам, як працюють віртуальні графічні процесори і які GPU-технології існують на ринку.



Обчислення на GPU використовуються не тільки в комп'ютерних іграх і при роботі з відеоконтентом. Наприклад, NASA, заявою одного з учених-метеорологів, використовує GPU в моделях GEOS-5 для збільшення ефективності чисельного моделювання атмосферних явищ. Це дозволяє підвищити доступність системи для більшого числа людей, гарантуючи дозвіл 100-200 км/піксель.

Обчислення GPU-прискоренням застосовуються і в бізнес-аналітиці. Так, словам старшого наукового співробітника HP Labs Рена Ву (Ren Wu), GPU дозволили збільшити продуктивність використовуваних аналітичних систем в 5-20 разів.



Порівняння центрального і графічного процесорів

Архітектури CPU і GPU спочатку «заточені» під вирішення різних завдань. Центральний процесор вирішує завдання загального призначення: виконання набору послідовних інструкцій, управління периферійними пристроями і так далі, зазвичай він містить від 2 до 18 ядер, що мають складну структуру.

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



/ фото Mmanss CC

Використання подібного роду обчислень актуально в науковій сфері, тому для виконання об'ємних наукових розрахунків створюються суперкомп'ютери, «начинені» GPU. Однак незважаючи на всі переваги подібного роду обчислень, закупівля фізичної обладнання виливається в серйозні грошові витрати. Більш того, «залізо» має тенденцію до застарівання, тому його доводиться регулярно оновлювати.

Технологія vGPU

Ці проблеми покликана вирішити технологія віртуальних графічних процесорів (vGPU), представлена Nvidia, яка дає користувачам можливість віддалено запускати графикоемкие програми. Тут варто зазначити, що до появи vGPU застосовувалися другие методи прискорення обробки графіки:

  • Virtual Shared Graphics Acceleration (vSGA) – припускає спільне використання різними віртуальними робочими столами фізичних GPU.
  • Virtual Dedicated Graphics Acceleration (vDGA) – виділення фізичної GPU на віртуальній машині за рахунок перекидання (pass-through) пристрою, проте в цьому випадку ВМ виявлялася прив'язана до хосту, що виливалося в проблему, пов'язану з обмеженням числа GPU, що встановлюються на хост.
Технологія ж vGPU увібрала в себе найкраще від цих двох підходів. Як і у випадку vSGA, в середовищі vGPU передбачається спільне використання GPU і ПАМ'ЯТІ кількома віртуальними робочими столами, але при цьому кожна ВМ використовує драйвери Nvidia передає команди безпосередньо до GPU, як у випадку з vDGA.

Таке рішення, як показало тестування, проведене співробітниками компанії VMware, виявилося досить заможним. своєї роботі вони описали результати тестів додатків з використанням продуктів VMware: Workstation 6.5 і Fusion 2.0. Їм вдалося встановити, що продуктивність Half-Life 2: Episode 2 і Civilization 4 при використанні віртуальних GPU була близька до фактичної (як якщо б гри запускали на фізичній машині).

Але технологія vGPU знаходить застосування в самих різних сферах: архітектори та інженери використовують її в системах автоматизованого проектування (наприклад в Autodesk BIM), а дизайнери працюють з цифровим фото — та відеоконтентом (наприклад, Adobe Photoshop). Вона також застосовується з працівниками сфери охорони здоров'я, які користуються системами передачі та архівування медичних зображень і документів обстежених пацієнтів (PACS), такими як GE Centricity EMR.

Варто відзначити, що до недавніх пір неможливо було організувати доступ багатьох користувачів до одного GPU. Якщо 32 людини хотіли звернутися до креслень в AutoCAD зі своїх ВМ, то доводилося купувати 8 дорогих відеокарт з 4 GPU. Цю проблему вирішила технологія Nvidia GRID. Її суть полягає у спільному використанні vGPU кількома віртуальними десктопами, до яких надається доступ за допомогою драйверів Nvidia.

Фактично остання версія Nvidia GRID 2.0 позволяет перенести всю роботу у віртуальний простір. Оновлена технологія підтримує до 128 користувачів на сервері та значно збільшує продуктивність додатків. Також GRID 2.0 дозволяє запускати віртуальні десктопи на блейд-серверах і підтримує не тільки Windows, але і Linux.

Налаштування режиму vGPU для карт Nvidia в VMware vSphere 6





/ фото ChrisDag CC

Компанія VMware ввела функцію віртуальних GPU оновлення своєї платформи віртуалізації vSphere 6.0. Технологія vGPU від Nvidia при використанні з продуктами VMware передбачає використання в якості платформи VMware vSphere 6, а в якості засобу керування віртуальними ПК – VMware Horizon 6.

vGPU підтримується для графічних адаптерів Nvidia GRID K1 і K2, для кожного з яких визначено 4 профілю використання ресурсів відеокарти. Ось таблиця їх варіантів:



В даній таблиці наведені три типи користувачів:

  • Дизайнер – людина, яка використовує «жадібні» до графічних ресурсів програми (сюди відносяться і користувачі CAD-програм).
  • Просунутий користувач – людина, що використовує подібні додатки час від часу.
  • Інформаційний працівник – користувач, слабо використовує ресурси відеокарти.
В цілому для налаштування vGPU з VMware vSphere 6 необхідні наступні компоненти:

  • VMware vCenter 6.0,
  • VMware ESXi 6.0,
  • VMware Horizon View 6.1,
  • Nvidia GRID vGPU Manager.
Спершу нам потрібно налаштувати на серверах BIOS, причому для кожного вендора будуть свої параметри. Ось, наприклад, конфігурація для Cisco:

  • CPU Performance: встановити Enterprise або High Throughput.
  • Energy Performance: вибрати пункт Performance.
  • PCI Configuration: виставити MMCFG BASE 2 GB і відключити Memory Mapped I/O above 4GB.
  • VGA Priority: виставити в Onboard VGA Primary.
Далі, потрібно розгорнути на хостах компонент Nvidia vGPU Manager, який створює зв'язок між графічними процесорами відеокарти і віртуальною машиною. Встановлюється він як звичайний VIB-пакет.

Після того як Nvidia vGPU Manager налаштований на хост-сервери ESXi, нам потрібно підготувати віртуальні машини. Це робиться через vSphere Web Client, де вибираються апаратні характеристики ВМ в залежності від типу робочого навантаження.

Потім в налаштуваннях ВМ потрібно додати Shared PCI Device, а також вибрати тип Nvidia GRID vGPU і профіль відповідно до наведеної вище таблиці. Після цього можна встановлювати гостьову ОС (Windows 7 і більш пізні версії).

Тепер залишається встановити драйвер Nvidia GRID і налаштувати пул віртуальних ПК в VMware Horizon View: просто вказуємо протокол PCoIP і тип 3D-рендера Nvidia GRID VGPU. На цьому все. Віртуальні машини готові до роботи з vGPU.

P. S. Цікаві матеріали з нашого блогу по темі віртуалізації:


Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.