В предыдущей статье, когда мы рассказывали про нашу новую услугу VPS с видеокартой, мы не затронули некоторые интересные аспекты использования виртуальных серверов с видеоадаптерами. Пришло время дополнить тестирование.
![](https://habrastorage.org/r/w780q1/webt/z0/cb/44/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.
![](https://habrastorage.org/r/w1560/getpro/habr/post_images/a53/7f6/319/a537f6319527d00478522af83e6db218.png)
Для начала запустим актуальную версию утилиты GeekBench 5, которая позволяет измерить производительность системы для приложений OpenCL.
![](https://habrastorage.org/r/w1560/getpro/habr/post_images/e55/f88/5ce/e55f885ce10a6a1aecd197b5c9f2cc1d.png)
Этот бенчмарк мы использовали в предыдущей статье и он только подтвердил очевидное — наш vGPU слабее производительных настольных видеокарт для решения типичных «графических» задач.
Созданную компанией Geeks3D утилиту нельзя назвать бенчмарком. Тестов производительности она не содержит, но позволяет получить информацию об используемых аппаратных и программных решениях. Здесь можно увидеть, что наша виртуальная машина с vGPU поддерживает только OpenCL 1.1 и не поддерживает CUDA, несмотря на установленный в физическом сервере видеоадаптер NVIDIA Quadro P4000.
![](https://habrastorage.org/r/w780q1/getpro/habr/post_images/3d7/f11/bb4/3d7f11bb49ddfea0bf98e5227696fbf9.jpg)
Официальный бенчмарк от проекта распределенных вычислений Folding@Home посвящен решению узкоспециализированной задачи компьютерного моделирования свертывания белковых молекул. Это нужно для исследования причин возникновения связанных с дефектными белками патологий — болезней Альцгеймера и Паркинсона, коровьего бешенства, рассеянного склероза и т.д. Утилита FAHBench не может всесторонне оценить вычислительные мощности виртуального видеоадаптера, но позволяет сравнить производительность CPU и vGPU в сложных расчетах.
![](https://habrastorage.org/r/w1560/getpro/habr/post_images/a04/b0b/f01/a04b0bf017048cb24aafaabe6cec55a1.png)
Измеренная с помощью FAHBench производительность вычислений на vGPU с использованием OpenCL оказалась примерно в 6 раз (для метода моделирования implicit — примерно в 10 раз) выше аналогичных показателей для достаточно мощного центрального процессора.
Дальше приведем результаты вычислений с двойной точностью.
![](https://habrastorage.org/r/w1560/getpro/habr/post_images/7ea/7e1/bca/7ea7e1bcae176e26f4582a07129f5b19.png)
Еще один универсальный пакет для диагностики и тестирования компьютеров. Он позволяет в деталях изучить аппаратную и программную конфигурацию сервера и содержит огромное количество разнообразных бенчмарков. Помимо вычислений с использованием CPU, Sandra 20/20 поддерживает OpenCL, DirectCompute и CUDA. Нас в первую очередь интересуют включенные в бесплатную версию Sandra Lite наборы эталонных вычислительных тестов общего назначения (GPGPU) с использованием аппаратных ускорителей.
![](https://habrastorage.org/r/w1560/getpro/habr/post_images/bb5/047/525/bb50475259cd967ab7fa2458b61143c9.png)
Результаты довольно неплохие, хотя они немного ниже ожидаемых для видеоадаптера NVIDIA Quadro P4000. Вероятно сказываются накладные расходы на виртуализацию.
![](https://habrastorage.org/r/w780q1/getpro/habr/post_images/205/c92/99b/205c9299b1f29aaed8ae6ed74bc6fed8.jpg)
В Sandra 20/20 есть сходный набор эталонных тестов для центрального процессора. Запустим их, чтобы сравнить результаты с вычислениями на vGPU.
![](https://habrastorage.org/r/w780q1/getpro/habr/post_images/4d5/6b2/492/4d56b24927d2f8c9f0f3393b5777ac3c.jpg)
Преимущества видеоадаптера видны наглядно, однако настройки общем пакете тестов не вполне идентичны, к тому же в результатах нельзя увидеть показатели с нужной степенью детализации. Мы решили провести несколько отдельных испытаний. Сначала определили пиковую производительность vGPU с помощью набора простых математических расчетов с использованием OpenCL. Этот бенчмарк по сути аналогичен мультимедийному (не арифметическому!) тесту Sandra для CPU. Для сравнения на ту же диаграмму поместим результат мультимедийного теста центрального процессора VPS. Даже CPU с четырьмя вычислительными ядрами заметно проигрывает vGPU.
![](https://habrastorage.org/r/w1560/getpro/habr/post_images/01e/228/d03/01e228d03d8ade1d48c303d828fd3302.png)
От синтетических тестов перейдем к вещам практическим. Определить скорость кодирования и декодирования данных нам помогли криптографические тесты. Здесь сравнение результатов для vGPU и CPU также показало явное преимущество ускорителя.
![](https://habrastorage.org/r/w1560/getpro/habr/post_images/458/3f5/08f/4583f508f40ab4e3f60e21f48c8336ef.png)
Еще одна сфера применения vGPU — финансовый анализ. Такие расчеты несложно распараллелить, но для их выполнения потребуется видеоадаптер, поддерживающий вычисления с двойной точностью. И опять результаты говорят сами за себя: достаточно мощный процессор вчистую проигрывает GPU.
![](https://habrastorage.org/r/w1560/getpro/habr/post_images/fd1/c28/993/fd1c28993784073fc96d9b237fd10c40.png)
Последний проведенный нами тест — научные расчеты с высокой точностью. Графический адаптер снова справился лучше центрального процессора с умножением матриц, быстрым преобразованием Фурье и другими подобными задачами.
![](https://habrastorage.org/r/w1560/getpro/habr/post_images/132/328/eaa/132328eaa047db1c19a79d718251942a.png)
vGPU плохо подходят для запуска графических редакторов, а также приложений для 3D-рендеринга и обработки видео. Адаптеры для настольных систем справляются с графикой куда лучше, зато виртуальный может быстрее CPU выполнять параллельные вычисления. За это нужно сказать спасибо производительной оперативной памяти и большему количеству арифметико-логических модулей. Сбор и обработка данных с различных датчиков, аналитические расчеты для бизнес-приложений, научные и инженерные расчеты, анализ и тарификация трафика, работа с торговыми системами — существует масса вычислительных задач, для решения которых GPU незаменимы. Конечно можно собрать такой сервер дома или в офисе, но за покупку «железа» и приобретение лицензионного ПО придется выложить кругленькую сумму. Помимо капитальных затрат существуют и операционные издержки на обслуживание, включающие в том числе и счета за электроэнергию. Существует амортизация — оборудование со временем изнашивается, а морально устаревает еще быстрее. Виртуальные серверы этих недостатков лишены: их можно создавать по мере необходимости и удалять, когда потребность в вычислительной мощности пропадет. Платить за ресурсы только когда они нужны всегда выгодно.
![](https://habrastorage.org/webt/z0/cb/44/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.
![](https://habrastorage.org/getpro/habr/post_images/a53/7f6/319/a537f6319527d00478522af83e6db218.png)
▍GeekBench 5
Для начала запустим актуальную версию утилиты GeekBench 5, которая позволяет измерить производительность системы для приложений OpenCL.
![](https://habrastorage.org/getpro/habr/post_images/e55/f88/5ce/e55f885ce10a6a1aecd197b5c9f2cc1d.png)
Этот бенчмарк мы использовали в предыдущей статье и он только подтвердил очевидное — наш vGPU слабее производительных настольных видеокарт для решения типичных «графических» задач.
▍GPU Caps Viewer 1.43.0.0
Созданную компанией Geeks3D утилиту нельзя назвать бенчмарком. Тестов производительности она не содержит, но позволяет получить информацию об используемых аппаратных и программных решениях. Здесь можно увидеть, что наша виртуальная машина с vGPU поддерживает только OpenCL 1.1 и не поддерживает CUDA, несмотря на установленный в физическом сервере видеоадаптер NVIDIA Quadro P4000.
![](https://habrastorage.org/getpro/habr/post_images/3d7/f11/bb4/3d7f11bb49ddfea0bf98e5227696fbf9.jpg)
▍FAHBench 2.3.1
Официальный бенчмарк от проекта распределенных вычислений Folding@Home посвящен решению узкоспециализированной задачи компьютерного моделирования свертывания белковых молекул. Это нужно для исследования причин возникновения связанных с дефектными белками патологий — болезней Альцгеймера и Паркинсона, коровьего бешенства, рассеянного склероза и т.д. Утилита FAHBench не может всесторонне оценить вычислительные мощности виртуального видеоадаптера, но позволяет сравнить производительность CPU и vGPU в сложных расчетах.
![](https://habrastorage.org/getpro/habr/post_images/a04/b0b/f01/a04b0bf017048cb24aafaabe6cec55a1.png)
Измеренная с помощью FAHBench производительность вычислений на vGPU с использованием OpenCL оказалась примерно в 6 раз (для метода моделирования implicit — примерно в 10 раз) выше аналогичных показателей для достаточно мощного центрального процессора.
Дальше приведем результаты вычислений с двойной точностью.
![](https://habrastorage.org/getpro/habr/post_images/7ea/7e1/bca/7ea7e1bcae176e26f4582a07129f5b19.png)
▍SiSoftware Sandra 20/20
Еще один универсальный пакет для диагностики и тестирования компьютеров. Он позволяет в деталях изучить аппаратную и программную конфигурацию сервера и содержит огромное количество разнообразных бенчмарков. Помимо вычислений с использованием CPU, Sandra 20/20 поддерживает OpenCL, DirectCompute и CUDA. Нас в первую очередь интересуют включенные в бесплатную версию Sandra Lite наборы эталонных вычислительных тестов общего назначения (GPGPU) с использованием аппаратных ускорителей.
![](https://habrastorage.org/getpro/habr/post_images/bb5/047/525/bb50475259cd967ab7fa2458b61143c9.png)
Результаты довольно неплохие, хотя они немного ниже ожидаемых для видеоадаптера NVIDIA Quadro P4000. Вероятно сказываются накладные расходы на виртуализацию.
![](https://habrastorage.org/getpro/habr/post_images/205/c92/99b/205c9299b1f29aaed8ae6ed74bc6fed8.jpg)
В Sandra 20/20 есть сходный набор эталонных тестов для центрального процессора. Запустим их, чтобы сравнить результаты с вычислениями на vGPU.
![](https://habrastorage.org/getpro/habr/post_images/4d5/6b2/492/4d56b24927d2f8c9f0f3393b5777ac3c.jpg)
Преимущества видеоадаптера видны наглядно, однако настройки общем пакете тестов не вполне идентичны, к тому же в результатах нельзя увидеть показатели с нужной степенью детализации. Мы решили провести несколько отдельных испытаний. Сначала определили пиковую производительность vGPU с помощью набора простых математических расчетов с использованием OpenCL. Этот бенчмарк по сути аналогичен мультимедийному (не арифметическому!) тесту Sandra для CPU. Для сравнения на ту же диаграмму поместим результат мультимедийного теста центрального процессора VPS. Даже CPU с четырьмя вычислительными ядрами заметно проигрывает vGPU.
![](https://habrastorage.org/getpro/habr/post_images/01e/228/d03/01e228d03d8ade1d48c303d828fd3302.png)
От синтетических тестов перейдем к вещам практическим. Определить скорость кодирования и декодирования данных нам помогли криптографические тесты. Здесь сравнение результатов для vGPU и CPU также показало явное преимущество ускорителя.
![](https://habrastorage.org/getpro/habr/post_images/458/3f5/08f/4583f508f40ab4e3f60e21f48c8336ef.png)
Еще одна сфера применения vGPU — финансовый анализ. Такие расчеты несложно распараллелить, но для их выполнения потребуется видеоадаптер, поддерживающий вычисления с двойной точностью. И опять результаты говорят сами за себя: достаточно мощный процессор вчистую проигрывает GPU.
![](https://habrastorage.org/getpro/habr/post_images/fd1/c28/993/fd1c28993784073fc96d9b237fd10c40.png)
Последний проведенный нами тест — научные расчеты с высокой точностью. Графический адаптер снова справился лучше центрального процессора с умножением матриц, быстрым преобразованием Фурье и другими подобными задачами.
![](https://habrastorage.org/getpro/habr/post_images/132/328/eaa/132328eaa047db1c19a79d718251942a.png)
Выводы
vGPU плохо подходят для запуска графических редакторов, а также приложений для 3D-рендеринга и обработки видео. Адаптеры для настольных систем справляются с графикой куда лучше, зато виртуальный может быстрее CPU выполнять параллельные вычисления. За это нужно сказать спасибо производительной оперативной памяти и большему количеству арифметико-логических модулей. Сбор и обработка данных с различных датчиков, аналитические расчеты для бизнес-приложений, научные и инженерные расчеты, анализ и тарификация трафика, работа с торговыми системами — существует масса вычислительных задач, для решения которых GPU незаменимы. Конечно можно собрать такой сервер дома или в офисе, но за покупку «железа» и приобретение лицензионного ПО придется выложить кругленькую сумму. Помимо капитальных затрат существуют и операционные издержки на обслуживание, включающие в том числе и счета за электроэнергию. Существует амортизация — оборудование со временем изнашивается, а морально устаревает еще быстрее. Виртуальные серверы этих недостатков лишены: их можно создавать по мере необходимости и удалять, когда потребность в вычислительной мощности пропадет. Платить за ресурсы только когда они нужны всегда выгодно.