Эта статья является третьей в цикле, посвященном различным реальным приложениям, которые могут использоваться для тестирования процессоров, компьютеров, ноутбуков и рабочих станций и которые в дальнейшем будут положены в основу нового тестового пакета iXBT Application Benchmark 2017. Напомним, что в первой статье данного цикла мы рассматривали два специализированных приложения LAMMPS и NAMD, которые используются для решения задач молекулярной динамики. Во второй статье мы уделили внимание специализированным математическим пакетам FFTW и GNU Octave. В нынешней же мы рассмотрим программы, которые используются для рендеринга трехмерных сцен. Всего рассматривается три популярных рендера: POV-Ray 3.7, LuxRender 1.6 и Вlender 2.77a.
POV-Ray 3.7
POV-Ray — это бесплатная программа с доступным исходным кодом, которая позволяет создавать трехмерные, фотореалистичные изображения с использованием техники рендеринга, называемой трассировкой лучей.
Программа читает текстовые файлы, в которых хранится информация, описывающая объект и освещение сцены, и генерирует сцену из определенной точки расположения камеры (которая также описана в файле).
Имеются скомпилированные под Windows версии программы.
В программе POV-Ray 3.7 имеется встроенный бенчмарк (POV-Ray benchmark 2.01), который может запускаться как из меню главного окна программы (Render→Run Benchmark (All CPU’s)), так и из командной строки. При тестировании мы запускаем бенчмарк в режиме командной строки, поскольку это просто удобнее. Синтаксис команды следующий:
Вообще, скорость работы рендеров часто измеряется в PPS (Pixel Per Second), то есть в количестве отрендеренных пикселей за секунду. Но в нашем случае измеряется именно время рендеринга всей сцены.
LuxRender 1.6 x64 OpenCL
LuxRender относится к категории фотореалистичных или физически точных (без допущений) рендеров. Это бесплатная программа с удобным пользовательским интерфейсом. Сцены для LuxRender могут быть подготовлены в различных 3D-программах, таких как Blender, 3DS Max, Maya и пр.
Имеются версии LuxRender под Windows, Mac OS X и операционные системы на базе ядра Linux. При тестировании мы используем 64-битную Windows-версию программы с поддержкой технологии OpenCL (LuxRender 1.6 x64 OpenCL).
На сайте разработчика можно скачать сцену (luxtime.lxs), которую рекомендуется использовать для тестирования.
Поскольку LuxRender является фотореалистичным рендером, процесс рендеринга в нем может длиться бесконечно долго. Точнее, он длится до тех пор, пока пользователь не остановит процесс при достижении удовлетворительного качества. Пользовательский интерфейс программы LuxRender позволяет задать условия, при достижении которых рендеринг будет остановлен. Это могут быть временны́е ограничения, когда задается время рендеринга, либо ограничения по качеству, которое задается в S/p (Samples per pixel). Хорошее качество достигается при значении 100 S/p, однако такое качество требует очень продолжительного времени рендеринга. Поэтому при тестировании мы ограничиваем качество на уровне 30 S/p, измеряя время рендеринга, которое требуется для достижения такого качества.
Вlender 2.77a
В отличие от LuxRender и POV-Ray, Blender) — это уже полноценный редактор трехмерной графики и анимации. Приложение бесплатное и включает в себя средства моделирования, анимации, постобработки и монтажа видео со звуком и, что самое главное, средства рендеринга.
На сайте производителя есть версии этого программного пакета под Mac OS X, Linux и Windows. Для тестирования мы используем 64-битную Windows-версию Вlender 2.77a.
Кроме того, на сайте производителя есть примеры сцен, которые можно использовать для тестирования. Мы используем сцену BMW Benchmark (файл BMW27.blend.zip).
Запуск процесса рендеринга возможен как из интерфейсного окна самой программы (клавиша F12), так и из командной строки. Для тестирования режим запуска из командной строки более удобен. Команда запуска процесса рендеринга имеет огромное количество параметров, ознакомиться с которыми можно, набрав команду blender.exe -h.
Для тестирования мы используем следующую команду:
В данном случае подразумевается, что процесс рендеринга происходит в фоновом режиме (параметр —b) и рендерится только один кадр (параметр -f 1).
Тестовый стенд и методика тестирования
Для тестирования с использованием рендеров POV-Ray, LuxRender и Blender мы использовали стенд следующей конфигурации:
- Процессор: Intel Core i7-6950X (Broadwell-E);
- Системная плата: Asus Rampage V Edition 10 (Intel X99);
- Память: 4×4 ГБ DDR4-2400 (Kingston HyperX Predator HX424C12PBK4/16);
- Видеокарта: Nvidia Quadro 600;
- Накопитель: SSD Seagate ST480FN0021 (480 ГБ).
В ходе тестирования замерялось время выполнения тестовых задач.
Рассматривалась зависимость результатов тестирования от количества используемых ядер процессора, от частоты ядер процессора и от частоты памяти.
Зависимость результатов от количества ядер процессора
Количество используемых в ходе тестирования ядер процессора Intel Core i7-6950X регулировалось через настройки UEFI BIOS платы Asus Rampage V Edition 10. Напомним, что процессор Intel Core i7-6950X является 10-ядерным, но поддерживает технологию Hyper-Threading, поэтому операционной системой и приложениями он видится как 20-ядерный (имеет 20 логических ядер).
Мы не отключали технологию Hyper-Threading и меняли лишь количество физических ядер процессор от 1 до 10. В дальнейшем мы будем говорить о логических ядрах процессора, количество которых менялось от 2 до 20 с шагом 2.
Частота работы всех ядер процессора фиксировалась и составляла 4,0 ГГц.
Результаты тестирования следующие:
Для всех рендеров время выполнения тестовой задачи зависит от количества процессоров примерно одинаково. При удвоении числа ядер процессора время выполнения теста уменьшается примерно в 2 раза, скорость выполнения тестовых задач меняется почти линейно в зависимости от числа ядер процессора. Это особенно хорошо видно по графику зависимости нормированной скорости выполнения тестовых задач от числа ядер процессора (нормируется относительно времени выполнения задач на двух логических ядрах процессора).
Для рендеров POV-Ray и LuxRender скорость выполнения тестовых задач меняется линейно в зависимости от числа ядер процессора фактически во всем диапазоне: при увеличении числа ядер от 2 до 20 скорость возрастает почти в 10 раз. Для рендера Blender линейная зависимость скорости выполнения тестовой задачи от числа ядер процессора наблюдается лишь в диапазоне от 2 до 12 ядер. При большем количестве ядер (от 12 до 20) зависимость тоже почти линейная, но коэффициент линейной зависимости уже меньше. В результате при увеличении числа ядер от 2 до 12 скорость возрастает почти в 5,5 раза, а при увеличении числа ядер от 2 до 20 скорость возрастает в 7,7 раза.
Зависимость результатов от частоты процессора
Частота ядер процессора Intel Core i7-6950X менялась в настройках UEFI BIOS платы Asus Rampage V Edition 10 путем изменения коэффициента умножения. Частота работы всех ядер фиксировалась (то есть режим Turbo Boost отключался). Использовались все ядра процессора (10 физических/20 логических). Частота менялась от 3,0 ГГц до 4,2 ГГц с шагом 200 МГц.
Результаты тестирования следующие:
Как видно по результатам тестирования, во всех трех рендерах время выполнения тестовых задач зависит от частоты ядер процессора практически одинаково. При увеличении частоты с 3 до 4,2 ГГц (увеличение на 40%) время выполнения тестовых задач уменьшается примерно на 24%.
Зависимость результатов от частоты памяти
Теперь рассмотрим зависимость скорости выполнения тестовых задач от частоты работы памяти. Память DDR4 работала в четырехканальном режиме (по одному модулю на канал), а частота памяти менялась в настройках UEFI BIOS в диапазоне от 1600 МГц до 2800 МГц c шагом в 200 МГц. Тайминги памяти фиксировались и не менялись при изменении частоты. Все ядра процессора работали на частоте 4,0 ГГц.
Результаты тестирования следующие:
Как видим, скорость выполнения тестовых задач во всех рендерах никак не зависит от частоты работы памяти. По крайней мере, в четырехканальном режиме работы пропускной способности памяти DDR4 вполне достаточно даже на частоте 1600 МГц, и дальнейшее увеличение частоты памяти не позволяет ускорить выполнение тестовых задач.
Это типичный для большинства приложений результат. Приложения, скорость работы которых зависит от частоты памяти — это, скорее, исключение из правил.
Заключение
Итак, в этой статье были рассмотрены три приложения для рендеринга: POV-Ray 3.7, LuxRender 1.6 и Вlender 2.77a. На примере 10-ядерного процессора Intel Core i7-6950X было показано, что, во-первых, тестовые задачи в этих пакетах отлично распараллеливаются на все ядра процессора и загружают их на 100%. Именно это обстоятельство позволяет рассматривать данные приложения как отличный вариант для тестирования многоядерных процессоров. Зависимость скорости выполнения тестовых задач от числа ядер процессора является почти линейной для всех рендеров.
Во-вторых, было показано, что время выполнения тестовых задач во всех трех рендерах линейным образом зависит от частоты ядер процессора. При увеличении частоты процессора на 40% время выполнения тестовых задач уменьшается примерно на 24%.
В-третьих, было показано, что время выполнения тестовых задач во всех трех рендерах никак не зависит от частоты памяти DDR4 (в четырехканальном режиме и в диапазоне от 1600 до 2400 МГц).
В следующей статье данного цикла мы рассмотрим два видеоконвертора: HandBrake 0.10.5 и MediaCoder 0.8.45.5852.