Crysis на максималках, або навіщо сервера відеокарта

<img src=«habrastorage.org/files/c48/999/a03/c48999a037274cdcb891bd7e228ef9c9.jpg» alt=«image» alt text"/>
Крім гри в Battlefield 1 і розваг з VR-окулярами, установка окремої відеокарти в сервер корисна при роботі з графікою у віртуальному середовищі або для математичних обчислень.
Використання GPU в серверному середовищі пов'язано з деякими особливостями в кожному конкретному сценарії, тому розберемо їх докладніше.
Математика – цариця наук
З появою криптовалют і майнинга виявилося, що розраховувати ключі шифрування на відеокартах виходить швидше, ніж на звичайних CPU.
Тому є кілька причин:
  • У відеокарти більше арифметично-логічних модулів, ніж у центральному процесорі, що дозволяє виконувати більше число паралельних завдань;
  • GPU обслуговується більш продуктивної оперативною пам'яттю;
  • Логіка роботи GPU простіше, що знижує витрати кожної операції.
Наприклад, Intel Xeon v4 з підтримкою AVX 2.0 здатний виконувати 16 32-бітних інструкцій на ядрі за такт, в той час як одна відеокарта NVIDIA GeForce GTX 1080 відпрацьовує 8 228 аналогічних інструкцій.
Зараз математичний обрахування на відеокартах використовуються не тільки для майнінг. Наприклад, у корпоративному секторі є більш загальні завдання:
  • Обрахування деяких бізнес-додатків (аналіз Big Data);
  • Графічні завдання. Для масового створення зображень з 3D моделями зручніше використовувати спеціальний сервер або рендер-ферми замість комп'ютера дизайнера;
  • Ресурсномісткі завдання зі сфери інформаційної безпеки. Брутфорс паролів на відеокартах – гарна підмога при тестуванні на проникнення.
В останні роки відеокарти все більше використовують для навчання нейронних мереж, як підваріант роботи з Big Data. Популярний фреймворк Caffe працює на інстансах Амазона з GPU на порядок швидше CPU.
Не так давно до мене звернулася організація, що зловила шифровальщика. На щастя, вірус був старий і файли були зашифровані PSK-ключ, а не сертифікатом. Знадобилося два дні брутфорса за допомогою Hashcat на декількох ігрових комп'ютерах колег – десятизначний і ключ знайшовся.
При перенесенні роботи з процесора на GPU складність в тому, що не можна просто сказати операційної системи "вважай-ка, дорогенька, на відеокарті". Для роботи безпосередньо з математичним модулем відеокарти потрібна підтримка в конкретному додатку. Сам принцип такої роботи називається GPGPU (General-purpose for computing graphics processing units), тому варто шукати підтримку чогось подібного в описі можливостей.
<img src=«habrastorage.org/files/adb/78c/396/adb78c39677c48749ddbaa3a36401ecf.jpg» alt=«image» alt text"/>
Для роботи додатків з математичним модулем відеокарти використовуються дві технології CUDA і OpenCL:
  • CUDA. Програмно-апаратна технологія від NVIDIA. SDK надає можливість розробки на діалекті мови C. NVIDIA випускає як звичайні відеокарти з інтерфейсом PCI-E, так і серверну лінійку Tesla. Є й оптимізовані для блейд-серверів відеокарти з інтерфейсом MXM;
  • OpenCL. Відкритий фреймворк, спочатку розроблений групою компаній Khronos Compute. Підтримується як у відеокартах NVIDIA, так і в моделях від AMD.
Експериментальних порівнянь продуктивності двох технологій можна знайти чимало. При роботі з відеокартами AMD і NVIDIA приблизно одного рівня, від використання OpenCL виграє AMD. Але якщо програма розроблялася з підтримкою CUDA — лідирує вже NVIDIA. Тому вибір конкретної відеокарти обумовлений тією архітектурою, яка була закладена в програму.
Крім обробки складних математичних завдань відеокарту можна використовувати і більш профільно – для роботи з «важкими» графічними додатками.
Виртуализируй це
Термінальні сервери і тонкі клієнти давно цінуються за зручність обслуговування і незалежність від клієнтських машин. Останні роки набирає популярність інфраструктура віртуальних робочих столів (VDI), пропонує кожному користувачеві власну віртуальну машину в дата-центрі.
Якщо пересадити звичайного офісного працівника на тонкий клієнт не представляє особливої праці і практично не позначається на якості роботи, то окрема категорія стабільно викликає головний біль – це дизайнери, архітектори та інші фахівці, які використовують серйозні графічні програми.
<img src=«habrastorage.org/files/bbd/bc5/853/bbdbc5853be3462db6dca01687b1faf0.jpg» alt=«image» alt text"/>
Крім графічних програм, прискорення GPU використовується при роботі навіть звичайних офісних пакетів MS Office, LibreOffice. Прискорити їх роботу на звичайному термінальному сервері можна установкою потужної відеокарти. Наприклад, при використанні RemoteFX карта AMD FirePro S10000 підтримує до 70 користувачів. Якщо співробітники скаржаться на продуктивність офісних додатків, встановлення відеокарти може виправити ситуацію.
Вирішенням проблеми може стати переведення вимогливих користувачів на VDI замість простого терміналу. Потрібно гіпервізор з підтримкою апаратного прискорення графіки. У 2016 році це вміють більшість гіпервізора, навіть безкоштовних.
Для перекидання відеокарти потрібно перевірити відповідність системи ряду вимог.
  • Процесор підтримує апаратну віртуалізацію і IOMMU (Intel VT-d або AMD-Vi);
  • Материнська плата підтримує IOMMU;
  • Біос відеокарти підтримує UEFI.

Якщо користувачів, що бажають оцінити плюси окремої графіки, багато, то можна придбати спеціальні відеокарти з підтримкою поділу ресурсів.
<img src=«habrastorage.org/files/474/e13/406/474e13406d954bfdb0a69217f0638ea0.jpg» alt=«image» alt text"/>
Вміють ділити ресурси моделі є у NVIDIA і AMD:
NVIDIA AMD
Назва технології GRID 2.0 Multi User GPU (MxGPU)
Назва Tesla M10 Tesla M60 Tesla M6 FirePro S7150 FirePro S7150 x2 FirePro S7100X
Інтерфейс PCI-E PCI-E MXM PCI-E PCI-E MXM
Кількість користувачів GPU 16 32 16 16 32 16
Підтримка VMware так так
Підтримка Citrix Xen так у розробці
Підтримка MS Hyper-V так, починаючи з 2016 у розробці
Підтримка NICE так немає
Технологія роботи через спеціальний драйвер апаратна
Ще у VMware в асортименті присутні відеокарти GRID K і GRID К2, не потрапили в таблицю, так як морально застаріли.
Підтримки карт з розділяються ресурсами поки що немає в безкоштовних системах віртуалізації. Якщо раніше XenServer всіх редакцій підтримував роботу "багатокористувацької" карти, то тепер необхідна редакція Enterprise. Для VMware знадобиться редакція Enterprise Plus і вище.
Крім віртуалізації робочих столів існує і віртуалізація додатків (VMware Horizon, Citrix XenApp). Не обов'язково видавати дизайнеру повноцінну робочу станцію, можна віртуалізувати, наприклад, тільки Photoshop.
При розробці віртуального середовища з прискоренням графіки варто звернути увагу не тільки на підтримку в гипервизоре, але і на сумісність з певною моделлю сервера. Сумісність відеокарт NVIDIA GRID з конкретними моделями серверів можна перевірити на сайті NVIDIA. Зокрема, з серверів HPE сертифікований для роботи сучасної Tesla M60 тільки ProLiant DL380 Gen9. Ця ж модель схвалена AMD.
Для блейд-серверів в AMD і NVIDIA є рішення з інтерфейсом MXM, яке характеристиками схожий з картами для звичайних серверів.
<img src=«habrastorage.org/files/3ff/1d2/9e9/3ff1d29e9e6040bb944a0e0f48266b30.jpg» alt=«image» alt text"/>
Основним мінусом технології прискорення графіки в віртуальної середовищі є ціна. Одна відеокарта коштує близько $3 000 доларів, що порівнянно з вартістю цілого сервера. Крім того, для нового проекту потрібна ліцензія на гіпервізор і, швидше за все, сервер певної моделі (пам'ятаємо про сумісність). Крім того, при виборі карт NVIDIA потрібна ще й ліцензія на драйвер.
NVIDIA GRID дозволяє використовувати спільну відеокарту трьома способами:
Віртуальне додаток Віртуальний ПК Віртуальна робоча станція
Віддалений робочий стіл
Віддалене додаток
Гостьова OS Windows
Гостьова OS Linux
Макс. кількість моніторів залежить від програми 2 4
Макс. дозвіл залежить від програми 2560х1600 4096х2160
Підтримка CUDA і OpenCL
Розмір відеопам'яті, на клієнта 1 Гб, 2 Гб, 4 Гб, 8 Гб 512 Мб, 1 Гб 512 Мб, 1 Гб, 2 Гб, 4 Гб, 8 Гб
Ціна на рік, за ліцензію + SUMS* $10 $50 $250
Вічна ліцензія** $20 $100 $450
SUMS1 $5 $25 $100
*SUMS (Support, Update and Maintenance Subscriptions) — підтримка та оновлення від NVIDIA.
**Для придбання вічного ліцензії необхідно придбати SUMS хоча б на перший рік.
Цінник на ліцензії сам по собі не великий, але сумарно впровадження всього програмно-апаратного рішення обійдеться досить дорого. Тим не менш, якщо в компанії велика частина працівників працює з громіздкими графічними додатками, впровадження VDI може бути дешевше, ніж підтримка парку потужних комп'ютерів.
Крім математичних розрахунків та інфраструктури потужних віртуальних машин з підтримкою графічних додатків, можна використовувати відеокарти і для ігор. Наприклад, хмарний сервіс для проходження третього відьмака на високих налаштуваннях на будь-якому пристрої.
А чи використовували ви потужні дискретні відеокарти в серверах, як враження?
Корисні посилання по темі:
Джерело: Хабрахабр

0 коментарів

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