Введение
Похоже наша прошлая статья наделала много шуму. В ней мы анализировали критику nVidia по поводу нового теста Futuremark 3DMark 2003. К тому же статья послужила причиной горячих споров. Прекрасно, этого мы и хотели!
В то же время Futuremark, разработчик спорного программного продукта, ответила жесткой атаке nVidia на свой продукт. В PDF документе, опубликованном на их сайте, Futuremark отклоняет обвинения nVidia и излагает свой собственный взгляд на ситуацию с приведением контрдоказательств. Наконец, ATi тоже разродилась официальным документом по этому вопросу, где компания очерчивает свое отношение к 3DMark 2003.
Но начнем мы с Futuremark. Теперь компания (официально) ответила на обвинения nVidia. Сразу же отметим, что цитаты наклонным шрифтом взяты из соответствующих документов компаний, и они могут не совпадать с нашим мнением.
Futuremark:
3DMark 03 – синтетический тест, разработанный с единственной целью – обеспечить пользователей инструментом измерения производительности современного DirectX 9 оборудования. Пока что не выпущено никаких других существенных DirectX 9 приложений, и до выхода DirectX 9 игр нам придется подождать не менее шести месяцев. 3DMark 03 позволяет вам заглянуть вперед, поэтому трудно переоценить его уникальную значимость для пользователей, которые уже сегодня получают достаточную информацию для покупки продукта того или иного производителя.
Это не отменяет наши рекомендации независимым тестерам опираться и на результаты стандартных игровых приложений в своих измерениях производительности. Однако следует отметить, что получаемые результаты верны лишь для какой-либо конкретной игры, в то время как 3DMark 03 позволяет оценить общую картину производительности и выявить перспективность “железа”.
Futuremark позиционирует новый 3DMark в роли теста для измерения предполагаемой производительности ускорителей класса DirectX 9 в играх, которые появятся в следующие 6-12 месяцев. Однако он не является тестом производительности современных видеокарт в современных играх – в этом заключалось одно из обвинений nVidia в их документе.
NVIDIA:
Главная цель каждого теста – снабдить пользователя достоверной информацией, чтобы он смог определиться в выборе того или иного продукта. В качестве игрового теста 3DMark 03 должен максимально близко эмулировать игровые задачи, которые пользователь будет запускать на своем компьютере. Тест должен нагружать графический чип точно так же, как и пользовательские игры. Графические функции, способы рендеринга и эффекты должны быть приближены к играм, или пользователь получит в свое распоряжение неверную информацию и впоследствии его ожидания не оправдаются.
3DMark 03 комбинирует художественную работу со специально разработанным движком рендеринга, использующимся при отображении демо сцен. Следует отметить, что эти демо сцены имеют мало общего с реальными играми. Поэтому лучше воспринимать 3DMark 03 как красивую демонстрацию, а не как игровой тест. Примеры, включенные в нашу статью, наглядно демонстрируют несоответствие 3DMark 03 игровым приложениям. Поэтому данный тест не следует использовать как замену играм или как тест игровой производительности.
Пользователь получает вред от подобного теста по трем позициям. Во-первых, конечно, пользователя вводят в заблуждение. Решение о покупке того или иного ускорителя будет основываться на неправильных данных, что приведет к ошибочному выбору. Во-вторых, производителям графических ускорителей приходится фокусировать свое внимание и инженерные ресурсы на оптимизацию драйверов под искусственно созданные примеры, нетипичные для игровых приложений. Подобная оптимизация никак не влияет на игровую производительность и не дает никаких преимуществ конечному пользователю. Наконец, инженерные усилия, потраченные на подобную оптимизацию, ушли фактически впустую – в ущерб работе над игровой производительностью, а, значит, в ущерб пользователю.
Введение, продолжение
Итак, главное, что беспокоит nVidia в 3DMark 2003 – тест не отражает производительность видеокарт в существующих сегодня играх. nVidia заявляет о том, что тестовые сценарии не имеют никакой связи с реальными игровыми приложениями, в том числе упоминая и отсутствие оптимизированного под “железо” кода, который можно найти в любой современной игре. Futuremark, кстати, говорит о том же самом:
Futuremark:
К тому же тесты в играх не всегда создаются с такой же щепетильностью и вниманием к деталям, на которые мы опирались в 3DMark чтобы гарантировать независимость и надежность теста. Игры могут содержать специальные участки кода для различных продуктов; по маркетинговым целям или для обеспечения лучшей совместимости, что не дает права говорить об общем и непредвзятом подходе (по меньшей мере).
Futuremark объясняет, что цель компании заключалась не в отображении производительности высоко оптимизированных под “железо” игр. Вместо этого компания постаралась создать “нейтральный” тест, который поможет показать эффективность, с которой карты работают под “стандартным кодом”. Чтобы гарантировать полноту и независимость оценки производительности данной карты, Futuremark рекомендует следующую процедуру:
Futuremark:
Мы даем следующие рекомендации для правильного тестирования:
- Использовать игровые тесты, если вы желаете узнать скорость работы игры на вашем компьютере;
- Использовать 3DMark 2001 для сравнения общей производительности DirectX 7 или DirectX 8 совместимого оборудования;
- Использовать 3DMark 03 для сравнения общей производительности DirectX 9 совместимого оборудования.
Давайте подведем промежуточный итог. Позиции очевидны: nVidia не нравится тот факт, что 3DMark использует “нейтральный” стандартный код, поскольку он не отражает реальные игры. Futuremark, с другой стороны, пожелала создать платформу, которая сможет дать “нейтральные” результаты для DirectX 9 оборудования. Возникает интересный вопрос: почему у nVidia появляются проблемы при тестировании ее карт со стандартным, то есть не оптимизированным кодом?
Следующий комментарий Джона Кармака по поводу Doom III может пролить некоторый свет. Он взят из его обновления “плана”.
Джон Кармак (id):
На сегодняшний момент NV30 немного быстрее в большинстве сцен Doom, чем R300, однако существуют некоторые сцены, где R300 чуть выходит вперед. Данная ситуация усложняется тем, что карты используют разные методики визуализации в игре.
R300 может запускать Doom в трех различных режимах: ARB (минимальные расширения, без отражений, без вершинных программ); R200 (полнофнукциональный рендеринг, использующий чаще всего один проход); ARB2 (фрагментные программы с плавающей запятой, мелкие улучшений качества, всегда один проход).
NV30 может запускать Doom в пяти различных режимах: ARB; NV10 (полнофункциональный, пять проходов рендеринга, без вершинных программ); NV20 (полнофункциональный, два или три прохода рендеринга); NV30 (полнофункциональный, один проход); и ARB2.
Режим R200 оказывается лишь немного быстрее режима ARB2 на R300, поэтому по умолчанию используется режим ARB2 в связи с улучшенным качеством. NV30 работает в режиме ARB2 НАМНОГО медленнее, чем в NV30. Сегодня – практически в два раза медленнее. Это довольно печально, поскольку если вы произведете прямое сравнение на одном и том же API, то R300 будет работать в два раза быстрее, однако если вы перейдете к режиму производителя, NV30 выйдет вперед.
Причина заключается в том, что ATi всегда все осуществляет с высокой точностью, в то время как nVidia поддерживает три различных точности с различной производительностью. На самом деле ситуация еще более сложная. Используемая ATi точность находится как раз между двумя значениями точности nVidia, поэтому когда nVidia запускает фрагментные программы, они обладают более высокой точностью, чем у ATi, что приводит к некоторому уменьшению скорости. nVidia заверила меня, что они обладают значительным потенциалом по улучшению производительности фрагментных программ с помощью технологии компиляции улучшенных драйверов.
Если читать между строк, то становится очевидным: у nVidia NV30 (следовательно, у всей последующей линейки включая NV31 и NV34) могут возникнуть “проблемы” с запуском стандартного кода. Причина довольно проста и она заключается в аккуратности подсчета эффектов пиксельных программ. ATi R300 использует 24-битную точность с плавающей запятой (на компонент), в то время как NV30 – 16-битную или 32-битную точность. Поэтому когда программа работает в стандартном режиме кода ARB2 (ARB=(OpenGL) Architecture Review Board), чипам nVidia приходится выполнять 32-битные вычисления, в то время как ATi R300 работает “только” с 24 битами. Можно сказать, что GeForce FX стала жертвой своей расхваленной точности работы с плавающей запятой, которая рекламировалась как одна из ключевых возможностей чипа после его выпуска. В то время как NV30 также может работать с 16-битной точностью, она слишком негативно сказывается на качестве картинки. Похоже, что с 24-битной точностью ATi удалось найти золотую середину, обеспечивая хорошее качество без ущерба производительности. Подождите-ка. А может ли увеличение производительности, которое мы получили при переходе от драйвера nVidia версии 42.63 на 42.68 (см. нашу заметку), быть связано с принудительной установкой в 16-битную точность? Еще один интересный вопрос: как это соответствует спецификациям Microsoft WHQL?
Введение, продолжение
Сайт Beyond3D опубликовал интересное интервью с Джоном Кармаком, посвященное этому вопросу.
B3D: Почему режим ARB2 так медленно работает на NV30? Может ли на это влиять только лишь увеличенная точность, ведь NV30 работает с намного большими тактовыми частотами по сравнению с R300, а 96 бит против 128 бит – каких-то 33% разницы.
J.C.: Вероятно, архитектура R300 более прямолинейна, в то время как NV30 достаточно изощрена, чтобы требовать более серьезного анализа и планирования, поэтому мы наблюдаем существенное увеличение производительности с последними драйверами.
Похоже, что архитектура NV30 требует намного большей оптимизации для оптимального запуска кода шейдера (читайте: быстрого), в то время как R300 лучше справляется со стандартным кодом. Это объясняет жесткость и агрессивность критики nVidia по поводу нового 3DMark 2003, поскольку у GeForce FX (NV30) наблюдаются некоторые проблемы с неоптимизированным кодом шейдеров, причем этот недостаток будет присутствовать и в NV31 и NV34. Если указанные факты верны – что весьма вероятно – они могут серьезно подпортить продажи nVidia.
Если быть честным, в реальных приложениях подобный “недостаток” вряд ли будет так заметен, как в тесте 3DMark. В конце концов, nVidia очень убедительно просит разработчиков игр оптимизировать и адаптировать свой код под карты компании.
Поэтому мы видим, что с точки зрения nVidia критика нового 3DMark 2003 обоснованна. В то же время 3DMark получает новую положительную роль нейтрального теста, способного показать качество разработки 3D “железа” под архитектуру Microsoft DirectX. Похоже, что 3DMark 2003 невольно выявил главный недостаток нового поколения чипов nVidia. Но один вопрос еще остается открытым – что понимать под действительно “нейтральным” кодом, и по каким критериям это оценивать?
В своем собственном заключении ATi соглашается с позицией Futuremark:
ATi:
ATi полностью поддерживает новый графический тест 3DMark 03. Мы признаем его в качестве ценного диагностического инструмента для оценки производительности текущих и будущих графических приложений, в том числе и игр (которые должны выйти в течении следующего года-двух). Мы верим, что использование синтетических тестов типа 3DMark 03 совместно с реальными приложениями и игровыми тестами дает наиболее полную картину общей производительности и позволяет более аккуратно оценить графическое “железо”.
Каждая игра отличается своими особенностями и использует свою технику, опираясь на различные аспекты компьютера. Некоторые игры нагружают пиксельную скорость заполнения или обработку вершин, другие – пропускную способность памяти или процессор, или любую их комбинацию. В подобных тестах далеко не всегда очевидно, какой аспект “железа” нагружается больше всего. Синтетические тесты, с другой стороны, запускают разнообразные тесты, специально разработанные для нагрузок на все аспекты “железа”, которые позволяют выявить сильные и слабые места намного более точно.
В свете высказываний ATi похоже, что nVidia, единственный критик нового продукта Futuremark, несколько изолировала себя. Сможет ли nVidia компенсировать архитектурные недостатки своего продукта в новой версии драйверов (как подозревает Джон Кармак), или не сможет – нам еще предстоит увидеть. Еще одна цитата Futuremark здесь подходит как нельзя кстати:
Futuremark:
Futuremark рекомендует всегда использовать сертифицированные WHQL драйверы при тестировании. Это связано с тем, что специально написанная версия драйвера может приводить к получению результатов, которые будет некорректными. В соответствии с лицензионным соглашением 3DMark 03, любой опубликованный обзор должен использовать общедоступные финальные версии продуктов и драйверов.
Более того, 3DMark 03 включает дополнительные аналитические инструменты, позволяющие независимым обозревателям отсеивать любые сомнительные оптимизации драйвера. Таким образом, некорректные оптимизации могут быть легко найдены и преданы огласке.
Ответы на критику NVIDIA по поводу пиксельных программ
Futuremark также ответила на критику nVidia по поводу использования версии пиксельных программ v1.4. Как считает nVidia, PS1.4 не отражают технологию существующих игр, поэтому не могут использоваться в тестировании.
NVIDIA:
Наконец, следует дополнительно прокомментировать выбор пиксельных программ в игровых тестах 2 и 3. Эти тесты используют PS1.4 для всех пиксельных программ в сценах. Если “железо” не поддерживает PS1.4, происходит откат до версии PS1.1. Однако в этих сценах полностью отсутствуют какие-либо пиксельные программы PS1.3. Сегодняшние DirectX 8.0 (DX8) игры типа Tiger Woods и Unreal Tournament 2003 используют только PS1.1 и PS1.3 пиксельные программы. Лишь немногие используют PS1.4 (если таковые вообще есть).
Поэтому довольно сложно говорить о том, что тест отображает какую-нибудь из существующих сегодня DX8 игр. Для подобного сравнения вам лучше взять предыдущую версию 3DMark (3DMark 2001), к примеру. Там была помещена сцена природы, которая является DX8 сценой, и она использует исключительно пиксельные программы PS1.1 и PS1.3. Предыдущее поколение 3DMark имеет довольно неплохую связь между тестом и реальными играми. К сожалению, новое поколение 3DMark идет вразрез с предыдущим. Новый тест вводит покупателей в заблуждения, фокусируясь на опциях, которые практически не существуют в DX8 играх.
Как и ожидалось, подход Futuremark отличается:
Futuremark:
В соответствии со спецификацией DirectX 8 существуют четыре версии пиксельных программ. Чтобы тестирование было честным, вам необходимо обеспечить минимальное количество проходов программы-шейдера для отображения требуемой сцены. Мы проанализировали все четыре версии программ и обнаружили, что для наших тестов пиксельные программы 1.2 и 1.3 не дают никаких дополнительных преимуществ или увеличения производительности по сравнению с пиксельными программами 1.1. Поэтому мы обеспечили два куска кода для поддержки более широкой совместимости.
Хороший 3D тест должен давать в точности одинаковый результат на любом оборудовании с поддержкой наиболее эффективных методов. Если какое-либо оборудование поддерживает пиксельные программы 1.4, как это делают все карты класса DirectX 9, то это оборудование будет показывать лучшие результаты в тестах, поскольку при этом затрачивается меньше проходов рендеринга. Кроме того, программы 1.4 позволяют каждую текстуру считывать дважды (четыре обращения к текстурам в версии 1.1, но 12 (=6*2) обращений в версии 1.4). Именно поэтому не только Futuremark, но и игровые разработчики могут использовать один проход рендеринга на источник освещения в программах 1.4, чего не получается при использовании программ 1.3 или более низкой версии. Причем пиксельные программы 2.0 не дают никаких преимуществ в этом тесте. Учтите, что дизайн DirectX требует, чтобы каждая новая версия пиксельных программ являлась надмножеством предыдущих версий. Поэтому все DirectX оборудование поддерживает не только пиксельные программы 2.0, но и пиксельные программы 1.4, 1.3, 1.2 и 1.1.
Использование пиксельных программ PS1.4 проблематично только для карт поколения DirectX 8. Если быть более конкретным – это линейки nVidia GF3 и GF4 Ti. С другой стороны ATi Radeon 8500 уже поддерживает PS1.4, в результате чего карты на базе этого чипа выполняют некоторые вычисления за один проход, в то время как другим чипам с PS1.1/ 1.2/ 1.3 требуется два или более прохода. DirectX 9 карты не имеют никаких проблем с поддержкой PS1.4, поскольку она является необходимым условием для соответствия DX9 (см. выше – каждая следующая версия является надмножеством предыдущей). До выпуска 3DMark 2003 версия PS1.4 не имела большого значения в мире графики. Однако презентация ATi “Meltdown 2001” говорит сама за себя. В соответствии с этим документом PS1.4 намного ближе к PS2.0 (DirectX 9), чем говорит номер версии. Futuremark согласна с этим утверждением.
Ответы на критику NVIDIA по поводу пиксельных программ, продолжение
Указанные доводы еще больше сводят справедливую (обоснованную?) критику nVidia к вопросу реалистичности использования PS1.4 в играх. В конце концов, это nVidia приняла решение не поддерживать PS1.4 в линейке GF4. Кроме того, официальное мнение nVidia всегда заключалось в том, что версия PS1.4 была включена в DirectX 8.1 только лишь из-за давления со стороны ATi, причем эта версия отличается небольшим количеством новых функций и возможностей, все из которых характерны только для ATi.
Что касается поддержки PS1.4 в существующих играх, то ATi опубликовала следующий список. Решайте сами.
- UT2003
- Madden 2003
- Tiger Woods 2003
- Nascar 2003
- NeverWinter Nights (фактически OGL эквивалент).
- DOOM3 будет иметь режим запуска с использованием PS 1.4.
Кстати, новая версия утилиты Rage 3D Tweak Tool позволяет принудительно включать карты ATi в режим PS1.1 (или в режим других версий), что может быть интересным и полезным в будущих версиях. Таким образом, поддержка PS1.4 может быть отключена для прямого сравнения карт ATi и nVidia. В то время как тесты с Radeon 8500 и текущими драйверами (Catalyst 3.1) постоянно заканчивались крахом системы, у плат на Radeon 9700 не возникло никаких проблем при включении данного ограничения. Посмотрите сами:
Карта | Radeon 9700 PRO PS 2.2 |
Radeon 9700 PRO PS 1.4 |
Radeon 9700 PRO PS 1.1 |
3DMark очки | 4722 3DMarks | 3672 3DMarks | 3214 3DMarks |
GT1 – Wings of Fury | 166,0 fps | 166,3 fps | 166,6 fps |
GT2 – Battle of Proxycon | 30,6 fps | 30,6 fps | 24,9 fps |
GT3 – Troll’s Lair | 28,3 fps | 28,2 fps | 22,9 fps |
GT4 – Mother Nature | 27,1 fps | 0,0 fps | 0,0 fps |
Очки процессора | 607 CPUMarks | 606 CPUMarks | 608 CPUMarks |
Тест процессора 1 | 63,9 fps | 64,1 fps | 64,3 fps |
Тест процессора 2 | 11,4 fps | 11,4 fps | 11,4 fps |
Скорость заполнения (одна текстура) | 1499,3 МТекселей/с | 1500,1 МТекселей/с | 1500,0 МТекселей/с |
Скорость заполнения (мультитекстурирование) | 2269,0 МТекселей/с | 2269,7 МТекселей/с | 2269,3 МТекселей/с |
Вершинные программы | 14,9 fps | 14,9 fps | 14,9 fps |
Пиксельные программы 2.0 | 41,1 fps | 0,0 fps | 0,0 fps |
Ragtroll | 19,9 fps | 19,8 fps | 17,2 fps |
Когда мы принудительно заставили Radeon 9700 Pro использовать PS 1.1, то его производительность понизилась. И на первый взгляд это подтверждает возмущение nVidia по поводу нечестной игры. Однако давайте вновь взглянем на 3DMark 2003 под должным ракурсом, как на платформу для оценки неоптимизированной “нормальной” DirectX 9 производительности видеокарт. При этом совершенно нормально использовать PS 1.4. Как мы уже отмечали выше, все DirectX 9 карты обязаны поддерживать PS 1.4. К тому же некоторые DirectX 8.1 карты (линейки Radeon 8500/ 9000) уже обладают подобной поддержкой, что делает PS 1.4 привлекательными для разработчиков игр. Вновь обратимся к Futuremark:
Futuremark:
Нам выдвинули аргумент, что игровой тест 4 “недостаточно DirectX 9”. И вновь, отметим, что приложение должно отображать сцену с максимально возможной эффективностью. В случае игрового теста 4 некоторые объекты используют пиксельные программы 2.0, некоторые – 1.4 или 1.1, если поддержка более сложной версии не требуется. Поскольку каждая последующая версия программ является надмножеством предыдущей, то такой подход эффективен на всем DirectX 9 оборудовании.
Futuremark достойно ответила остальным пунктам обвинения NVIDIA в своем PDF документе (см. ссылку выше). Однако основные пункты мы постарались подробно рассмотреть в нашей статье – насколько достоверны результаты тестирования при неоптимизированном коде программ-шейдеров и насколько велико влияние использования пиксельных программ 1.4 на результат? Мы постарались раскрыть вам мнение всех сторон. Мы не считаем, что в данной ситуации необходимо давать какую-либо строгую оценку. Все зависит от того, под каким углом посмотреть на проблему.
Заключение
Опираясь на доводы Джона Кармака (id) о производительности, становится очевидно, что nVidia плохо работает с неоптимизированным кодом программ-шейдеров. ATi, с другой стороны, может расслабиться, поскольку дизайн R300 не столь подвержен указанной проблеме. Еще одной проблемой nVidia стал конвейер с плавающей запятой высокой точности, который производит медленные 32-битные вычисления. Какая ирония. ATi же смогла выбрать золотую середину с 24-битной точностью, и такое решение можно признать мудрым. Но может nVidia просто перейти к 16-битной точности? Будет интересно увидеть, сможет ли nVidia обеспечить линейке NV 3x прирост производительности с новыми, более оптимизированными драйверами, как предсказывает Джон Кармак – особенно без ущерба качеству картинки.
Мы можем лишь догадываться о причинах столь жесткого неприятия nVidia нового теста 3DMark 2003. Потенциальным фактором может быть и то, что онлайновая база результатов Futuremark достигла впечатляющих размеров, в результате чего IT компании по всему миру могут оценивать распространенность тех или иных продуктов. Такая информация бесценна для OEM, определяя или даже диктуя список комплектующих для следующей линейки их продуктов.
(Futuremark – Products – Online Services – Data Services) – Пример отчета (PC Market Data Report).
Независимо от влиятельности этой “службы баз данных”, безопасно утверждать следующее. 3DMark в качестве теста имеет определенное влияние на индустрию – этот факт nVidia следует учитывать или даже бояться его. Компании типа Dell и Gateway вероятно лучше смогли бы оценить ситуацию, поскольку они участвовали в бета-тестировании Futuremark. Факт участия столь крупных компаний в бета-тестировании является несомненным преимуществом для 3DMark.
В соответствии с Futuremark, программное ядро в тестах строго соответствует спецификации Microsoft DirectX 9. Длинный список компаний, участвовавших в бета-тестировании (Стратегические БЕТА партнеры: AMD, ATi, Intel, Microsoft; Активные БЕТА партнеры: Creative, Matrox, S3Graphics, SiS; БЕТА партнеры: ALi, Dell, CNET, Gateway, Imagination Technologies/ PowerVR, InnoVISION Multimedia Trident Microsystems) позволяет говорить о том, что было практически невозможно подвести результаты теста под какую-либо одну компанию. Даже nVidia активно участвовала в программе тестирования 18 из 22 месяцев.
Действительный мотив атаки nVidia на 3DMark 2003 установить сложно. На основе утверждений Кармака, все, что мы вам скажем по этому поводу, будет носить статус слухов, которые очень трудно подтвердить без информации изнутри компании. Факт заключается в том, что 3DMark 2003 проверяет производительность будущих игр методом, который не нравится nVidia. Вряд ли до поступления DirectX 9 игр в магазины мы сможем сказать, насколько этот DX9 тест отражает реальность, также мы не сможем подтвердить или опровергнуть описанную выше критику. Сегодня каждая сторона остается при своем мнении. Может быть, грядущий тест Aquamark 3 от Massive Entertainment сможет стать лучшим индикатором производительности будущих игр, поскольку он базируется на Aquanox 2, поддержке DirectX 9, PS 2.0 и т.д.
Впрочем, одно очевидно уже сегодня – 3DMark 2003 нацелен на тестирование производительности сегодняшних и будущих карт в играх, которые должны появиться через 6-12 месяцев. Для сегодняшних игр и современных карт следует использовать предшественника – 3DMark 2001 SE.
В заключение нам хотелось бы отметить, что данная статья отражает некоторый взгляд на проблему. Данная проблема не является пока что закрытой, и мы не претендуем на абсолютную истину. Время покажет.