VPS с видеокартой (часть 2): вычислительные возможности

В предыдущей статье мы не затронули некоторые интересные аспекты использования виртуальных серверов с видеоадаптерами. Пришло время дополнить тестирование.

z0cb44avqtjhewefev9y7agmxuk.jpeg

Для использования физических видеоадаптеров в виртуальных средах мы выбрали технологию RemoteFX vGPU, которая поддерживается гипервизором Microsoft. При этом на хосте должны быть установлены процессоры с поддержкой SLAT (EPT от Intel или NPT/RVI от AMD), а также соответствующие требованиям создателей Hyper-V видеокарты. Ни в коем случае не стоит сравнивать это решение с настольными адаптерами в физических машинах, которые обычно показывают лучшую производительность при работе с графикой. В нашем тестировании vGPU будет конкурировать с центральным процессором виртуального сервера — вполне логично для вычислительных задач. Отметим также, что помимо RemoteFX существуют и другие сходные технологии, например NVIDIA Virtual GPU — она позволяет передавать графические команды каждой виртуальной машины напрямую в адаптер без трансляции их гипервизором. 

Тесты


В тестах использовалась машина с 4 вычислительными ядрами на 3,4 ГГц, 16 ГБ оперативной памяти, твердотельным накопителем (SSD) на 100 ГБ и виртуальным видеоадаптером с 512 МБ видеопамяти. В физический сервер установлены профессиональные видеокарты NVIDIA Quadro P4000, а гостевая система работает под управлением Windows Server 2016 Standard (64-bit) со стандартным видеодрайвером Microsoft Remote FX.

a537f6319527d00478522af83e6db218.png


▍GeekBench 5


Для начала запустим актуальную версию утилиты GeekBench 5, которая позволяет измерить производительность системы для приложений OpenCL.

e55f885ce10a6a1aecd197b5c9f2cc1d.png


Этот бенчмарк мы использовали в предыдущей статье и он только подтвердил очевидное — наш vGPU слабее производительных настольных видеокарт для решения типичных «графических» задач.

▍GPU Caps Viewer 1.43.0.0


Созданную компанией Geeks3D утилиту нельзя назвать бенчмарком. Тестов производительности она не содержит, но позволяет получить информацию об используемых аппаратных и программных решениях. Здесь можно увидеть, что наша виртуальная машина с vGPU поддерживает только OpenCL 1.1 и не поддерживает CUDA, несмотря на установленный в физическом сервере видеоадаптер NVIDIA Quadro P4000.

3d7f11bb49ddfea0bf98e5227696fbf9.jpg


▍FAHBench 2.3.1


Официальный бенчмарк от проекта распределенных вычислений Folding@Home посвящен решению узкоспециализированной задачи компьютерного моделирования свертывания белковых молекул. Это нужно для исследования причин возникновения связанных с дефектными белками патологий — болезней Альцгеймера и Паркинсона, коровьего бешенства, рассеянного склероза и т.д. Утилита FAHBench не может всесторонне оценить вычислительные мощности виртуального видеоадаптера, но позволяет сравнить производительность CPU и vGPU в сложных расчетах. 

a04b0bf017048cb24aafaabe6cec55a1.png


Измеренная с помощью FAHBench производительность вычислений на vGPU с использованием OpenCL оказалась примерно в 6 раз (для метода моделирования implicit — примерно в 10 раз) выше аналогичных показателей для достаточно мощного центрального процессора.

Дальше приведем результаты вычислений с двойной точностью.

7ea7e1bcae176e26f4582a07129f5b19.png


▍SiSoftware Sandra 20/20


Еще один универсальный пакет для диагностики и тестирования компьютеров. Он позволяет в деталях изучить аппаратную и программную конфигурацию сервера и содержит огромное количество разнообразных бенчмарков. Помимо вычислений с использованием CPU, Sandra 20/20 поддерживает OpenCL, DirectCompute и CUDA. Нас в первую очередь интересуют включенные в бесплатную версию Sandra Lite наборы эталонных вычислительных тестов общего назначения (GPGPU) с использованием аппаратных ускорителей. 

bb50475259cd967ab7fa2458b61143c9.png


Результаты довольно неплохие, хотя они немного ниже ожидаемых для видеоадаптера NVIDIA Quadro P4000. Вероятно сказываются накладные расходы на виртуализацию.

205c9299b1f29aaed8ae6ed74bc6fed8.jpg


В Sandra 20/20 есть сходный набор эталонных тестов для центрального процессора. Запустим их, чтобы сравнить результаты с вычислениями на vGPU.

4d56b24927d2f8c9f0f3393b5777ac3c.jpg


Преимущества видеоадаптера видны наглядно, однако настройки общем пакете тестов не вполне идентичны, к тому же в результатах нельзя увидеть показатели с нужной степенью детализации. Мы решили провести несколько отдельных испытаний. Сначала определили пиковую производительность vGPU с помощью набора простых математических расчетов с использованием OpenCL. Этот бенчмарк по сути аналогичен мультимедийному (не арифметическому!) тесту Sandra для CPU. Для сравнения на ту же диаграмму поместим результат мультимедийного теста центрального процессора VPS. Даже CPU с четырьмя вычислительными ядрами заметно проигрывает vGPU.

01e228d03d8ade1d48c303d828fd3302.png


От синтетических тестов перейдем к вещам практическим. Определить скорость кодирования и декодирования данных нам помогли криптографические тесты. Здесь сравнение результатов для vGPU и CPU также показало явное преимущество ускорителя.

4583f508f40ab4e3f60e21f48c8336ef.png


Еще одна сфера применения vGPU — финансовый анализ. Такие расчеты несложно распараллелить, но для их выполнения потребуется видеоадаптер, поддерживающий вычисления с двойной точностью. И опять результаты говорят сами за себя: достаточно мощный процессор вчистую проигрывает GPU.

fd1c28993784073fc96d9b237fd10c40.png


Последний проведенный нами тест — научные расчеты с высокой точностью. Графический адаптер снова справился лучше центрального процессора с умножением матриц, быстрым преобразованием Фурье и другими подобными задачами.

132328eaa047db1c19a79d718251942a.png


Выводы


vGPU плохо подходят для запуска графических редакторов, а также приложений для 3D-рендеринга и обработки видео. Адаптеры для настольных систем справляются с графикой куда лучше, зато виртуальный может быстрее CPU выполнять параллельные вычисления. За это нужно сказать спасибо производительной оперативной памяти и большему количеству арифметико-логических модулей. Сбор и обработка данных с различных датчиков, аналитические расчеты для бизнес-приложений, научные и инженерные расчеты, анализ и тарификация трафика, работа с торговыми системами — существует масса вычислительных задач, для решения которых GPU незаменимы. Конечно можно собрать такой сервер дома или в офисе, но за покупку «железа» и приобретение лицензионного ПО придется выложить кругленькую сумму. Помимо капитальных затрат существуют и операционные издержки на обслуживание, включающие в том числе и счета за электроэнергию. Существует амортизация — оборудование со временем изнашивается, а морально устаревает еще быстрее. Виртуальные серверы этих недостатков лишены: их можно создавать по мере необходимости и удалять, когда потребность в вычислительной мощности пропадет. Платить за ресурсы только когда они нужны всегда выгодно. 

© Habrahabr.ru