Параллелится ли рендеринг?

В период летнего затишья выдаются иногда деньки, когда есть время заняться давно задуманными исследованиями. Компания Е-Троник в содружестве с компанией  Netberg провели  оценочное  тестирование распараллеливания при рендеринге изображений.

Целью было  узнать насколько можно  использовать весь функционал и все возможности  многоядерного сервера на процессорах  Intel Xeon E5405 и  AMD Opteron Twelve Core Model 6174 при обработке изображений.

Были определены две задачи :

  1. Сравнить производительность базового сервера на 4-х ядерных процессорах  (   Intel Xeon E5405)  и сервера с 4-мя 12 ядерными процессорами (AMD Opteron Twelve Core Model 6174).
  2. Протестировать качество распараллеливания V-Ray на большом количестве ядер при рендеринге изображений.

Для выполнения поставленных задач были выбраны два теста.

  1. Бенчмарк CINEBENCH
  2. Рендеринг проектов Autodesk 3D Max с использованием рендера  V-Ray for 3ds Max

Описание тестов

  1. Бенчмарк CINEBENCH, версия 11.5
    CINEBENCH является межплатформенной программой для оценки рабочей характеристики компьютера. Он основан на программе для анимации MAXON CINEMA 4D.Cinebench состоит из двух составляющих  — тест производительности графической карты и тест производительности центрального процессора. Мы использовали только тест центрального процессора.CINEBENCH может измерять системы имеющие до 64-ёх потоков. Тестовая сцена содержит в себе приблизительно 2.000 объектов состоящих из более 300.000 полигонов. Результат выдаётся в очках (pts). Чем больше номер, тем быстрее  процессор.
  2. Рендеринг в среде Autodesk 3ds max 2011 64 bit с использованием рендера  V-Ray 2.0  for 3ds Max.

    3ds Max— это одна из популярных программ для работы с трехмерной графикой, включает средства моделирования, анимации и рендеринга. Предназначенна для специалистов в области разработки игр, визуальных эффектов и дизайна.VRay— самая популярная рендер-программа для 3ds max. VRay использует в расчетах передовые вычислительные методы, обеспечивающих ему дополнительное преимущество в качестве и скорости расчетов по сравнению с аналогами.В тестировании были задействованы два проекта, называемые в дальнейшем – Проект 1 и Проект 2.Характеристики Проекта 1:

    432 render objects
    1385 render instances
    2 render lights
    Размер кадра 1200×900
    Производился рендеринг первых трех кадров.Характеристики Проекта 2:622 render objects
    14541 render instances
    3 render lights
    Размер кадра 1024×512
    Производился рендеринг одного (первого) кадра.

Оборудование, использованное в тестах.

Для сравнительных тестов использовались два типа серверов:

  • В качестве базового сервера для сравнения использовался сервер Etegro ES330G2 на базе процессора   Intel Xeon E5405 с частотой 2.00 GHz.
  • В качестве основного сервера использовался сервер SUPERMICRO 4042G-6RF с  4 процессорами  AMD Opteron Twelve Core Model 6174 с частотой 2.2GHz.

Для простоты в дальнейшем будет называть их сервер на базе Intel   и сервер на базе AMD.

Результаты тестов

Cinebench, CPU

Результаты первого теста представлены в таблицах 1 и 2. Численные данные свидетельствуют  о  линейном росте производительности при росте количества ядер. Это говорит о  хорошей распараллеливаемости данного теста, но так же может свидетельствует о его некоторой его искусственности. Уж слишком идеальной получается картина.

Отметим так же интересный момент. Производительность ядер в процессорах   Intel Xeon E5405 ( 2007 год)  и Amd  Opteron  6174 ( 2010 год)  практически идентична.  Это иллюстрирует  глобальную  тенденцию о том что  наращивание производительности компьютеров ( по закону Мура)  идет по пути увеличения количества ядер при неизменной производительности отдельного ядра.

Таблица 1. Сервер на базе Intel

Задействованные ядра Рейтинг
1 0,61
2 1,22
4 2,43
Таблица 2. Сервер на базе AMD

Задействованные ядра Рейтинг
1 0,66
2 1,28
4 2,43
8 4,93
16 9,77
32 17,43
48 23,33

Данные таблиц иллюстрируются графиком.


Проект 1.

Теперь посмотрим на результаты второго теста. Картина  отличается  от наблюдаемой нами в первом тесте.  Мы видим хорошую масштабируемость до 4 ядер,  несколько хуже  масштабируемость на 8 ядрах. И далее производительность не только не растет, а даже падает. Подобную же картину наблюдаем и на втором тесте V-Ray.

Таблица 3. Сервер на базе Intel

Задействованные ядра Рендеринг, сек
1 3321
2 1765.6
4 959.0
Таблица 4. Сервер на базе AMD

Задействованные ядра Рендеринг, сек
1 2869,1
2 1657,1
4 922,7
8 650,1
16 679
32 759,2
48 886

 

Данные таблиц иллюстрируются графиком.

Проект 2.

Данные по тестированию на втором проекте в среде 3d max приведены в таблицах 5,6.

Таблица 5. Сервер на базе Intel

Задействованные ядра Рендеринг, сек
1 11904.6
2 6369.4
4 3614.6
Таблица 6. Сервер на базе AMD

Задействованные ядра Рендеринг, сек
1 9813.3
2 5759,7
4 3291.9
8 2513.8
16 3572.7
32 3824.4
48 3856.2

Данные таблиц иллюстрируются графиком.

 

Выводы

На основе полученных данных  можем сказать что :

  1.  В условиях когда современый процессор Intel имеет 10 ядер, а процессор Amd – 12 ядер, мы находимся в ситуации, когда рендеринг изображений не позволяет использовать их эффективно  на одной задаче.
  2.  Использовать больше 8 ядер на одну задачу, как показала практика,  неэффективно.  Для достижения наибольшей скорости рендеринга необходимо использовать процессоры с наиболее производительным ядром.
    В наших  тестах использовался довольно «старый» процессор Intel (2007 г.) и это дает нам основание сделать предположение,  что ядро современного   процессора  Intel будет  более производительным.
    Поэтому, если мы имеем дело c одним проектом и получить результат нужно как можно быстрее, решение на Intel будет более оправданным.
  3. Если имеем дело с множеством проектов ( рендерферма)  и/или с рендерингом видеоряда ( множество кадров) то ситуация неоднозначна. За счет того что разные проекты(кадры) полностью независимы, мы получим бизкое к  идеальному распараллеливание, отводя каждому кадру/проекту  не более 8 ядер. Предполагая  что производительность одного современно ядра intel выше чем ядра в процессорах amd и учитывая что в новейших процессорах AMD будет 16 ядер (2011) против 10 у Intel, выбор  сервера становится не столь  очевидным. Большее количество ядер у AMD при лучшей производительности одного ядра у Intel.

Подводя итог, мы пришли к вполне предсказуемому  и парадоксальному для конечного заказчика результату. Нет лучшего оборудования для решения всех задач. Каждая платформа имеет свои сильные и слабые стороны, вопрос заключается в том,  какие из этих сторон  важны именно для решения конктетной задачи .

Взвесив все перечисленные «ЗА» и «ПРОТИВ»  заказчик может сделать выдор в пользу того или иного оборудования и, соотвественно, его цены.