Опубликовано 27 декабря 2002, 00:33

Сравнение Pentium 4 и Athlon XP в профессиональных приложениях. Часть третья: производительность систем в 3ds max 5.0

Изучение производительности систем при работе в 3D Studio Max. Эта сверхпопулярная программа компании Discreet для создания трехмерной графики и анимации заслуженно является лидером на рынке среди аналогичных решений...

Эта сверхпопулярная программа компании Discreet для создания трехмерной графики и анимации заслуженно является лидером на рынке среди аналогичных решений. Быстродействие компьютера в ней может сильно повлиять на продуктивность работы специалиста и скорость выполнения заказа. Поэтому мы уделим повышенное внимание детальному изучению производительности систем при работе в 3D Studio Max. У последней пятой версии этой программы не только улучшена оптимизация для микроархитектуры процессоров Intel Pentium 4, но и специально отлажена совместимость с технологией Hyper-Threading. Что ж, проверим это на практике.

Для определенности разграничим три основных вида работы программы 3ds max 5, каждый из которых критичен к скорости раб-станции:
• Проигрывание анимации в окнах проекции (черновое в процессе текущей работы).
• Финальный рендеринг одиночных кадров в высоком разрешении.
• Финальный рендеринг анимированных роликов (фильмов) с одновременным сжатием в нужный формат (и записью на диск).

Мы решили отказаться от готовых скриптов (типа MAXbench и др.) и проводили каждый тест вручную, перезагружая программу перед выполнением каждой операции. Все тесты выполнялись при экранном разрешении 1280х1024, 32-битном цвете и использовании OpenGL-драйвера видеокарты (вертикальная синхронизация отключена). Настройки 3ds max 5.0 соответствовали настройкам по умолчанию. В качестве объектов для выполнения тестов мы выбрали стандартные Benchmark-модели из комплекта поставки программы (со второго CD), а также несколько «библиотечных» сцен, использующих новые возможности 3ds max 5 (Ball Symmetry, Radiosity и Islands). За деталями описания каждой из этих сцен (количество полигонов, эффекты освещения и пр.) можно обратиться к документации производителя. На наш взгляд, они хорошо соответствуют основным возможностям программы и потребностям пользователей.

Финальный рендеринг одиночных кадров выполнялся для всех моделей из папки Benchmarks\Rendering и трех дополнительных моделей (Ball Symmetry, Radiosity и Islands) из папки Scenes (для Radiosity выбирался верхний правый квадрант). Все кадры рендерились в разрешении 800х600, кроме Vol_Light2 (1024х778). Измерялось время выполнения операции. Для модели Stadium результаты измерений не являются корректными, поскольку в этом случае программе не хватало оперативной памяти (512 Мбайт). В остальных случаях оперативки было достаточно, и разброс между несколькими попытками не превышал одной секунды (между попытками программа перезагружалась). Кроме того, оказалось невозможным на основании одной-двух сцен сделать универсальные выводы, причем повлияли именно «привнесенные» сцены (см. «Тесты финального рендеринга одиночных кадров в 3ds max 5.0»).

При проигрывании анимации моделей в окнах проекции измерялось среднее количество кадров в секунду для ролика в целом (показ всех кадров). Этот параметр бывает важен при создании и оценке реалистичности движения объектов в кадре, высокая скорость проигрывания анимации позволяет избежать пропуска кадров в случае «real-time»-просмотров. Везде использовалось одно окно проекции, кроме модели из файла 4viewport, где анимировалось четыре окна одновременно. Мы измерили скорость анимации для всех моделей из папки Benchmarks\Graphics, поскольку оказалось, что по одной-двум моделям нельзя составить полноценной картины поведения платформ в этом тесте (см. «Тесты проигрывания анимации в окнах проекции в 3ds max 5.0»).

Как оказалось, тестов рендеринга одиночных кадров явно недостаточно, чтобы правильно оценить быстродействие систем при финальном рендеринге анимированных роликов (последовательностей кадров для каждой из сцен). При рендеринге фильмов платформы порой вели себя совершенно иначе, чем в случае одиночных кадров! Особенно ярко это выразилось при использовании технологии Hyper-Threading. Для рендеринга роликов мы взяли восемь наиболее характерных сцен из папки Benchmarks\Graphics. Измерялось время выполнения операции. Фильмы (кадры) рендерились и сохранялись в видеоролик как в разрешении 800х600, так и в 320х240. Мы использовали три режима для выходного объекта (ролика). Во-первых, одновременно с рендерингом ролик кодировался (в программе 3ds max 5) в формат MPEG4 кодером DivX 5.02 Pro (использовались настройки кодера по умолчанию, размер кадра не менялся). В этом случае объем конечного файла был всегда очень мал, что фактически исключало влияние дисковой подсистемы. Зато в системе одновременно выполнялись два процесса (рендеринг и кодирование MPEG4), хотя в Task Manager Windows они были представлены по-прежнему одним процессом 3dsmax (см. скриншот далее). Во-вторых, ролик сохранялся на диске в несжатом виде. В этом случае мы исключаем дополнительную работу (кодера) во время рендеринга, но размер файла достигал нескольких сотен мегабайт, то есть влияние операций записи на диск исключать уже нельзя. И в-третьих, ролик лишь рендерился, но не сохранялся (отрендеренные кадры терялись). В этом случае мы измеряем чистую скорость рендеринга фильма без влияния кодера и диска. Результаты всех измерений представлены на диаграммах ниже.

Наконец, мы усреднили результаты производительности систем по каждой из трех категорий и вывели общий индекс производительности платформ в 3ds max 5.0, просто усреднив все три категории, без весовых коэффициентов (см. четыре последние диаграммы внизу страницы).

Как оказалось, финальный рендеринг одиночных кадров в 3ds max 5 оптимизирован для процессоров Intel Pentium 4 и технологии Hyper-Threading лучше, чем остальные операции. Действительно, из восьми таких тестов в семи лидерство Pentium 4 с частотой 3,06 ГГц было неоспоримо. Причем к 7–10-процентному приросту производительности за счет увеличения тактовой частоты (если сравнивать процессоры 2,80 и 3,06 ГГц с отключенным Hyper-Threading на плате Intel D850EMVR) добавлялось еще 10–15% за счет применения технологии Hyper-Threading! Наконец, использование более быстрых платформ с двухканальной DDR266 и PC1066 позволяет поднять скорость таких систем при рендеринге еще на 1–3%, то есть общий прирост быстродействия здесь доходит до 25–30%.

Технология Hyper-Threading работает при рендеринге одиночных кадров в 3ds max 5 очень эффективно. Практически всегда при таких операциях загрузка процессора составляет полные 100% (оба треда оптимально проходят через общий конвейер, без пауз) — см. график загрузки процессора и скриншот менеджера задач. А прирост скорости рендеринга только за счет HT составляет от 3 до 18 процентов в зависимости от модели (при этом прирост за счет частоты не превышает 10%).

3DSMax50_small.GIF

3DSMax50_small.GIF

TM_3dsm5.gif

TM_3dsm5.gif

В целом новый DDR-чипсет E7205 выглядит слегка пошустрее старичка 850E с памятью PC1066, хотя последняя все еще находится в числе наиболее быстрых платформ (особенно при работе в режиме «Турбо» на платах ASUS). Интересно и то, что чипсет 845PE с памятью DDR333 и процессором Pentium 4 2,80 ГГц в большинстве случаев быстрее не только PC800, но и PC1066. Сказывается его огромное преимущество в латентности. А процессор AMD Athlon XP 2800+ на nForce2 с двухканальной DDR333 в среднем оказался при рендеринге одиночных кадров быстрее Pentium 4 2,80 ГГц, но заметно медленнее старшего Pentium 4, хотя в одном из тестов (BallSymmetry) все же умудрился обойти всех!

Проигрывание анимации в окнах проекции требует от системы других способностей, нежели финальный рендеринг. И тут диспозиция платформ слегка меняется: в семи из пятнадцати тестов анимации Athlon XP 2800+ на nForce2 входит в призеры (а в четырех вообще лидирует!), прирост от использования Hyper-Threading уже не так велик и в среднем меньше, чем прирост просто за счет более высокой тактовой частоты процессора — 3 против 4–5%. Причем в некоторых случаях прироста от HT нет вообще, а иногда он доходит до 5–8%. Меньший эффект от HT можно понять, если взглянуть на загрузку процессора во время тестов анимации: в зависимости от модели загрузка колеблется от 55 до 90%, но никогда не доходит до 100%, как было при финальном рендеринге (см. график справа). Это говорит о том, что часть времени конвейер проводит в ожидании команд, несмотря на явную и достаточно эффективную двухпотоковость работы (в случае использования приложением только одного из двух логических процессоров загрузка равна 50%). К сожалению, четкой зависимости между загрузкой CPU и приростом от HT в этих задачах не наблюдается: иногда даже при 90-процентной загрузке почти не чувствуется влияние HT, а порой и 60-процентная загрузка приводит к росту производительности на 5–7% только за счет HT. Таким образом, при анимации работа HT в программе 3ds max 5 еще недостаточно оптимизирована, хотя в среднем прирост все же есть.

Интересно также, что влияние более быстрой памяти в подобных задачах более значительно, и, например, Pentium 4 2,80 ГГц с PC1066 на плате ASUS может работать так же быстро, как Pentium 4 3,06 ГГц с PC1066 на плате Intel (без учета HT, cм. усредненный индекс производительности), а PC800 на плате ASUS (в турборежиме) может даже обойти PC1066 на плате Intel. Новый E7205 здесь снова в лидерах, хотя PC1066 приближается к нему вплотную.

Третий класс исследованных нами задач для 3ds max 5 — финальный рендеринг видеороликов — выявил существенный недостаток «оптимизации» этой программы для технологии Hyper-Threading. Если при простой анимации или рендеринге одиночных кадров мы видели неплохой выигрыш от применения HT, тот здесь оказалось, что HT способна не только помочь, но и навредить! Тесты показали, что в большинстве случаев финального рендеринга фильмов заметно ухудшается быстродействие системы (в среднем около 5% на данных моделях) при использовании процессора Intel как двух логических. Если HT отключить в BIOS Setup или средствами Windows назначить приложению строго один процессор (см. скриншот), то производительность системы в этом виде работ повышается (зато падает в двух предыдущих). Из-за такой проблемы Athlon XP 2800+ на nForce2 на задачах рендеринга роликов смог уверенно взять серебро, обогнав все Pentium 4 3,06 ГГц с работающей HT!

TaskMan_set.gif

TaskMan_set.gif

При этом средняя загрузка процессора оказалась не ниже, чем при проигрывании анимации — от 65 до 95% в зависимости от модели, то есть оба логических процессора активно работали и конвейер почти не простаивал. С одной стороны, такое ухудшение можно было бы связать с возможным появлением дополнительного процесса кодирования видео (или записи большого несжатого видеофайла на диск), однако в системе по-прежнему присутствовал лишь один текущий процесс (3dsmax, см. скриншот), который и выполнял параллельно несколько задач.

TaskMan_setAffinity48direct.gif

TaskMan_setAffinity48direct.gif

Похоже, что именно он порождает внутри себя потоки, которые распределяются по двум логическим процессорам неоптимальным образом и вносят дополнительные задержки в выполнение кода (при отключенной HT процессор демонстрирует в этих задачах стопроцентную загрузку и работает быстрее, без idle-циклов). Более того, даже в случае отсутствия одновременного с рендерингом кодирования в MPEG4 (кодером DivX 5.02 в 3dsmax) и/или исключения записи на диск (отрендеренные кадры терялись) ухудшение от HT не исчезало. Не исключено, что код этого приложения настолько вылизан под один процессор Pentium 4, что добавление второго просто начинает мешать.

Тем не менее, если усреднить показатели платформ по всем трем видам задач, то в целом выигрыш от HT для 3ds max 5.0 есть (2,6%), но он не так велик, как можно было бы ожидать. Занятно, что платформа Athlon XP 2800+ на nForce2 делит список строго пополам: она быстрее (в среднем) всех систем на Pentium 4 2,80 ГГц, но медленнее Pentium 4 3,06 ГГц. Тут заслуженно победил новенький Granite Bay с двухканальной DDR266, хотя и «турбо»-PC1066 на 850E ему практически не уступает.

Тесты финального рендеринга одиночных кадров в 3ds max 5.0

Тесты проигрывания анимации в окнах проекции в 3ds max 5.0