В предыдущей статье, когда мы рассказывали про нашу новую услугу VPS с видеокартой, мы не затронули некоторые интересные аспекты использования виртуальных серверов с видеоадаптерами. Пришло время дополнить тестирование.
Для использования физических видеоадаптеров в виртуальных средах мы выбрали технологию 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.
Для начала запустим актуальную версию утилиты GeekBench 5, которая позволяет измерить производительность системы для приложений OpenCL.
Этот бенчмарк мы использовали в предыдущей статье и он только подтвердил очевидное — наш vGPU слабее производительных настольных видеокарт для решения типичных «графических» задач.
Созданную компанией Geeks3D утилиту нельзя назвать бенчмарком. Тестов производительности она не содержит, но позволяет получить информацию об используемых аппаратных и программных решениях. Здесь можно увидеть, что наша виртуальная машина с vGPU поддерживает только OpenCL 1.1 и не поддерживает CUDA, несмотря на установленный в физическом сервере видеоадаптер NVIDIA Quadro P4000.
Официальный бенчмарк от проекта распределенных вычислений Folding@Home посвящен решению узкоспециализированной задачи компьютерного моделирования свертывания белковых молекул. Это нужно для исследования причин возникновения связанных с дефектными белками патологий — болезней Альцгеймера и Паркинсона, коровьего бешенства, рассеянного склероза и т.д. Утилита FAHBench не может всесторонне оценить вычислительные мощности виртуального видеоадаптера, но позволяет сравнить производительность CPU и vGPU в сложных расчетах.
Измеренная с помощью FAHBench производительность вычислений на vGPU с использованием OpenCL оказалась примерно в 6 раз (для метода моделирования implicit — примерно в 10 раз) выше аналогичных показателей для достаточно мощного центрального процессора.
Дальше приведем результаты вычислений с двойной точностью.
Еще один универсальный пакет для диагностики и тестирования компьютеров. Он позволяет в деталях изучить аппаратную и программную конфигурацию сервера и содержит огромное количество разнообразных бенчмарков. Помимо вычислений с использованием CPU, Sandra 20/20 поддерживает OpenCL, DirectCompute и CUDA. Нас в первую очередь интересуют включенные в бесплатную версию Sandra Lite наборы эталонных вычислительных тестов общего назначения (GPGPU) с использованием аппаратных ускорителей.
Результаты довольно неплохие, хотя они немного ниже ожидаемых для видеоадаптера NVIDIA Quadro P4000. Вероятно сказываются накладные расходы на виртуализацию.
В Sandra 20/20 есть сходный набор эталонных тестов для центрального процессора. Запустим их, чтобы сравнить результаты с вычислениями на vGPU.
Преимущества видеоадаптера видны наглядно, однако настройки общем пакете тестов не вполне идентичны, к тому же в результатах нельзя увидеть показатели с нужной степенью детализации. Мы решили провести несколько отдельных испытаний. Сначала определили пиковую производительность vGPU с помощью набора простых математических расчетов с использованием OpenCL. Этот бенчмарк по сути аналогичен мультимедийному (не арифметическому!) тесту Sandra для CPU. Для сравнения на ту же диаграмму поместим результат мультимедийного теста центрального процессора VPS. Даже CPU с четырьмя вычислительными ядрами заметно проигрывает vGPU.
От синтетических тестов перейдем к вещам практическим. Определить скорость кодирования и декодирования данных нам помогли криптографические тесты. Здесь сравнение результатов для vGPU и CPU также показало явное преимущество ускорителя.
Еще одна сфера применения vGPU — финансовый анализ. Такие расчеты несложно распараллелить, но для их выполнения потребуется видеоадаптер, поддерживающий вычисления с двойной точностью. И опять результаты говорят сами за себя: достаточно мощный процессор вчистую проигрывает GPU.
Последний проведенный нами тест — научные расчеты с высокой точностью. Графический адаптер снова справился лучше центрального процессора с умножением матриц, быстрым преобразованием Фурье и другими подобными задачами.
vGPU плохо подходят для запуска графических редакторов, а также приложений для 3D-рендеринга и обработки видео. Адаптеры для настольных систем справляются с графикой куда лучше, зато виртуальный может быстрее CPU выполнять параллельные вычисления. За это нужно сказать спасибо производительной оперативной памяти и большему количеству арифметико-логических модулей. Сбор и обработка данных с различных датчиков, аналитические расчеты для бизнес-приложений, научные и инженерные расчеты, анализ и тарификация трафика, работа с торговыми системами — существует масса вычислительных задач, для решения которых GPU незаменимы. Конечно можно собрать такой сервер дома или в офисе, но за покупку «железа» и приобретение лицензионного ПО придется выложить кругленькую сумму. Помимо капитальных затрат существуют и операционные издержки на обслуживание, включающие в том числе и счета за электроэнергию. Существует амортизация — оборудование со временем изнашивается, а морально устаревает еще быстрее. Виртуальные серверы этих недостатков лишены: их можно создавать по мере необходимости и удалять, когда потребность в вычислительной мощности пропадет. Платить за ресурсы только когда они нужны всегда выгодно.
Для использования физических видеоадаптеров в виртуальных средах мы выбрали технологию 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.
?GeekBench 5
Для начала запустим актуальную версию утилиты GeekBench 5, которая позволяет измерить производительность системы для приложений OpenCL.
Этот бенчмарк мы использовали в предыдущей статье и он только подтвердил очевидное — наш vGPU слабее производительных настольных видеокарт для решения типичных «графических» задач.
?GPU Caps Viewer 1.43.0.0
Созданную компанией Geeks3D утилиту нельзя назвать бенчмарком. Тестов производительности она не содержит, но позволяет получить информацию об используемых аппаратных и программных решениях. Здесь можно увидеть, что наша виртуальная машина с vGPU поддерживает только OpenCL 1.1 и не поддерживает CUDA, несмотря на установленный в физическом сервере видеоадаптер NVIDIA Quadro P4000.
?FAHBench 2.3.1
Официальный бенчмарк от проекта распределенных вычислений Folding@Home посвящен решению узкоспециализированной задачи компьютерного моделирования свертывания белковых молекул. Это нужно для исследования причин возникновения связанных с дефектными белками патологий — болезней Альцгеймера и Паркинсона, коровьего бешенства, рассеянного склероза и т.д. Утилита FAHBench не может всесторонне оценить вычислительные мощности виртуального видеоадаптера, но позволяет сравнить производительность CPU и vGPU в сложных расчетах.
Измеренная с помощью FAHBench производительность вычислений на vGPU с использованием OpenCL оказалась примерно в 6 раз (для метода моделирования implicit — примерно в 10 раз) выше аналогичных показателей для достаточно мощного центрального процессора.
Дальше приведем результаты вычислений с двойной точностью.
?SiSoftware Sandra 20/20
Еще один универсальный пакет для диагностики и тестирования компьютеров. Он позволяет в деталях изучить аппаратную и программную конфигурацию сервера и содержит огромное количество разнообразных бенчмарков. Помимо вычислений с использованием CPU, Sandra 20/20 поддерживает OpenCL, DirectCompute и CUDA. Нас в первую очередь интересуют включенные в бесплатную версию Sandra Lite наборы эталонных вычислительных тестов общего назначения (GPGPU) с использованием аппаратных ускорителей.
Результаты довольно неплохие, хотя они немного ниже ожидаемых для видеоадаптера NVIDIA Quadro P4000. Вероятно сказываются накладные расходы на виртуализацию.
В Sandra 20/20 есть сходный набор эталонных тестов для центрального процессора. Запустим их, чтобы сравнить результаты с вычислениями на vGPU.
Преимущества видеоадаптера видны наглядно, однако настройки общем пакете тестов не вполне идентичны, к тому же в результатах нельзя увидеть показатели с нужной степенью детализации. Мы решили провести несколько отдельных испытаний. Сначала определили пиковую производительность vGPU с помощью набора простых математических расчетов с использованием OpenCL. Этот бенчмарк по сути аналогичен мультимедийному (не арифметическому!) тесту Sandra для CPU. Для сравнения на ту же диаграмму поместим результат мультимедийного теста центрального процессора VPS. Даже CPU с четырьмя вычислительными ядрами заметно проигрывает vGPU.
От синтетических тестов перейдем к вещам практическим. Определить скорость кодирования и декодирования данных нам помогли криптографические тесты. Здесь сравнение результатов для vGPU и CPU также показало явное преимущество ускорителя.
Еще одна сфера применения vGPU — финансовый анализ. Такие расчеты несложно распараллелить, но для их выполнения потребуется видеоадаптер, поддерживающий вычисления с двойной точностью. И опять результаты говорят сами за себя: достаточно мощный процессор вчистую проигрывает GPU.
Последний проведенный нами тест — научные расчеты с высокой точностью. Графический адаптер снова справился лучше центрального процессора с умножением матриц, быстрым преобразованием Фурье и другими подобными задачами.
Выводы
vGPU плохо подходят для запуска графических редакторов, а также приложений для 3D-рендеринга и обработки видео. Адаптеры для настольных систем справляются с графикой куда лучше, зато виртуальный может быстрее CPU выполнять параллельные вычисления. За это нужно сказать спасибо производительной оперативной памяти и большему количеству арифметико-логических модулей. Сбор и обработка данных с различных датчиков, аналитические расчеты для бизнес-приложений, научные и инженерные расчеты, анализ и тарификация трафика, работа с торговыми системами — существует масса вычислительных задач, для решения которых GPU незаменимы. Конечно можно собрать такой сервер дома или в офисе, но за покупку «железа» и приобретение лицензионного ПО придется выложить кругленькую сумму. Помимо капитальных затрат существуют и операционные издержки на обслуживание, включающие в том числе и счета за электроэнергию. Существует амортизация — оборудование со временем изнашивается, а морально устаревает еще быстрее. Виртуальные серверы этих недостатков лишены: их можно создавать по мере необходимости и удалять, когда потребность в вычислительной мощности пропадет. Платить за ресурсы только когда они нужны всегда выгодно.
lohmatij
А решения с cuda у вас есть? Иногда хочется поэкспериментировать со сверточными сетями, но на ноутбуке не хватает памяти у графического адаптера.
ru_vds Автор
По идее, технологии виртуализации VGPU не поддерживают CUDA, поэтому мы не проводили подобных тестов. При желании, вы можете взять на 3 дня бесплатную тестовую виртуальную машину и поэкспериментировать с ней. О результатах сообщите нам, добавим в текст.