Зачем серверу видеокарта? CPU vs GPU

Аренда сервера или облака с видеокартой


Хорошая видеокарта всегда была важной и дорогостоящей частью компьютера, а флагманская новинка от лидеров этой индустрии – мечтой пользователя, ценителя инноваций и High-Tech.


Навигация по статье:


Несмотря на то, что часть современных центральных процессоров уже давно содержат собственную встроенную графическую подсистему, большинству пользователей этого бывает достаточно только для работы офисных и некоторых других программ, не слишком требовательных к скорости обновления вывода на экран. И наоборот, графические процессоры последнего поколения и скоростная память современной видеокарты совершенно меняют качество пользования компьютером – они обеспечивают возможность запустить и полноценно использовать современные, насыщенные графические приложения и операционные системы. Пользователь начинает работать в приложениях CAD/CAM, 3D моделирования с максимальными настройками или просматривает видеопрезентацию/фильм плавно, в высоком разрешении. То же самое - касается современных игр (а как же без них). В результате, моральное устаревание и замена всего компьютера откладываются еще на год-два.



CPU VS GPU

Вспомним, что центральный процессор (CPU) любого компьютера выполняет последовательность универсальных команд пошагово, согласно очереди. Срочные, приоритетные задачи (прерывания) также добавляются к этой очереди – по степени их важности.


CPU ALU - зачем серверу видеокартаВ корпусе одного CPU теперь размещаются несколько вычислительных ядер (арифметически-логических устройств – ALU), а на плате современного сервера могут находиться несколько однотипных центральных процессоров. Это означает, что несколько различных потоков универсальных инструкций могут обрабатываться одновременно в многозадачном режиме. Однако внутри каждого потока, выполнение каждой следующей инструкции имеет смысл только после окончания выполнения предыдущей. Следующий шаг зависит от результата предыдущего, базируется на нем потому, что так устроена логика последовательной работы программы (и обработки прерываний тоже). Ошибка на любом из шагов может привести к сбою, краху всей работы программы.


GPU ALU - виртуальные сервера с видеокартойГрафический процессор (GPU) устроен иначе – в нем большое количество ядер работает параллельно над узкоспециализированными, практически однотипными математическими заданиями (по расчету треугольников при рендеринге видео, как правило). Результаты расчетов должны использоваться для максимально быстрого вывода состояния пикселов на экран (или проектор) и после этого они не имеют больше никакой ценности, моментально устаревают и нигде не сохраняются. На входы ядер графического процессора множество раз в секунду поступают новые данные для параллельной обработки в реальном времени. Случайная ошибка в расчете параметров одного-двух пикселов на экране монитора не влияет критично на восприятие фильма или игры зрителем, а плавная и быстрая смена кадров – наоборот, очень важна и ценится высоко.



ГРАФИКА В ОБЛАЧНЫХ ВЫЧИСЛЕНИЯХ

Должна ли содержать виртуальная машина мощную видеокарту, и если да – то зачем? Ответ зависит от задачи пользователя и программного обеспечения виртуализации. Остановимся на этом детальнее.


Представим вначале, что в удаленном дата-центре на физическом сервере по заявке пользователя будет установлена дорогая и высокопроизводительная видеокарта с выводом на монитор (там же, на стороне провайдера). Этот пользователь не получит от этого никакой пользы и не увидит «свое» изображение на мониторах в удаленном от него дата-центре. Тем более, что приложение пользователя обычно вообще не выводит GUI (графический интерфейс пользователя) на видеокарту сервера, в нормальном режиме его работы. Поэтому, для установки в корпусе удаленного сервера вполне достаточно типовой видеокарты начального уровня, исключительно для технологических задач инженеров провайдера (администрирования, ремонта и обслуживания серверов, чаще всего – в текстовом режиме командной строки). И даже в такой видеокарте не всегда есть необходимость, поскольку администратор тоже к серверу может подключиться удаленно.


Сама идея облачных вычислений предполагает, что удаленный пользователь работает с пулом ресурсов провайдера через RDP или другой подобный механизм обмена данными.

Примечание: RDP - Remote Desktop Protocol (протокол удалённого рабочего стола), один из протоколов для телекоммуникаций. Позволяет пользователю работать удаленно с приложениями, если на сервере запущен сервис терминальных подключений.


При этом, пользователь использует свой персональный компьютер (или т.н. «тонкий клиент»), планшет, смартфон всего лишь как простейший терминал для связи с дата-центром через Интернет. Вся работа выполняется на другой стороне (провайдера). Серверная часть приложения запускается и обрабатывает массивы данных на оборудовании в удаленном дата-центре, но со стороны каждого пользователя все выглядит так, как будто прямо перед ним настоящий высокопроизводительный компьютер, на котором и выполняются его задачи. Это обеспечивается программным обеспечением виртуализации. На практике, в этой красивой модели существуют некоторые ограничения. Если изображение на экране пользователя «отстает» даже в неторопливых бухгалтерских приложениях - дело совсем не в видеокарте сервера (чаще всего, есть смысл начать с проверки качества канала подключения к Интернет, затем проверить наличие остатка свободной оперативной и дисковой памяти и т.д.).


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

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


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

Примечание: В некоторых случаях, успешным бывает также «проброс» (программное подключение) дискретной видеокарты компьютера на стороне пользователя к виртуальной машине, для наилучшей интеграции ресурсов, использования возможностей имеющегося графического процессора. Результаты «проброса» зависят от конкретного оборудования и ОС, версии драйверов, ПО гипервизора и не всегда впоследствии повторяемы/устойчивы в работе на других системах. Эта тема специфическая, дискуссионная и не является предметом рассмотрения в данной статье (как и технологии майнинга криптовалют).



ВИРТУАЛЬНЫЕ ГРАФИЧЕСКИЕ ПРОЦЕССОРЫ

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


Мощная видеокарта для сервера 1uЗаметным, бросающимся в глаза отличием такого ускорителя от классической видеокарты есть отсутствие портов для подключения монитора на задней панельке. В мониторе, в этом случае, нет необходимости по причинам, уже изложенным выше – ядра ускорителя принимают данные через параллельную шину, быстро и одновременно выполняют свою узкоспециализированную математическую задачу и возвращают результаты в систему через параллельную шину, для «сборки» центральным процессором и дальнейшей отправки пользователю через Интернет на его веб-интерфейс. Представим, что колоссальные расчеты массивов чисел в режиме реального времени выполняются только для того, чтобы определить – почему один из пикселов на экране монитора пользователя должен сейчас выглядеть темнее, чем соседний пиксел. Но это делается в тех случаях, когда это действительно важно.


Такие технологии «виртуальных графических процессоров» дают прекрасные результаты в сложных конструкторских задачах моделирования и других, где возможность быстрого расчета, прорисовки большого количества линий и других геометрических фигур (в том числе 3D) особенно важна. Более того, в виртуальной среде один подобный многоядерный графический ускоритель может обслуживать одновременно нескольких удаленных пользователей с высоконагруженными приложениями. Конечно, подобное оборудование и ПО являются пока что дорогостоящими, они в настоящее время чаще применяется в высокотехнологичных отраслях:

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


Решение о приобретении либо аренде вычислительных ресурсов такого класса (и ценового диапазона) есть смысл предварительно обсудить со специалистами.



Автор: Станислав Комухаев

Понравилась статья? Поделитесь ею в социальных сетях!