Unigine Heaven: Linux и Windows

Сегодня мы продолжаем наше знакомство с бенчмарком Unigine Heaven. В комментариях к предыдущей статье наш пользователь amlaml привел свои результаты тестов как на Linux, так и на Windows, из которых было видно, что в данном бенчмарке не только реализация графики при помощи OpenGL уступает в производительности DirectX под Windows, но и, что более тревожно, OpenGL под Linux серьезно уступал по скорости OpenGL под Windows. Оставить такие факты без внимания было невозможно, и поэтому сегодня мы займемся более глубоким тестированием обеих платформ с использованием Unigine Heaven как под DirectX, так и под OpenGL.

В качестве тестовой платформы использовался следующий компьютер:
Processor: Intel Core 2 Quad CPU Q9550 @ 2.84GHz (Total Cores: 4)
Motherboard: ASUSTeK P5K
Chipset: Intel 82G33/G31/P35/P31 + ICH9
Memory: 3959MB
Disk: 500GB Western Digital WDC WD5000AAKS-0 + 250GB Seagate ST3250410AS
Graphics: ATI Radeon HD 5870 1024MB (850/1200MHz)

В качестве операционных систем использовались Arch Linux с ядром 2.6.33-1 (x86_64) и Windows 7 (x86_64). Для обеих ОС использовались мартовские видео драйверы Catalyst 10.3, а также непосредственно сам тест Unigine Heaven 2.0.

От использования Phoronix Test Suite пришлось отказаться по причине его недостаточной поддержки Windows на момент проведения тестов, что однако существенно усложнило сам процесс тестирования, так как многое пришлось делать вручную. Для платформы Windows помимо оценки производительности OpenGL, также не были обделены вниманием все три поддерживаемые бенчмарком версии DirectX. Само тестирование проводилось на двух наиболее распространенных сейчас разрешениях 1280х1024 и 1920х1200. Каждый тест проводился 3 раза, после чего вычислялось среднее арифметическое результатов.

При тестировании использовались следующие настройки графики:
Shaders: high
Textures: high
Filter: trilinear
Anisotropy: 4x
Occlusion: enabled
Refraction: enabled
Volumetric: enabled
Replication: disabled
Tessellation: disabled

Для DirectX 11 не использовалась тесселяция, так как она еще не поддерживается официально для OpenGL по причине отсутствия полной поддержки в мартовском видео драйвере от ATI. Также из-за того, что включение сглаживания приводило к серьезным артефактам в изображении в предыдущих тестах, в данном случае оно было отключено как для Linux, так и для Windows, чтобы условия тестирования были одинаковыми. Итак перейдем непосредственно к результатам.

Результаты тестов для разрешения 1280х1024

Рис 1. Результаты тестов для разрешения 1280х1024.

На графике изображены минимальные, средние и максимальные значения выдаваемого количества кадров в секунду для DirectX разных версий и OpenGL. Также для выявления процессорозависимости тестирование проводилось на частотах центрального процессора 2,8 ГГц и 3,4 ГГц. Из результатов видно, что, во-первых, с увеличением версии DirectX производительность падает, и особенно это заметно при переходе от 10 к 11 версии. Во-вторых, увеличение частоты центрального процессора практически не оказывает никакого влияния на результат, хотя казалось бы на таком разрешении он должен был бы быть узким местом.

Теперь перейдем к OpenGL. Во-первых, среднее количество кадров в секунду одинаково как для Windows, так и для Linux, что не может не радовать. Во-вторых, увеличение частоты процессора очень положительно сказывается на производительности для обеих платформ.

Отдельного замечания заслуживает минимальное количество кадров в секунду. Дело в том, что в отличии от DirectX при использовании OpenGL разброс минимальных значений от теста к тесту был просто огромным и варьировался от 10 до 48 кадров. Теперь объясню, как это было на практике. Данные минимальные значения не подразумевают, что в бенчмарке присутствуют какие-то ресурсоемкие сцены, при воспроизведении которых, количество кадров падало бы до этих значений. В тесте есть 3 момента, где данные просадки наблюдались. Все эти моменты, во-первых, находились при переходе между сценами, когда действие переносилось на другой остров и видимо требовалась подзагрузка дополнительных данных, а во-вторых, в двух сценах использовался фильтр Depth of Field или по нашему "улучшенная глубина резкости", замыливающий резкость на тех объектах куда наблюдатель в данный момент не смотрит. Данный эффект свойственен глазу человека и поэтому очень часто применяется в фотографии и кино, а с недавних пор стал активно использоваться в играх для придания реалистичности. Проблема в том, что в Unigine Heaven при использовании OpenGL как в Windows, так и в Linux при применении этого фильтра вместо красивого и реалистичного замыливания можно было наблюдать только как объекты закрывались черной текстурой. Чтобы удостовериться, что это не проблема драйверов ATI, я запустил тест на мобильной видеокарте Nvidia 8400m G. Там были аналогичные проблемы с той лишь разницей, что сцены с использованием DoF там были целиком закрыты этой черной текстурой. К тому же данные просадки были настолько кратковременны, что наблюдая за счетчиком количества кадров, заметить их было практически невозможно, так как они составляли какие-то доли секунды, и при этом они появлялись не всегда. Делая несколько тестов подряд, можно было добиться того, что они не появились бы ни разу и тогда минимальное значение кадров доходило до 48. Поэтому к минимальным значениям для OpenGL следует относиться довольно скептически и избегать их сравнивать между собой.

Глядя на результаты OpenGL и DirectX, невозможно не заметить, что все версии последнего оказались быстрее на этом разрешении. Посмотрим, что будет на более высоком разрешении.

Результаты тестов для разрешения 1920х1200

Рис 2. Результаты тестов для разрешения 1920х1200.

В целом многое осталось также. Чем старше версия DirectX, тем ниже была его производительность. Увеличение частоты процессора никак не помогало повысить результаты для DirectX, и наоборот очень радостно отзывалось ростом производительности при использовании OpenGL. Разница между этими двумя разрешениями состоит в том, что здесь OpenGL довольно серьезно обогнал DirectX 11.

Такая отзывчивость OpenGL на увеличение частоты процессора и полное безразличие со стороны DirectX наводит на мысль, что первый использует его более интенсивно. Посмотрим на загрузку процессора, работающего на частоте 3,4 ГГц, при проведении тестирования на разрешении 1920х1200.

Загрузка процессора при использовании OpenGL и DirectX на разрешении 1920х1200

Рис 3. Загрузка процессора при использовании OpenGL и DirectX на разрешении 1920х1200.

Во-первых, следует отметить, что Unigine Heaven использует только одно ядро процессора на обоих операционных системах. А во-вторых, действительно OpenGL намного больше использует процессор. Более того даже на таком большом разрешении, когда основная нагрузка должна ложиться на видеокарту, и при работе на повышенной частоте, видны области когда ядро используется на 100%, а значит мощности одного ядра не достаточно для получения максимального результата. Трудно объяснить чем вызвана такая большая разница в потреблении мощности процессора. Если это результат еще недостаточной оптимизации движка при использовании OpenGL, то будем надеяться, что это будет исправлено в следующих версиях. С другой стороны если разработчики решили перенести часть нагрузки с видеокарты на процессор, то это довольно позитивно, так как мощности процессоров постоянно растут, но современные игры довольно редко используют их потенциал полностью. Однако в этом случае необходимо, чтобы движок мог эффективно использовать несколько ядер, чего мы пока, увы, не наблюдаем.

Что касается качества выдаваемой картинки, то я честно пытался ее найти, делая скриншоты, и долго вглядывался в детали. Но если разница и есть, то она очень маленькая. Единственное что мне удалось заметить, так это то, что на DirectX 9 картинка выглядит немного светлее, а при использовании OpenGL немного отличаются текстуры некоторых металлических деталей, от чего они выглядят так, как будто их попытались отчистить от копоти при помощи шкурки, но довести до блеска так и не успели.

Пока без оценки
Dmitry аватар

Ar, подключай картинки. Я так и не смог найти где в настройках включается Full HTML. :) Может у меня действительно нет на это прав?
Аmlaml, когда я готовил статью и рылся в интернете на тот случай, если кто-то уже проводил подобный тест, я наткнулся на обсуждение Unigine Tropics на форуме Nvidia, где один участник жаловался на плохие результаты теста из-за ошибки в драйверах под Linux. Эта ошибка приводит к тому, что карта даже под нагрузкой работает в экономном режиме и не переключается на штатные частоты. Так ли это, можно проверить если включить тест в оконном режиме и глянуть в панели карты PowerMizer. Там показаны текущие частоты карты.
Ну и как обычно приглашаю всех желающих к обсуждению :)

Ваша оценка: Нет
Беляев_Николай аватар

отличная статья! просто и доходчиво написал

Ваша оценка: Нет
amlaml аватар

Более успешно перемерил мою видеокарту Nvidia Geforce 9600GSO (384Мб).
Обновил убунту, обновились нвидиевские драйвера, и дело пошло на лад :-))
Догнал линуксовский юниджин-хевен его же виндовсовского!
Но, правда, только в опенЖЛьном варианте, соответственно. В директТриДшном варианте в Вин7 результат выше почти в два раза.

Ваша оценка: Нет
Dmitry аватар

Да, пока чтобы OpenGL мог тягаться с 9-м и 10-м DirectX в этом тесте нужен процессор с очень быстрым ядром. Вообще на Форониксе была статья, что Unigine inc. готовит обновление уже с полной поддержкой тесселяции для OpenGL. Может к этому времени они решат проблему загрузки процессора :)

Ваша оценка: Нет
amlaml аватар

Я рад, что ОпенЖЛь и Линукс "реабилитированы" :-)))

Когда выйдут новые нвидиевские драйвера для линукса, перемеряю у себя тоже.

_____________
А я тут на днях со своим iP6300 (3,9ГГц) сравнил сто-долларовый 4х-ядерный атлон (до 3,6ГГц погнался) и i3 (4,4ГГц - без проблем, и ДДР3 пошёл на 1,9ГГц с лишним).

i3, особенно при таком разгоне, машина - зверь:)

Память и кэши работают существенно быстрее, чем у кор2дуо. И, благодаря этому, большинство тестов и задач бегают быстрее на десятки процентов
(и гипер-тридинг тоже, похоже, допилили по сравнению с пентиумом4 - свои процентиков 20-30 вносит).

На хорошо оптимизированных программках с обработкой случайных данных i3 ведёт себя хуже, но не провально, как в своё время P4. Благодаря лучшему разгону, результаты i3 и в этом худшем случае не уступают кор2дуо.

На задачках, которые хорошо распараллеливаются, например на тесте скорости 7zip, хорошо показал себя 4х-ядерный атлон. Но, опять же, благодаря гораздо более высокому разгону, i3, на 2 ядрах с гипертридингом, его догнал.

В общем, мораль сей басни такова:
Если уже стоит кор2дуо или квад, можно спокойно жить дальше, прогресс у новых процессоров есть, но революция не произошла.

Если собираетесь разгонять - берите i3 (i5, i7 :-)

А если разгон не планируется, то 4х-ядерный атлон2 (или феном2) очень даже интересно. (К тому же можно взять 2х-ядерный феном2 и разблокировать ещё два ядра!)

Ваша оценка: Нет
Dmitry аватар

Если уже стоит кор2дуо или квад, можно спокойно жить дальше, прогресс у новых процессоров есть, но революция не произошла.

Именно поэтому я купил Q9550 вместо своего старого кор2дуо, которого иногда стало уже не хватать, так как если бы решил переходить на новые i5/i7, то пришлось бы покупать новую мать и новую память, а разница не так уж велика. Поэтому отделался малой кровью :)

Ваша оценка: Нет
Яндекс.Метрика