Помимо игры в 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 computing for graphics processing units), поэтому стоит искать поддержку чего-то подобного в описании возможностей ПО.
Для работы приложений с математическим модулем видеокарты используются две технологии — CUDA и OpenCL:
-
CUDA. Программно-аппаратная технология от NVIDIA. SDK предоставляет возможность разработки на диалекте языка C. NVIDIA выпускает как обычные видеокарты с интерфейсом PCI-E, так и серверную линейку Tesla. Есть и оптимизированные для блейд-серверов видеокарты с интерфейсом MXM;
- OpenCL. Открытый фреймворк, изначально разработанный группой компаний Khronos Compute. Поддерживается как в видеокартах NVIDIA, так и в моделях от AMD.
Экспериментальных сравнений производительности двух технологий можно найти немало. При работе с видеокартами AMD и NVIDIA примерно одного уровня, от использования OpenCL выигрывает AMD. Но если приложение разрабатывалось с поддержкой CUDA — лидирует уже NVIDIA. Поэтому выбор конкретной видеокарты обусловлен той архитектурой, которая была заложена в приложение.
Кроме обработки сложных математических задач видеокарту можно использовать и более профильно – для работы с «тяжелыми» графическими приложениями.
Виртуализируй это
Терминальные серверы и тонкие клиенты давно ценятся за удобство обслуживания и независимость от клиентских машин. Последние годы набирает популярность инфраструктура виртуальных рабочих столов (VDI), предлагающая каждому пользователю собственную виртуальную машину в дата-центре.
Если пересадить обычного офисного сотрудника на тонкий клиент не представляет особого труда и практически не сказывается на качестве работы, то отдельная категория стабильно вызывает головную боль – это дизайнеры, архитекторы и другие специалисты, использующие серьезные графические программы.
Помимо графических приложений, ускорение GPU используется при работе даже обычных офисных пакетов MS Office, LibreOffice. Ускорить их работу на обычном терминальном сервере можно установкой мощной видеокарты. Например, при использовании RemoteFX карта AMD FirePro S10000 поддерживает до 70 пользователей. Если сотрудники жалуются на производительность офисных приложений, установка видеокарты может исправить ситуацию.
Решением проблемы может стать перевод требовательных пользователей на VDI вместо простого терминала. Потребуется гипервизор с поддержкой аппаратного ускорения графики. В 2016 году это умеют большинство гипервизоров, даже бесплатных.
-
Процессор поддерживает аппаратную виртуализацию и IOMMU (Intel VT-d или AMD-Vi);
-
Материнская плата поддерживает IOMMU;
- Биос видеокарты поддерживает UEFI.
Если пользователей, желающих оценить плюсы отдельной графики, много, то можно приобрести специальные видеокарты с поддержкой разделения ресурсов.
Умеющие делить ресурсы модели есть у 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, которое характеристиками схоже с картами для обычных серверов.
Основным минусом технологии ускорения графики в виртуальной среде является цена. Одна видеокарта стоит около $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 может быть дешевле, чем поддержка парка мощных компьютеров.
Помимо математических расчетов и инфраструктуры мощных виртуальных машин с поддержкой графических приложений, можно использовать видеокарты и для игр. Например, создать облачный сервис для прохождения третьего ведьмака на высоких настройках на любом устройстве.
А использовали ли вы мощные дискретные видеокарты в серверах, как впечатления?
Полезные ссылки по теме:
-
Настройка NVIDIA GRID на Citrix XenServer
-
Настройка NVIDIA GRID на VMware
-
- Сертифицированные для NVIDIA GRID сервера
Автор: Сервер Молл