Синтетические Direct3D 10 тесты видеокарт AMD и Nvidia в новом тестовом пакете RightMark3D 2.0



Прошло довольно много времени с выхода операционной системы Microsoft Windows Vista и обновленного DirectX 10 API в её составе. Постепенно появляются игровые приложения с поддержкой новой версии Direct3D 10, правда, пока это лишь немного переделанные D3D 9 приложения, активного использования новых возможностей D3D 10 в них нет. Да и те игры, что уже вышли, удивляют полярными результатами на видеокартах двух основных чипмейкеров, использовать их в таком виде для сравнения, конечно, можно, но очень осторожно…

Обилия пакетов синтетических и игровых тестов с поддержкой Direct3D 10 пока тоже не наблюдается, тот же Futuremark так и не выпустил очередной 3DMark. Но у iXBT.com есть свой пакет синтетических тестов, и мы давно планировали обновить RightMark3D, чтобы иметь возможность оценить пиковую производительность D3D10-ускорителей в разных задачах. Окончательная версия RightMark3D 2.0, предназначенная Direct3D 10 совместимых ускорителей в операционной системе MS Windows Vista, появилась недавно, и мы сразу приступаем к её использованию в наших материалах.

Некоторые ранее известные тесты в составе обновленного пакета были переписаны под DX10, добавились новые виды синтетических тестов: модифицированные тесты пиксельных шейдеров, переписанные под SM 4.0, тесты геометрических шейдеров, тесты выборки текстур из вершинных шейдеров. Эта статья будет первой по RightMark3D 2.0, она включает большой набор протестированных видеокарт, далее мы начнём использовать новый тест и в своих базовых материалах.

Нужно отметить, что все наши тесты — чисто синтетические, обычно они задействуют только определенные блоки видеочипа, влияние производительности остальных намеренно уменьшено до минимума. Во всех тестах центральный процессор не задействован, всё считается исключительно видеочипом. Приступим к долгожданным DirectX 10 тестам!

Условия тестирования

Используемая нами версия пакета синтетических тестов RightMark3D 2.0 с кратким описанием тестов доступна для скачивания по ссылке (4,5 Мбайт)

Для работы RightMark3D 2.0 требуется установленный пакет MS Visual Studio 2005 runtime, а также последнее обновление DirectX runtime.





Примечание: на скриншоте изображена специальная версия RightMark3D 2.0 с возможностью тестирования в пакетном (batch) режиме. Она предназначена для внутреннего использования и будет доступна позже.

Конфигурация тестового стенда:

  • Компьютер на базе Intel Core 2 Duo (Socket 775)
    • процессор Intel Core 2 Duo Extreme X6800 (2930 MHz) (L2=4096K);
    • системная плата EVGA nForce 680i SLI на чипсете Nvidia nForce 680i;
    • оперативная память 2 GB DDR2 SDRAM Corsair 1142MHz (CAS (tCL)=5; RAS to CAS delay (tRCD)=5; Row Precharge (tRP)=5; tRAS=15);
    • жесткий диск WD Caviar SE WD1600JD 160GB SATA;
    • блок питания Tagan 1100-U95 (1100W).
  • операционная система Windows Vista Ultimate 32-bit; DirectX 10;
  • монитор Dell 3007WFP (30").
  • драйверы ATI CATALYST версии 8.3891; Nvidia ForceWare версии 158.45.

Синтетические тесты проводились на видеокартах:

  • RADEON HD 2900 XT со стандартными параметрами
  • RADEON HD 2600 XT со стандартными параметрами
  • RADEON HD 2600 PRO со стандартными параметрами (версия с GDDR3 видеопамятью)
  • RADEON HD 2400 XT со стандартными параметрами
  • Geforce 8800 Ultra со стандартными параметрами
  • Geforce 8800 GTX со стандартными параметрами
  • Geforce 8800 GTS со стандартными параметрами (версии с 320 и 640 Мбайт видеопамяти показывают близкую производительность)
  • Geforce 8600 GTS со стандартными параметрами
  • Geforce 8600 GT со стандартными параметрами
  • Geforce 8500 GT со стандартными параметрами

Для сравнения видеокарт друг с другом будут использоваться пары моделей AMD и Nvidia, совпадающие по позиционированию на рынке: HD2900XT — GF8800GTS, HD2600XT — GF8600GT, HD2600PRO — GF8500GT. Некоторых из видеокарт на рынке ещё нет, и если их реальные цены будут иными, нужно делать поправки к выводам статьи. Цены также постоянно изменяются, и многие из выводов статьи справедливы только для времени её выхода. Конечно, это не относится к теоретическому сравнению младших и старших чипов одной компании, оценка их относительной производительности от цен не зависит.

Описания и результаты тестов

Напоминаем, что результаты синтетических тестов унифицированных DirectX 10 архитектур нужно анализировать осторожно, нагрузка в них часто лежит только на одном или двух типах шейдеров: вершинных, геометрических, пиксельных. И если на обычной архитектуре при сбалансированной нагрузке на все перечисленные блоки производительность не снизится, то на унифицированной суммарная работа ляжет сразу на все, и скорость рендеринга упадёт.

Тесты пиксельных шейдеров PS 4.0 (текстурирование, циклы)

В новую версию RightMark3D 2.0, используемую в этой статье, вошли два уже знакомых нам PS 3.0 теста, самых сложных из наших синтетических тестов пиксельных шейдеров для Direct3D 9, а также два полностью новых теста. Первые были переписаны под DirectX 10, также в них добавились самозатенение и возможность включения суперсэмплинга, что еще сильнее увеличивает и так немалую нагрузку на видеочипы.

  • Fur — процедурный шейдер, визуализирующий мех
  • Steep Parallax Mapping — «тяжелая» разновидность техники parallax mapping, пока что не применяющаяся в играх, ранее описанная в статье Современная терминология 3D графики

Эти два теста измеряют производительность выполнения пиксельных шейдеров с циклами, при большом количестве текстурных выборок (в самом тяжелом режиме до нескольких сотен выборок на пиксель!) и сравнительно небольшой загрузке ALU. Иными словами, в них измеряется скорость текстурных выборок и эффективность ветвлений в пиксельном шейдере.

Первым тестом пиксельных шейдеров у нас будет Fur. При самых низких настройках в нём используется от 15 до 30 текстурных выборок из карты высот и две выборки из основной текстуры. Режим Effect detail — «High» увеличивает количество выборок до 40-80, включение «шейдерного» суперсэмплинга — до 60-120 выборок, а режим «High» совместно с SSAA отличается максимальной «тяжестью» — от 160 до 320 выборок из карты высот. Выглядит это вот так:

Очень сложный тест, даже судя только по описанию. Посмотрим, как с ним справляются все доступные нам DirectX 10 видеокарты. Проверим сначала режимы без включенного суперсэмплинга, они относительно просты, и соотношение результатов в режимах «Low» и «High» должно быть примерно одинаковым.

Первые тесты процедурной визуализации меха с множественными текстурными выборками из сложных шейдеров с циклами, показывают огромное преимущество видеокарт Nvidia над решениями AMD. Даже чипы среднего уровня Nvidia показывают результаты наравне с топовым решением AMD, не говоря о картах на чипах G80, конкурентов у которых тут нет вообще. Итак, по этому тесту все решения Nvidia быстрее соответствующих им видеоплат AMD. Учитывая то, что такого отставания не должно быть теоретически, можно предположить, что в низких результатах AMD в большой степени виноваты недоработанные драйверы.

Цифры, показанные в разных режимах, неплохо соотносятся друг с другом — результаты в «High» примерно в полтора раза ниже, чем в «Low». Что касается соотношения производительности между топовыми картами и картами среднего уровня, то можно сказать, что урезание исполнительных блоков достаточно сильно бьёт по чипам среднего и нижнего уровней у обоих производителей, особенно это относится к решениям Nvidia (да и к AMD, если предположение о недостатках текущих версий драйвера верно) — G84 отстает от G80 раза в три, а G86 показывает результат ещё в два раза ниже. Судя по этим цифрам, производительность данного теста зависит не только от количества и скорости блоков TMU, иначе разница была бы меньшей.

Посмотрим на результат этого же теста, но с включенным «шейдерным» суперсэмплингом, который увеличивает объёмы работ ещё в четыре раза:

Такая сложность теста под силу только топовым чипам, показанные значения частоты кадров в секунду красноречиво говорят об этом. В целом картина вырисовывается примерно такая же, что и в предыдущем случае, но явно видно, что по мере увеличения сложности шейдера и нагрузки на видеочип, решения AMD начинают догонять видеокарты Nvidia. Geforce 8600 уже не выигрывает у HD 2900 XT, хотя и близок к нему, а Geforce 8500 GT начинает даже немного проигрывать своему конкуренту по ценовому диапазону — HD 2600 PRO.

Включение суперсэмплинга теоретически увеличивает нагрузку ровно в четыре раза, но на видеокартах семейства G8x оно снижает скорость более чем в 5 раз, а на R6xx — лишь в 3 с небольшим, за счет чего последние в таких условиях и получают улучшенные относительные результаты. Скорее всего, при соответствующей доработке драйверов Nvidia сможет снизить падение производительности при включении SSAA, но ведь и у AMD есть подобные возможности по улучшению…

Второй тест, измеряющий производительность выполнения сложных пиксельных шейдеров с циклами при большом количестве текстурных выборок — Steep Parallax Mapping. При низких настройках он использует от 10 до 50 текстурных выборок из карты высот и три выборки из основных текстур. При включении тяжелого режима с самозатенением число выборок возрастает в два раза (от 20 до 100), суперсэмплинг увеличивает это число в четыре раза (от 40 до 200 выборок). Наиболее сложный тестовый режим с суперсэмплингом и самозатенением использует от 80 до 400 текстурных выборок, то есть в восемь раз больше, по сравнению с простым режимом.

То же самое — проверяем сначала простые варианты без суперсэмплинга:

Второй тест более интересен с практической точки зрения, так как разновидности parallax mapping уже применяются в играх, а тяжелые варианты, вроде нашего steep parallax mapping, скоро будут в них использоваться. И в этом тесте, помимо суперсэмплинга, можно включить самозатенение, которое увеличивает нагрузку на видеочип примерно в два раза. Такой режим называется «High», а обычный — «Low».

В наших Direct3D 9 тестах parallax mapping, решения ATI (а затем и AMD) традиционно были сильны, в этот раз выигрыша не получилось, наоборот, без включения суперсэмплинга чипы Nvidia справляются с задачей быстрее. Сразу же отмечаем и несколько большее падение производительности при переходе от режима «Low» к «High» у видеокарт AMD. Изменение результатов при включении самозатенения у решений Nvidia равно примерно 1.5 раза, а у AMD — более двух раз. За счет этого результаты в режиме «High» у последних и оказываются относительно низкими. В общем, по результатам проведенных тестов можно ещё раз отметить победу решений Nvidia во всех ценовых диапазонах, особенно заметен выигрыш в верхнем сегменте.

Чипы среднего и нижнего ценового диапазонов в этом тесте показывают себя примерно так же или чуть лучше: средние отстают от топовых более чем в два раза, и во столько же раз отстают от средних самые слабые. Посмотрим, что изменит включение суперсэмплинга, в прошлом тесте он вызывал большее падение скорости на Nvidia, а это может улучшить положение карт AMD.

По цифрам FPS в очередной раз можно оценить сложность наших задач даже для high-end решений. Посмотрите на полученную частоту кадров в секунду при включенных суперсэмплинге и самозатенении (последний график), совместное включение их увеличивают нагрузку почти в восемь раз, вызывая катастрофическое падение производительности. Разница между скоростью видеокарт из разных ценовых сегментов сохраняется.

Включение суперсэмплинга сказывается почти как и в предыдущем случае — карты на чипах AMD R6xx улучшают свои показатели относительно Nvidia G8x. Странно, что у Nvidia получилось падение в 4 раза (равно теоретическому), а у AMD — только в 3 раза. Несмотря на это, общей победы у AMD не получается, разве что в нижнем ценовом сегменте Geforce 8500 GT (G86) привычно проигрывает HD 2600 PRO (RV630). В остальных парах констатируем еще одну победу решений Nvidia.

Тесты пиксельных шейдеров PS 4.0 (вычисления)

Следующая пара тестов пиксельных шейдеров содержит минимум текстурных выборок, это сделано для снижения влияния скорости блоков TMU на общую скорость. Зато используется очень большое количество арифметических операций (sin, cos, возведение в степень и т.п.). Эти тесты измеряют именно математическую производительность видеочипов, скорость выполнения арифметических инструкций в пиксельном шейдере. Влияние всех остальных исполнительных блоков сведено к минимуму.

Первый математический тест — Mineral. Его можно назвать тестом сложного процедурного текстурирования, в нём используются лишь две выборки из текстурных данных и 65 инструкций типа sin и cos, всего более тысячи инструкций на пиксель.

В соответствии с результатами наших исследований при помощи прошлой версии пакета Direct3D 9 синтетических тестов, в вычислительно сложных задачах архитектура AMD показывает себя очень хорошо, все их решения опережают конкурентов. Но Nvidia G8x отстают не так уж сильно. Да, решения AMD оказываются быстрее во всех ценовых сегментах, но в high-end, наиболее важном стратегически, опережение небольшое, особенно учитывая, что у Nvidia есть и более дорогие решения. Вот в нижнем и среднем сегментах решение на чипе G86 не может противостоять натиску нижнего RV630 и примерно соответствует решению на основе RV610, а быстрый вариант на основе G84 отстаёт от верхнего RV630. В целом, если учитывать реальные и предполагаемые цены всех решений, победа в этот раз за AMD.

Производительность решений среднего уровня обоих производителей в этом тесте примерно в два раза ниже скорости ближайших топовых, low-end чипы выступают хуже ещё в два раза. Наблюдается традиционное соотношение уже который раз, в полном соответствии с урезанием с точки зрения теории, учитывая и тактовые частоты. В общем, не всё так плохо у DirectX 10 чипов среднего и низшего уровней… Хотя, речь в любом случае не идёт о максимальных настройках будущих D3D 10 игр, в них и high-end картам будет несладко.

Второй тест этого блока носит название Fire, и он ещё более тяжёл для ALU. В нём текстурная выборка есть только одна, зато количество инструкций типа sin и cos увеличено до 130, всего более тысячи инструкций.

Смотрим, что изменилось при увеличении нагрузки:

Сразу отмечаем, что полноценного сравнения в тесте «Fire» не получается — налицо явная ошибка в драйверах AMD, которая не позволяет их продукции показывать соответствующие реальной силе результаты. Прежде чем делать выводы, дождемся исправлений в драйверах.

Разница между младшим вариантов G80 и старшим G84 в очередной раз получилась чуть более двух раз, что примерно соответствует разнице в частотах и количестве исполнительных блоков. То же самое касается и low-end чипа Nvidia.

Тесты геометрических шейдеров

В пакет RightMark3D 2.0 включены два теста скорости геометрических шейдеров в разных условиях. Первый вариант носит название «Galaxy», техника аналогична «point sprites» из предыдущих версий Direct3D. В нем анимируется система частиц на GPU, геометрический шейдер из каждой точки (всего от 0.5 до 2.0 миллионов) создает четыре вершины, образующих частицу (quad expansion). Судя по всему, подобные алгоритмы будут широко использоваться в будущих DirectX 10 играх, поэтому показанные результаты в тесте особенно интересны.

Важно отметить, что изменение балансировки в наших тестах геометрических шейдеров не изменяет визуальный результат, в обоих случаях итоговая картинка абсолютно одинакова, изменяются лишь способы обработки сцены. Параметр «GS load» определяет, в каком из шейдеров производятся вычисления — в вершинном или геометрическом, но количество вычислений в обоих случаях одинаково.

Рассмотрим первый вариант теста «Galaxy», с вычислениями в вершинном шейдере, для трёх уровней геометрической сложности:

Видно, что соотношение скоростей при разной геометрической сложности сцен получилось примерно одинаковым для всех условий, отличаются только абсолютные значения. Показываемая всеми решениями производительность полностью соответствует количеству точек, с каждым шагом падение FPS составляет около двух раз. Видеокарты Nvidia в таких условиях чувствуют себя чуть лучше, показывая большие результаты во всех сравниваемых парах: Geforce 8800 GTS быстрее HD 2900 XT, Geforce 8600 GT быстрее HD 2600 XT, Geforce 8500 GT быстрее HD 2600 PRO. Разница хоть и небольшая, но она есть.

Задача не такая уж сложная для современных видеокарт, топовые решения незначительно обогнали видеокарты среднего уровня, разница не достигает и двух раз. Хотя low-end отстают от mid-end всё в те же два раза. Возможно, при переносе части вычислений в геометрический шейдер ситуация изменится, как при сравнении решений разных производителей, так и ценовых сегментов. Сейчас мы это проверим.

Действительно, произошли некоторые изменения. Теперь решения на базе чипов G8x не всегда выигрывают у решений на основе R6xx во всех случаях с разным количеством геометрии. Хотя Geforce 8600 GT всё равно опережает RADEON HD 2600 XT, а Geforce 8500 GT немного опережает HD 2600 PRO, топовая видеокарта AMD вырывается вперед. Интересно, что между цифрами Geforce 8800 GTX и GTS почти нет разницы, хотя число активных исполнительных блоков у этих чипов отличается. В итоге, AMD продолжает проигрывать, что немного странно, учитывая отмеченную в наших прошлых тестах высокую эффективность выполнения вершинных шейдеров их чипами. Посмотрим, может быть во втором тесте результат изменится…

«Hyperlight» — это второй тест геометрических шейдеров в новой версии RightMark3D, который демонстрирует использование сразу нескольких интересных техник: instancing, stream output, buffer load. В нем используется динамическое создание геометрии при помощи отрисовки в два буфера, также этот тест использует новую возможность DX10 — stream output. Первый используемый шейдер генерирует направление лучей, скорость и направление их роста, эти данные помещаются в буфер, который используется вторым шейдером для отрисовки. По каждой точке луча строятся 14 вершин по кругу, всего до миллиона выходных точек.

Новый тип шейдерных программ используется для генерации «лучей», а с параметром «GS load», выставленном в «Heavy» — ещё и для их отрисовки. То есть, в режиме «Balanced» геометрические шейдеры используются только для создания и «роста» лучей, вывод осуществляется при помощи «instancing», а в режиме «Heavy» выводом также занимается геометрический шейдер. Сначала рассматриваем лёгкий режим:

Результаты разных видеокарт относительно друг друга практически не отличаются, вне зависимости от геометрической сложности сцены. Производительность хорошо масштабируется и почти соответствует теоретическим параметрам, по которым каждый следующий уровень «Polygon count» должен быть в два раза медленней.

Большое преимущество видеокарт Nvidia наблюдается и в этот раз, когда нагрузка на геометрические шейдеры не так велика. RADEON HD 2900 XT уступает даже Geforce 8600 GT, а нижнее решение Nvidia незначительно опережает HD 2600 XT. Про G80 и говорить не стоит — они далеко впереди, и их производительность явно ограничена чем-то другим, так как по сравнению с G84 они не слишком много выигрывают.

Интересно, что производительность HD 2400 XT почти равна скорости HD 2600 PRO и обе цифры сильно отстают от HD 2600 XT, в прошлые разы такого не было. Все эти цифры могут измениться в следующем нашем тесте, где геометрические шейдеры используются ещё активнее. Особенно интересно будет сравнить цифры, полученные в «Balanced» и «Heavy» режимах друг с другом.

Согласитесь, ситуация получилась совсем другая! Можно четко сказать, что чипы серии AMD R6xx выполняют такую работу значительно быстрее чипов Nvidia G8x, имея преимущество в 2 раза и даже более. Производительность данных тестов очень сильно зависит от сложности работы для геометрических шейдеров. Чипы AMD выполняют работу не просто быстрее решений Nvidia, с усложнением геометрии эта разница растёт. Получается, что чем сложнее работа для геометрического шейдера, тем быстрее будут R6xx по сравнению с G8x.

Но, сравнивая результаты в разных режимах, когда выводом занимаются разные типы шейдеров, нужно отметить, что у Nvidia результаты в «Balanced» получились лучше, чем в «Heavy» у AMD. При том, что выводимая картинка не отличается. Это в очередной раз грозит разработчикам 3D приложений тем, что им придётся оптимизировать свой код для двух столь разных архитектур, чтобы добиться максимальной производительности от обеих.

При переходе от использования «instancing» к геометрическому шейдеру при выводе, видеокарты Nvidia сильно теряют в производительности, от 2 до 6 раз. Причем, чем младше чип, тем большая разница в скорости рендеринга между двумя режимами. У AMD же всё наоборот, результаты в режиме использования геометрического шейдера для вывода больше, чем с «instancing», пусть и не в разы. Получается, что сами по себе геометрические шейдеры при увеличении работы (количества генерируемых вершин) работают лучше на чипах AMD, но реальность тем и отличается от синтетических тестов, что разработчики вольны выбирать свой путь сами, и если использование для их задач вершинных шейдеров будет выгоднее, они вполне могут так и сделать.

Крайне любопытна и разница между скоростью в режимах «Balanced» и «Heavy» для разных чипов одной линейки. Забавная ситуация со сравнением HD 2400 XT и HD 2600 PRO усугубилась — теперь младший чип даже выигрывает у старшего. И «виновата» тут, скорее всего, более высокая частота младшего решения и ограничение скорости triangle setup. У Nvidia такого не наблюдается, все чипы показали результаты строго по линейке — G84 медленнее G80 в 2-3 раза, а G86 — в 4-6 раза. С HD 2600 PRO связана ещё одна загадка, объяснить которую не получается — только эта видеокарта производства AMD теряет в производительности при смене режима с «Balanced» на «Heavy» в режиме с большим количеством геометрии.

Нужно отметить и ошибку в драйверах AMD, которая проявляется только на HD 2900 XT, вызывая в наиболее сложном режиме теста «Hyperlight» отсутствие выводимой картинки и аномально высокий результат, который нельзя принять за корректный. Поэтому в последней диаграмме результата для этой видеокарты нет.

Главный вывод этой части — разные тесты геометрических шейдеров могут давать отличающиеся результаты, в одних будут лидировать решения Nvidia, в других — AMD. При росте сложности работы геометрического шейдера вперед выходит AMD, но нужно помнить, что это всё — синтетические тесты, о реальной производительности можно будет судить только по игровым тестам, которых пока крайне мало, к сожалению.

Скорость выборки текстур из вершинных шейдеров

В тестах «Vertex Texture Fetch» измеряется скорость большого количества текстурных выборок из вершинного шейдера. Тесты похожи друг на друга, теоретически, соотношение между скоростями тестов «Earth» и «Waves» должно быть примерно одинаковым. В обоих тестах используется displacement mapping на основании данных текстурных выборок. Отличие в том, что в тесте «Waves» используются условные переходы, а в «Earth» — нет.

В первом тесте («Earth») делается 32 (для режима «Effect detail Low») или 48 («Effect detail High») билинейных текстурных выборки на каждую вершину. Количество вершин также можно изменять, для трех возможных режимов эти числа соответствуют: 30000, 124000 и 280000.

Рассмотрим режим «Effect detail Low»:

Все три графика показывают примерно одинаковую картину производительности видеокарт относительно друг друга, разве только производительность Geforce 8500 GT при увеличении нагрузки «проседает» быстрее, чем производительность конкурирующего HD 2600 PRO, если в «Low» выигрывает первая видеокарта, то в «High» впереди уже решение AMD. У пары HD 2600 XT и Geforce 8600 GT всё с точностью до наоборот, при небольшой нагрузке впереди решение AMD, а в «High» оно уже чуть-чуть отстаёт. Среди топовых решений борьбы не получилось, все варианты G80 быстрее R600.

Соотношение между производительностью верхних решений и видеокарт среднего и низшего уровней остаётся прежним, до 2-3 раза между первыми и 2-3 раза между вторыми. Интересно лишь слишком большое отличие в производительности между HD 2600 PRO и HD 2600 XT, его не объяснить отличающимся количеством текстурных модулей (TMU), так как используются одинаковые чипы. На результаты теста может влиять и пропускная способность памяти, которая у PRO и XT вариантов сильно отличается.

Посмотрим на результаты этого же теста с увеличенным количеством текстурных выборок:

В этом варианте видеокарты AMD немного потеряли в скорости относительно своих соперников. Во всех конкурирующих парах победителями становятся решения Nvidia, имеющие большее количество эффективно работающих текстурных модулей. Разница между AMD и Nvidia в указанных условиях составляет до 1.5-2 раз. Видеочипы Nvidia явно эффективнее выполняют выборку текстурных данных, если исходить из тестов и вершинных и пиксельных шейдеров.

Посмотрим результаты второго теста VTF, интересно, проявятся ли там схожие проблемы? Тест «Waves» отличается меньшим количеством выборок, зато используются условные переходы. Количество билинейных текстурных выборок в данном случае до 14 («Effect detail Low») или до 24 («Effect detail High») на каждую вершину. Сложность геометрии изменяется аналогично предыдущему тесту, общее количество вершин может быть равно примерно 124000, 498000 и 1122000 для режимов «Polygon count Low», «Medium» и «High», соответственно.

«Waves» не показывает нам чего-то нового, всё примерно так же, как и в предыдущем тесте «Earth». Видно, что некоторые чипы Nvidia (G80 и G86) теряют кадры в секунду с ростом сложности геометрии чуть быстрее, чем конкуренты от AMD (R600 и RV630), но лучшими в большинстве случаев всё равно оказываются решения Nvidia.

Последние результаты также примерно соответствуют показанным в предыдущих случаях, лишь преимущество решений Nvidia видно чуть лучше. В целом, хорошо видно, что видеокарты на основе чипов Nvidia G8x выполняют наши тесты текстурных выборок из вершинных шейдеров быстрее, чем решения AMD на основе архитектуры R6xx. Это и есть основной вывод из данной серии VTF тестов.

Заключение и выводы по синтетическим тестам

Итак, дебют применения RightMark3D 2.0 для исследований на нашем сайте состоялся. Тесты в его составе затрагивают почти все аспекты нововведений в Direct3D 10, они гибко настраиваются, позволяя нам оценить сравнительную производительность всех линеек Direct3D 10 чипов от AMD и Nvidia. Обе унифицированные архитектуры этих компаний показали себя в наших новых Direct3D 10 тестах вполне неплохо, больших провалов производительности не обнаружено, за исключением пары случаев с явными ошибками в драйверах AMD. Оба семейства: R6xx и G8x отличаются высокой вычислительной и текстурной производительностью, они хорошо справляются со сложными шейдерами всех типов.

  • Если брать результаты в целом, то у решений Nvidia есть некоторое преимущество перед конкурентами от AMD, на данный момент их видеокарты оказываются впереди в большинстве случаев. Но в некоторых тестах чипы AMD показывают лучшие результаты, например, в сложных тестах геометрических и пиксельных шейдеров. Преимущество чипов AMD в таких тестах при увеличении нагрузки даже растёт. Так что исход сражения в DirectX 10 играх пока что не определён, нельзя сказать однозначно, кто из соперников его выиграет. Можно лишь предположить, что там будут аналогичные нашим результаты — в основной массе приложений R6xx и G8x будут близки друг к другу, в некоторых будут лидировать решения на основе решений компании Nvidia, в других — AMD. И зависеть это будет во многом от разработчиков и от используемых ими методов и алгоритмов.


  • Тесты пиксельных шейдеров версии 4.0 показали, что с множественными текстурными выборками при сравнительно небольшой загрузке ALU лучше справляются видеочипы Nvidia. Решения AMD, в свою очередь, опережают конкурентов в вычислительных тестах пиксельных шейдеров. В одном из них видеокарты на основе чипов архитектуры R6xx показали очень неплохие результаты и опередили конкурентов из стана Nvidia, а ситуация во втором тесте пока не ясна из-за ошибок в драйверах.


  • Как мы уже отмечали, тесты геометрических и вершинных шейдеров дают отличающиеся результаты, в одних лидируют решения Nvidia, в других — AMD. Так как при росте сложности работы для геометрического шейдера вперед выходят видеокарты AMD, то можно предположить, что в приложениях с активным использованием геометрических шейдеров, если таковые появятся в ближайшее время, будут лидировать чипы этой компании.


  • Последняя пара тестов RightMark3D 2.0 — тесты на скорость выборки текстур из вершинных шейдеров. Показанные в них результаты отчетливо говорят о том, что видеокарты на основе чипов Nvidia G8x выполняют наши тесты текстурных выборок из вершинных шейдеров быстрее, чем решения AMD на основе архитектуры R6xx. Это связано с традиционно разным балансом между текстурными и вычислительными возможностями у чипов двух конкурирующих компаний.


  • «Урезание» количества шейдерных блоков, блоков TMU и ROP довольно существенно ударило по решениям среднего и низшего уровней, значительно снизив их производительность. Недорогие видеокарты отстают от топовых в разы, лучшие из mid-end в 2-3 раза (от HD 2900 XT и Geforce 8800 GTS), а low-end ещё больше — до 4-8 раз. Что подтверждается и результатами игровых тестов, пока что только Direct3D 9.


  • Судя по полученным нами результатам, драйверы AMD для Vista явно хуже доработаны по сравнению с драйверами Nvidia. Если у продукции второй компании в наших тестах никаких ошибок не было обнаружено, то у решений AMD наблюдались две явные проблемы: у всей линейки чипов во втором «вычислительном» тесте пиксельных шейдеров («Fire»), а также у топового решения HD 2900 XT в наиболее сложном режиме теста на скорость выборки текстур из вершинных шейдеров «Earth». Очень хотелось бы верить, что эти недостатки будут устранены в ближайших версиях драйверов CATALYST.





Дополнительно

Синтетические Direct3D 10 тесты видеокарт AMD и Nvidia в пакете RightMark3D 2.0

Синтетические Direct3D 10 тесты видеокарт AMD и Nvidia в новом тестовом пакете RightMark3D 2.0


Прошло довольно много времени с выхода операционной системы Microsoft Windows Vista и обновленного DirectX 10 API в её составе. Постепенно появляются игровые приложения с поддержкой новой версии Direct3D 10, правда, пока это лишь немного переделанные D3D 9 приложения, активного использования новых возможностей D3D 10 в них нет. Да и те игры, что уже вышли, удивляют полярными результатами на видеокартах двух основных чипмейкеров, использовать их в таком виде для сравнения, конечно, можно, но очень осторожно…

Обилия пакетов синтетических и игровых тестов с поддержкой Direct3D 10 пока тоже не наблюдается, тот же Futuremark так и не выпустил очередной 3DMark. Но у iXBT.com есть свой пакет синтетических тестов, и мы давно планировали обновить RightMark3D, чтобы иметь возможность оценить пиковую производительность D3D10-ускорителей в разных задачах. Окончательная версия RightMark3D 2.0, предназначенная Direct3D 10 совместимых ускорителей в операционной системе MS Windows Vista, появилась недавно, и мы сразу приступаем к её использованию в наших материалах.

Некоторые ранее известные тесты в составе обновленного пакета были переписаны под DX10, добавились новые виды синтетических тестов: модифицированные тесты пиксельных шейдеров, переписанные под SM 4.0, тесты геометрических шейдеров, тесты выборки текстур из вершинных шейдеров. Эта статья будет первой по RightMark3D 2.0, она включает большой набор протестированных видеокарт, далее мы начнём использовать новый тест и в своих базовых материалах.

Нужно отметить, что все наши тесты — чисто синтетические, обычно они задействуют только определенные блоки видеочипа, влияние производительности остальных намеренно уменьшено до минимума. Во всех тестах центральный процессор не задействован, всё считается исключительно видеочипом. Приступим к долгожданным DirectX 10 тестам!

Условия тестирования

Используемая нами версия пакета синтетических тестов RightMark3D 2.0 с кратким описанием тестов доступна для скачивания по ссылке (4,5 Мбайт)

Для работы RightMark3D 2.0 требуется установленный пакет MS Visual Studio 2005 runtime, а также последнее обновление DirectX runtime.





Примечание: на скриншоте изображена специальная версия RightMark3D 2.0 с возможностью тестирования в пакетном (batch) режиме. Она предназначена для внутреннего использования и будет доступна позже.

Конфигурация тестового стенда:

  • Компьютер на базе Intel Core 2 Duo (Socket 775)
    • процессор Intel Core 2 Duo Extreme X6800 (2930 MHz) (L2=4096K);
    • системная плата EVGA nForce 680i SLI на чипсете Nvidia nForce 680i;
    • оперативная память 2 GB DDR2 SDRAM Corsair 1142MHz (CAS (tCL)=5; RAS to CAS delay (tRCD)=5; Row Precharge (tRP)=5; tRAS=15);
    • жесткий диск WD Caviar SE WD1600JD 160GB SATA;
    • блок питания Tagan 1100-U95 (1100W).
  • операционная система Windows Vista Ultimate 32-bit; DirectX 10;
  • монитор Dell 3007WFP (30").
  • драйверы ATI CATALYST версии 8.3891; Nvidia ForceWare версии 158.45.

Синтетические тесты проводились на видеокартах:

  • RADEON HD 2900 XT со стандартными параметрами
  • RADEON HD 2600 XT со стандартными параметрами
  • RADEON HD 2600 PRO со стандартными параметрами (версия с GDDR3 видеопамятью)
  • RADEON HD 2400 XT со стандартными параметрами
  • Geforce 8800 Ultra со стандартными параметрами
  • Geforce 8800 GTX со стандартными параметрами
  • Geforce 8800 GTS со стандартными параметрами (версии с 320 и 640 Мбайт видеопамяти показывают близкую производительность)
  • Geforce 8600 GTS со стандартными параметрами
  • Geforce 8600 GT со стандартными параметрами
  • Geforce 8500 GT со стандартными параметрами

Для сравнения видеокарт друг с другом будут использоваться пары моделей AMD и Nvidia, совпадающие по позиционированию на рынке: HD2900XT — GF8800GTS, HD2600XT — GF8600GT, HD2600PRO — GF8500GT. Некоторых из видеокарт на рынке ещё нет, и если их реальные цены будут иными, нужно делать поправки к выводам статьи. Цены также постоянно изменяются, и многие из выводов статьи справедливы только для времени её выхода. Конечно, это не относится к теоретическому сравнению младших и старших чипов одной компании, оценка их относительной производительности от цен не зависит.

Описания и результаты тестов

Напоминаем, что результаты синтетических тестов унифицированных DirectX 10 архитектур нужно анализировать осторожно, нагрузка в них часто лежит только на одном или двух типах шейдеров: вершинных, геометрических, пиксельных. И если на обычной архитектуре при сбалансированной нагрузке на все перечисленные блоки производительность не снизится, то на унифицированной суммарная работа ляжет сразу на все, и скорость рендеринга упадёт.

Тесты пиксельных шейдеров PS 4.0 (текстурирование, циклы)

В новую версию RightMark3D 2.0, используемую в этой статье, вошли два уже знакомых нам PS 3.0 теста, самых сложных из наших синтетических тестов пиксельных шейдеров для Direct3D 9, а также два полностью новых теста. Первые были переписаны под DirectX 10, также в них добавились самозатенение и возможность включения суперсэмплинга, что еще сильнее увеличивает и так немалую нагрузку на видеочипы.

  • Fur — процедурный шейдер, визуализирующий мех
  • Steep Parallax Mapping — «тяжелая» разновидность техники parallax mapping, пока что не применяющаяся в играх, ранее описанная в статье Современная терминология 3D графики

Эти два теста измеряют производительность выполнения пиксельных шейдеров с циклами, при большом количестве текстурных выборок (в самом тяжелом режиме до нескольких сотен выборок на пиксель!) и сравнительно небольшой загрузке ALU. Иными словами, в них измеряется скорость текстурных выборок и эффективность ветвлений в пиксельном шейдере.

Первым тестом пиксельных шейдеров у нас будет Fur. При самых низких настройках в нём используется от 15 до 30 текстурных выборок из карты высот и две выборки из основной текстуры. Режим Effect detail — «High» увеличивает количество выборок до 40-80, включение «шейдерного» суперсэмплинга — до 60-120 выборок, а режим «High» совместно с SSAA отличается максимальной «тяжестью» — от 160 до 320 выборок из карты высот. Выглядит это вот так:

Очень сложный тест, даже судя только по описанию. Посмотрим, как с ним справляются все доступные нам DirectX 10 видеокарты. Проверим сначала режимы без включенного суперсэмплинга, они относительно просты, и соотношение результатов в режимах «Low» и «High» должно быть примерно одинаковым.

Первые тесты процедурной визуализации меха с множественными текстурными выборками из сложных шейдеров с циклами, показывают огромное преимущество видеокарт Nvidia над решениями AMD. Даже чипы среднего уровня Nvidia показывают результаты наравне с топовым решением AMD, не говоря о картах на чипах G80, конкурентов у которых тут нет вообще. Итак, по этому тесту все решения Nvidia быстрее соответствующих им видеоплат AMD. Учитывая то, что такого отставания не должно быть теоретически, можно предположить, что в низких результатах AMD в большой степени виноваты недоработанные драйверы.

Цифры, показанные в разных режимах, неплохо соотносятся друг с другом — результаты в «High» примерно в полтора раза ниже, чем в «Low». Что касается соотношения производительности между топовыми картами и картами среднего уровня, то можно сказать, что урезание исполнительных блоков достаточно сильно бьёт по чипам среднего и нижнего уровней у обоих производителей, особенно это относится к решениям Nvidia (да и к AMD, если предположение о недостатках текущих версий драйвера верно) — G84 отстает от G80 раза в три, а G86 показывает результат ещё в два раза ниже. Судя по этим цифрам, производительность данного теста зависит не только от количества и скорости блоков TMU, иначе разница была бы меньшей.

Посмотрим на результат этого же теста, но с включенным «шейдерным» суперсэмплингом, который увеличивает объёмы работ ещё в четыре раза:

Такая сложность теста под силу только топовым чипам, показанные значения частоты кадров в секунду красноречиво говорят об этом. В целом картина вырисовывается примерно такая же, что и в предыдущем случае, но явно видно, что по мере увеличения сложности шейдера и нагрузки на видеочип, решения AMD начинают догонять видеокарты Nvidia. Geforce 8600 уже не выигрывает у HD 2900 XT, хотя и близок к нему, а Geforce 8500 GT начинает даже немного проигрывать своему конкуренту по ценовому диапазону — HD 2600 PRO.

Включение суперсэмплинга теоретически увеличивает нагрузку ровно в четыре раза, но на видеокартах семейства G8x оно снижает скорость более чем в 5 раз, а на R6xx — лишь в 3 с небольшим, за счет чего последние в таких условиях и получают улучшенные относительные результаты. Скорее всего, при соответствующей доработке драйверов Nvidia сможет снизить падение производительности при включении SSAA, но ведь и у AMD есть подобные возможности по улучшению…

Второй тест, измеряющий производительность выполнения сложных пиксельных шейдеров с циклами при большом количестве текстурных выборок — Steep Parallax Mapping. При низких настройках он использует от 10 до 50 текстурных выборок из карты высот и три выборки из основных текстур. При включении тяжелого режима с самозатенением число выборок возрастает в два раза (от 20 до 100), суперсэмплинг увеличивает это число в четыре раза (от 40 до 200 выборок). Наиболее сложный тестовый режим с суперсэмплингом и самозатенением использует от 80 до 400 текстурных выборок, то есть в восемь раз больше, по сравнению с простым режимом.

То же самое — проверяем сначала простые варианты без суперсэмплинга:

Второй тест более интересен с практической точки зрения, так как разновидности parallax mapping уже применяются в играх, а тяжелые варианты, вроде нашего steep parallax mapping, скоро будут в них использоваться. И в этом тесте, помимо суперсэмплинга, можно включить самозатенение, которое увеличивает нагрузку на видеочип примерно в два раза. Такой режим называется «High», а обычный — «Low».

В наших Direct3D 9 тестах parallax mapping, решения ATI (а затем и AMD) традиционно были сильны, в этот раз выигрыша не получилось, наоборот, без включения суперсэмплинга чипы Nvidia справляются с задачей быстрее. Сразу же отмечаем и несколько большее падение производительности при переходе от режима «Low» к «High» у видеокарт AMD. Изменение результатов при включении самозатенения у решений Nvidia равно примерно 1.5 раза, а у AMD — более двух раз. За счет этого результаты в режиме «High» у последних и оказываются относительно низкими. В общем, по результатам проведенных тестов можно ещё раз отметить победу решений Nvidia во всех ценовых диапазонах, особенно заметен выигрыш в верхнем сегменте.

Чипы среднего и нижнего ценового диапазонов в этом тесте показывают себя примерно так же или чуть лучше: средние отстают от топовых более чем в два раза, и во столько же раз отстают от средних самые слабые. Посмотрим, что изменит включение суперсэмплинга, в прошлом тесте он вызывал большее падение скорости на Nvidia, а это может улучшить положение карт AMD.

По цифрам FPS в очередной раз можно оценить сложность наших задач даже для high-end решений. Посмотрите на полученную частоту кадров в секунду при включенных суперсэмплинге и самозатенении (последний график), совместное включение их увеличивают нагрузку почти в восемь раз, вызывая катастрофическое падение производительности. Разница между скоростью видеокарт из разных ценовых сегментов сохраняется.

Включение суперсэмплинга сказывается почти как и в предыдущем случае — карты на чипах AMD R6xx улучшают свои показатели относительно Nvidia G8x. Странно, что у Nvidia получилось падение в 4 раза (равно теоретическому), а у AMD — только в 3 раза. Несмотря на это, общей победы у AMD не получается, разве что в нижнем ценовом сегменте Geforce 8500 GT (G86) привычно проигрывает HD 2600 PRO (RV630). В остальных парах констатируем еще одну победу решений Nvidia.

Тесты пиксельных шейдеров PS 4.0 (вычисления)

Следующая пара тестов пиксельных шейдеров содержит минимум текстурных выборок, это сделано для снижения влияния скорости блоков TMU на общую скорость. Зато используется очень большое количество арифметических операций (sin, cos, возведение в степень и т.п.). Эти тесты измеряют именно математическую производительность видеочипов, скорость выполнения арифметических инструкций в пиксельном шейдере. Влияние всех остальных исполнительных блоков сведено к минимуму.

Первый математический тест — Mineral. Его можно назвать тестом сложного процедурного текстурирования, в нём используются лишь две выборки из текстурных данных и 65 инструкций типа sin и cos, всего более тысячи инструкций на пиксель.

В соответствии с результатами наших исследований при помощи прошлой версии пакета Direct3D 9 синтетических тестов, в вычислительно сложных задачах архитектура AMD показывает себя очень хорошо, все их решения опережают конкурентов. Но Nvidia G8x отстают не так уж сильно. Да, решения AMD оказываются быстрее во всех ценовых сегментах, но в high-end, наиболее важном стратегически, опережение небольшое, особенно учитывая, что у Nvidia есть и более дорогие решения. Вот в нижнем и среднем сегментах решение на чипе G86 не может противостоять натиску нижнего RV630 и примерно соответствует решению на основе RV610, а быстрый вариант на основе G84 отстаёт от верхнего RV630. В целом, если учитывать реальные и предполагаемые цены всех решений, победа в этот раз за AMD.

Производительность решений среднего уровня обоих производителей в этом тесте примерно в два раза ниже скорости ближайших топовых, low-end чипы выступают хуже ещё в два раза. Наблюдается традиционное соотношение уже который раз, в полном соответствии с урезанием с точки зрения теории, учитывая и тактовые частоты. В общем, не всё так плохо у DirectX 10 чипов среднего и низшего уровней… Хотя, речь в любом случае не идёт о максимальных настройках будущих D3D 10 игр, в них и high-end картам будет несладко.

Второй тест этого блока носит название Fire, и он ещё более тяжёл для ALU. В нём текстурная выборка есть только одна, зато количество инструкций типа sin и cos увеличено до 130, всего более тысячи инструкций.

Смотрим, что изменилось при увеличении нагрузки:

Сразу отмечаем, что полноценного сравнения в тесте «Fire» не получается — налицо явная ошибка в драйверах AMD, которая не позволяет их продукции показывать соответствующие реальной силе результаты. Прежде чем делать выводы, дождемся исправлений в драйверах.

Разница между младшим вариантов G80 и старшим G84 в очередной раз получилась чуть более двух раз, что примерно соответствует разнице в частотах и количестве исполнительных блоков. То же самое касается и low-end чипа Nvidia.

Тесты геометрических шейдеров

В пакет RightMark3D 2.0 включены два теста скорости геометрических шейдеров в разных условиях. Первый вариант носит название «Galaxy», техника аналогична «point sprites» из предыдущих версий Direct3D. В нем анимируется система частиц на GPU, геометрический шейдер из каждой точки (всего от 0.5 до 2.0 миллионов) создает четыре вершины, образующих частицу (quad expansion). Судя по всему, подобные алгоритмы будут широко использоваться в будущих DirectX 10 играх, поэтому показанные результаты в тесте особенно интересны.

Важно отметить, что изменение балансировки в наших тестах геометрических шейдеров не изменяет визуальный результат, в обоих случаях итоговая картинка абсолютно одинакова, изменяются лишь способы обработки сцены. Параметр «GS load» определяет, в каком из шейдеров производятся вычисления — в вершинном или геометрическом, но количество вычислений в обоих случаях одинаково.

Рассмотрим первый вариант теста «Galaxy», с вычислениями в вершинном шейдере, для трёх уровней геометрической сложности:

Видно, что соотношение скоростей при разной геометрической сложности сцен получилось примерно одинаковым для всех условий, отличаются только абсолютные значения. Показываемая всеми решениями производительность полностью соответствует количеству точек, с каждым шагом падение FPS составляет около двух раз. Видеокарты Nvidia в таких условиях чувствуют себя чуть лучше, показывая большие результаты во всех сравниваемых парах: Geforce 8800 GTS быстрее HD 2900 XT, Geforce 8600 GT быстрее HD 2600 XT, Geforce 8500 GT быстрее HD 2600 PRO. Разница хоть и небольшая, но она есть.

Задача не такая уж сложная для современных видеокарт, топовые решения незначительно обогнали видеокарты среднего уровня, разница не достигает и двух раз. Хотя low-end отстают от mid-end всё в те же два раза. Возможно, при переносе части вычислений в геометрический шейдер ситуация изменится, как при сравнении решений разных производителей, так и ценовых сегментов. Сейчас мы это проверим.

Действительно, произошли некоторые изменения. Теперь решения на базе чипов G8x не всегда выигрывают у решений на основе R6xx во всех случаях с разным количеством геометрии. Хотя Geforce 8600 GT всё равно опережает RADEON HD 2600 XT, а Geforce 8500 GT немного опережает HD 2600 PRO, топовая видеокарта AMD вырывается вперед. Интересно, что между цифрами Geforce 8800 GTX и GTS почти нет разницы, хотя число активных исполнительных блоков у этих чипов отличается. В итоге, AMD продолжает проигрывать, что немного странно, учитывая отмеченную в наших прошлых тестах высокую эффективность выполнения вершинных шейдеров их чипами. Посмотрим, может быть во втором тесте результат изменится…

«Hyperlight» — это второй тест геометрических шейдеров в новой версии RightMark3D, который демонстрирует использование сразу нескольких интересных техник: instancing, stream output, buffer load. В нем используется динамическое создание геометрии при помощи отрисовки в два буфера, также этот тест использует новую возможность DX10 — stream output. Первый используемый шейдер генерирует направление лучей, скорость и направление их роста, эти данные помещаются в буфер, который используется вторым шейдером для отрисовки. По каждой точке луча строятся 14 вершин по кругу, всего до миллиона выходных точек.

Новый тип шейдерных программ используется для генерации «лучей», а с параметром «GS load», выставленном в «Heavy» — ещё и для их отрисовки. То есть, в режиме «Balanced» геометрические шейдеры используются только для создания и «роста» лучей, вывод осуществляется при помощи «instancing», а в режиме «Heavy» выводом также занимается геометрический шейдер. Сначала рассматриваем лёгкий режим:

Результаты разных видеокарт относительно друг друга практически не отличаются, вне зависимости от геометрической сложности сцены. Производительность хорошо масштабируется и почти соответствует теоретическим параметрам, по которым каждый следующий уровень «Polygon count» должен быть в два раза медленней.

Большое преимущество видеокарт Nvidia наблюдается и в этот раз, когда нагрузка на геометрические шейдеры не так велика. RADEON HD 2900 XT уступает даже Geforce 8600 GT, а нижнее решение Nvidia незначительно опережает HD 2600 XT. Про G80 и говорить не стоит — они далеко впереди, и их производительность явно ограничена чем-то другим, так как по сравнению с G84 они не слишком много выигрывают.

Интересно, что производительность HD 2400 XT почти равна скорости HD 2600 PRO и обе цифры сильно отстают от HD 2600 XT, в прошлые разы такого не было. Все эти цифры могут измениться в следующем нашем тесте, где геометрические шейдеры используются ещё активнее. Особенно интересно будет сравнить цифры, полученные в «Balanced» и «Heavy» режимах друг с другом.

Согласитесь, ситуация получилась совсем другая! Можно четко сказать, что чипы серии AMD R6xx выполняют такую работу значительно быстрее чипов Nvidia G8x, имея преимущество в 2 раза и даже более. Производительность данных тестов очень сильно зависит от сложности работы для геометрических шейдеров. Чипы AMD выполняют работу не просто быстрее решений Nvidia, с усложнением геометрии эта разница растёт. Получается, что чем сложнее работа для геометрического шейдера, тем быстрее будут R6xx по сравнению с G8x.

Но, сравнивая результаты в разных режимах, когда выводом занимаются разные типы шейдеров, нужно отметить, что у Nvidia результаты в «Balanced» получились лучше, чем в «Heavy» у AMD. При том, что выводимая картинка не отличается. Это в очередной раз грозит разработчикам 3D приложений тем, что им придётся оптимизировать свой код для двух столь разных архитектур, чтобы добиться максимальной производительности от обеих.

При переходе от использования «instancing» к геометрическому шейдеру при выводе, видеокарты Nvidia сильно теряют в производительности, от 2 до 6 раз. Причем, чем младше чип, тем большая разница в скорости рендеринга между двумя режимами. У AMD же всё наоборот, результаты в режиме использования геометрического шейдера для вывода больше, чем с «instancing», пусть и не в разы. Получается, что сами по себе геометрические шейдеры при увеличении работы (количества генерируемых вершин) работают лучше на чипах AMD, но реальность тем и отличается от синтетических тестов, что разработчики вольны выбирать свой путь сами, и если использование для их задач вершинных шейдеров будет выгоднее, они вполне могут так и сделать.

Крайне любопытна и разница между скоростью в режимах «Balanced» и «Heavy» для разных чипов одной линейки. Забавная ситуация со сравнением HD 2400 XT и HD 2600 PRO усугубилась — теперь младший чип даже выигрывает у старшего. И «виновата» тут, скорее всего, более высокая частота младшего решения и ограничение скорости triangle setup. У Nvidia такого не наблюдается, все чипы показали результаты строго по линейке — G84 медленнее G80 в 2-3 раза, а G86 — в 4-6 раза. С HD 2600 PRO связана ещё одна загадка, объяснить которую не получается — только эта видеокарта производства AMD теряет в производительности при смене режима с «Balanced» на «Heavy» в режиме с большим количеством геометрии.

Нужно отметить и ошибку в драйверах AMD, которая проявляется только на HD 2900 XT, вызывая в наиболее сложном режиме теста «Hyperlight» отсутствие выводимой картинки и аномально высокий результат, который нельзя принять за корректный. Поэтому в последней диаграмме результата для этой видеокарты нет.

Главный вывод этой части — разные тесты геометрических шейдеров могут давать отличающиеся результаты, в одних будут лидировать решения Nvidia, в других — AMD. При росте сложности работы геометрического шейдера вперед выходит AMD, но нужно помнить, что это всё — синтетические тесты, о реальной производительности можно будет судить только по игровым тестам, которых пока крайне мало, к сожалению.

Скорость выборки текстур из вершинных шейдеров

В тестах «Vertex Texture Fetch» измеряется скорость большого количества текстурных выборок из вершинного шейдера. Тесты похожи друг на друга, теоретически, соотношение между скоростями тестов «Earth» и «Waves» должно быть примерно одинаковым. В обоих тестах используется displacement mapping на основании данных текстурных выборок. Отличие в том, что в тесте «Waves» используются условные переходы, а в «Earth» — нет.

В первом тесте («Earth») делается 32 (для режима «Effect detail Low») или 48 («Effect detail High») билинейных текстурных выборки на каждую вершину. Количество вершин также можно изменять, для трех возможных режимов эти числа соответствуют: 30000, 124000 и 280000.

Рассмотрим режим «Effect detail Low»:

Все три графика показывают примерно одинаковую картину производительности видеокарт относительно друг друга, разве только производительность Geforce 8500 GT при увеличении нагрузки «проседает» быстрее, чем производительность конкурирующего HD 2600 PRO, если в «Low» выигрывает первая видеокарта, то в «High» впереди уже решение AMD. У пары HD 2600 XT и Geforce 8600 GT всё с точностью до наоборот, при небольшой нагрузке впереди решение AMD, а в «High» оно уже чуть-чуть отстаёт. Среди топовых решений борьбы не получилось, все варианты G80 быстрее R600.

Соотношение между производительностью верхних решений и видеокарт среднего и низшего уровней остаётся прежним, до 2-3 раза между первыми и 2-3 раза между вторыми. Интересно лишь слишком большое отличие в производительности между HD 2600 PRO и HD 2600 XT, его не объяснить отличающимся количеством текстурных модулей (TMU), так как используются одинаковые чипы. На результаты теста может влиять и пропускная способность памяти, которая у PRO и XT вариантов сильно отличается.

Посмотрим на результаты этого же теста с увеличенным количеством текстурных выборок:

В этом варианте видеокарты AMD немного потеряли в скорости относительно своих соперников. Во всех конкурирующих парах победителями становятся решения Nvidia, имеющие большее количество эффективно работающих текстурных модулей. Разница между AMD и Nvidia в указанных условиях составляет до 1.5-2 раз. Видеочипы Nvidia явно эффективнее выполняют выборку текстурных данных, если исходить из тестов и вершинных и пиксельных шейдеров.

Посмотрим результаты второго теста VTF, интересно, проявятся ли там схожие проблемы? Тест «Waves» отличается меньшим количеством выборок, зато используются условные переходы. Количество билинейных текстурных выборок в данном случае до 14 («Effect detail Low») или до 24 («Effect detail High») на каждую вершину. Сложность геометрии изменяется аналогично предыдущему тесту, общее количество вершин может быть равно примерно 124000, 498000 и 1122000 для режимов «Polygon count Low», «Medium» и «High», соответственно.

«Waves» не показывает нам чего-то нового, всё примерно так же, как и в предыдущем тесте «Earth». Видно, что некоторые чипы Nvidia (G80 и G86) теряют кадры в секунду с ростом сложности геометрии чуть быстрее, чем конкуренты от AMD (R600 и RV630), но лучшими в большинстве случаев всё равно оказываются решения Nvidia.

Последние результаты также примерно соответствуют показанным в предыдущих случаях, лишь преимущество решений Nvidia видно чуть лучше. В целом, хорошо видно, что видеокарты на основе чипов Nvidia G8x выполняют наши тесты текстурных выборок из вершинных шейдеров быстрее, чем решения AMD на основе архитектуры R6xx. Это и есть основной вывод из данной серии VTF тестов.

Заключение и выводы по синтетическим тестам

Итак, дебют применения RightMark3D 2.0 для исследований на нашем сайте состоялся. Тесты в его составе затрагивают почти все аспекты нововведений в Direct3D 10, они гибко настраиваются, позволяя нам оценить сравнительную производительность всех линеек Direct3D 10 чипов от AMD и Nvidia. Обе унифицированные архитектуры этих компаний показали себя в наших новых Direct3D 10 тестах вполне неплохо, больших провалов производительности не обнаружено, за исключением пары случаев с явными ошибками в драйверах AMD. Оба семейства: R6xx и G8x отличаются высокой вычислительной и текстурной производительностью, они хорошо справляются со сложными шейдерами всех типов.

  • Если брать результаты в целом, то у решений Nvidia есть некоторое преимущество перед конкурентами от AMD, на данный момент их видеокарты оказываются впереди в большинстве случаев. Но в некоторых тестах чипы AMD показывают лучшие результаты, например, в сложных тестах геометрических и пиксельных шейдеров. Преимущество чипов AMD в таких тестах при увеличении нагрузки даже растёт. Так что исход сражения в DirectX 10 играх пока что не определён, нельзя сказать однозначно, кто из соперников его выиграет. Можно лишь предположить, что там будут аналогичные нашим результаты — в основной массе приложений R6xx и G8x будут близки друг к другу, в некоторых будут лидировать решения на основе решений компании Nvidia, в других — AMD. И зависеть это будет во многом от разработчиков и от используемых ими методов и алгоритмов.


  • Тесты пиксельных шейдеров версии 4.0 показали, что с множественными текстурными выборками при сравнительно небольшой загрузке ALU лучше справляются видеочипы Nvidia. Решения AMD, в свою очередь, опережают конкурентов в вычислительных тестах пиксельных шейдеров. В одном из них видеокарты на основе чипов архитектуры R6xx показали очень неплохие результаты и опередили конкурентов из стана Nvidia, а ситуация во втором тесте пока не ясна из-за ошибок в драйверах.


  • Как мы уже отмечали, тесты геометрических и вершинных шейдеров дают отличающиеся результаты, в одних лидируют решения Nvidia, в других — AMD. Так как при росте сложности работы для геометрического шейдера вперед выходят видеокарты AMD, то можно предположить, что в приложениях с активным использованием геометрических шейдеров, если таковые появятся в ближайшее время, будут лидировать чипы этой компании.


  • Последняя пара тестов RightMark3D 2.0 — тесты на скорость выборки текстур из вершинных шейдеров. Показанные в них результаты отчетливо говорят о том, что видеокарты на основе чипов Nvidia G8x выполняют наши тесты текстурных выборок из вершинных шейдеров быстрее, чем решения AMD на основе архитектуры R6xx. Это связано с традиционно разным балансом между текстурными и вычислительными возможностями у чипов двух конкурирующих компаний.


  • «Урезание» количества шейдерных блоков, блоков TMU и ROP довольно существенно ударило по решениям среднего и низшего уровней, значительно снизив их производительность. Недорогие видеокарты отстают от топовых в разы, лучшие из mid-end в 2-3 раза (от HD 2900 XT и Geforce 8800 GTS), а low-end ещё больше — до 4-8 раз. Что подтверждается и результатами игровых тестов, пока что только Direct3D 9.


  • Судя по полученным нами результатам, драйверы AMD для Vista явно хуже доработаны по сравнению с драйверами Nvidia. Если у продукции второй компании в наших тестах никаких ошибок не было обнаружено, то у решений AMD наблюдались две явные проблемы: у всей линейки чипов во втором «вычислительном» тесте пиксельных шейдеров («Fire»), а также у топового решения HD 2900 XT в наиболее сложном режиме теста на скорость выборки текстур из вершинных шейдеров «Earth». Очень хотелось бы верить, что эти недостатки будут устранены в ближайших версиях драйверов CATALYST.