NVIDIA GeForce3 и современные процессоры: история отношений

Недавно мы упомянули в наших новостях о двух пресс-релизах, выпущенных NVIDIA по поводу оптимизации работы GeForce3 с самыми производительными процессорами — Intel Pentium4 и AMD Athlon. Велик соблазн собственноручно подтвердить (или опровергнуть) наличие подобной оптимизации и исследовать ее эффективность.

Почему от процессора все еще что-то зависит

Казалось бы — чем мощнее T&L современного ускорителя, тем менее он зависит от процессора. Это не так. Существует множество аспектов, пожирающих процессорную мощность в реальных приложениях, несмотря на наличие "аппаратного" T&L. В частности, в прямой зависимости от сложности сцены. Как правило, все эти вычисления производятся конкретными приложениями и не имеют прямого отношения к драйверам. А что же тогда, спросите вы, можно оптимизировать на уровне драйверов? Ответ:

  1. Передачу исходной геометрической информации для последующей обработки T&L блоком в ускоритель.
  2. Преобразование неподдерживаемых аппаратно форматов вершин, прочая предварительная обработка.
  3. Оптимизация моделей (сортировка и группировка треугольников) ускоряющая их последующий вывод.
  4. Компрессия текстур.
  5. Размещение и менеджмент текстур.
И еще несколько недостойных нашего внимания вариантов…

Практика показывает, что здесь есть где развернуться, даже драйверам самых современных ускорителей (таких как GeForce3). Огромное число полигонов и текстур, которые столь успешно перевариваются современными акселераторами надо не только создать (сгенерировать) но и передать ускорителю. Причем, что самое обидное, передавать геометрическую информацию приходится каждый кадр. Подобная нагрузка способна с головой поглотить средний процессор, пытающийся обеспечить ненасытный GeForce3 данными. Скажем, 4-10 миллионов полигонов в секунду (вполне реальная для GF2 Ultra или GF3 и будущих приложений цифра). Грубо оценим объем геометрических данных: 10 миллионов треугольников * 1.5 вершины в среднем на треугольник. Каждая вершина — это не только XYZ координаты в плавающем формате, но и координаты текстур (по 2 на каждую), и, возможно, вектор нормали или два произвольных вектора атрибутов (цвета). Мы получаем цифры порядка пол гигабайта в секунду. И это без учета текстур! Лимитирующий фактор налицо — при таком раскладе все зависит от процессора, чипсета и AGP (т.е. платформы). Многие современные игры (в их число входят и Q3, почти не использующий T&L и Unreal/Unreal Tournament) совершенно бездарно гоняют геометрическую информацию по шине и их спасает лишь невысокое число треугольников. Но что будет завтра? Напрашивается очевидный выход — хранить все геометрические данные в локальной памяти ускорителя, и там же их обрабатывать. Сей подход успешно начинает применятся в DX8 (pure hardware vp), но все равно, реальному приложению приходится регулярно обновлять данные, да и не все задумки создателей способны свершится только молитвами T&L, пускай даже столь гибкого, как в случае GeForce3. Кстати, API также является существенным ограничителем — OpenGL в своем девственно чистом виде (без различных расширений, компиляции списков вершин и пр.) не способен протолкнуть и десятой доли упомянутого числа треугольников. Здесь, на уровне OpenGL ICD, оптимизация драйвера под определенную платформу играет очень существенную роль.

Именно вопрос пропиретарных расширений и их использования породил плотное обсуждение в нашей видеоконференции недавно вышедшего теста GLmark. Код, ориентированный на новые расширения NVIDIA, созданные для эффективной обработки списков вершин, получил огромный выигрыш на ускорителях данной фирмы. Не будем решать, кто здесь виноват, кто поступил нечестно или ноборот верно. Но заметим, что подобная программа уже не может претендовать на звание всеобщего теста. Сам по себе GL Mark являет прообраз OGL программ будущего — ориентированных на большой объем геометрии и соответствующие расширения, которые вскоре выйдут из ранга пропиретарных.

Тестирование

Тестирование проводилось на драйверах версии 10.80 (Developers Release for GeForce 3). Операционная система и прочие параметры платформы соответствуют нашим 3DGiТогам (Windows98 SE2 + DX8). Как я и думал, существенного прироста производительности, по сравнению с более ранними 10.50/10.70 (и 10.40 для w2k) драйверами не наблюдается, а совместимость с различными приложениями и стабильность существенно возросли. Непонятным остался один единственный факт — по прежнему отсутствует поддержка объемных текстур. Хотя, заметны следы ее наличия в драйвере, она по-прежнему заблокирована. Мы использовали следующие

Тестовые стенды

  1. Компьютер на базе Pentium III — 1000 MHz:
    • процессор Intel Pentium III — 1000EB (133 MHz FSB);
    • системная плата Chaintech 6OJV (i815);
    • оперативная память 256 MB PC133 (2xDIMM Transcend);
    • жесткий диск IBM DPTA 20GB UltraDMA/66;

  2. Компьютер на базе Athlon — 1.2 GHz:
    • процессор AMD Athlon Thunderbird — 1.2GHz (266MHz FSB);
    • системная плата Soltek 75KAV-X (VIA KT133A);
    • оперативная память 256 MB PC133 (2xDIMM Hyundai);
    • жесткий диск Fujitsu 10GB UltraDMA/66

  3. Компьютер на базе Pentium4 — 1.5 GHz:
    • процессор Intel Pentium 4 — 1.5 GHz;
    • системная плата ASUS P4T (i850);
    • оперативная память 256 MB ECC PC800 RDRAM (2x RIMM Buffalo);
    • жесткий диск 45Gb IBM Deskstar GXP75
Карты и платформы тестировались с помощью Quake3 и 3D Mark 2000. Подробности относительно установок перечислены в 3DGiТогах.

3D Mark 2000



NVIDIA GeForce3
NVIDIA GeForce2 Ultra

Налицо существенная зависимость от платформы. Максимальный выигрыш наблюдается для P4, на втором месте Athlon. Интересно, что тест Game1 существенно выигрывает в случае GeForce3 у GeForce2 Ultra, а вот Game2 явно не лучший аргумент для покупки этой карты. Впрочем, с учетом скорого выхода 3D Mark 2001, можно не придавать результатам этих "псевдоигровых" тестов особенного внимания - моделируемые игры слишком завязаны на DX7. А вот синтетические тесты остаются прекрасным показателем. Давайте взглянем на результаты "валового" T&L теста:

1 источник освещения
4 источника освещения
8 источников освещения

В случае одного источника света нас ожидает приятный сюрприз — GeForce3 масштабируется, увеличивая свой результат на более мощных процессорах и обгоняет GeForce2 Ultra T&L которой как мы знаем, работает на более высокой частоте. Никакого чуда нет — улучшенное кеширование и более совершенная выборка треугольников помогают GeForce3 реализовать весь потенциал более мощных процессоров, более успешно организовав взаимодействие с ними (прокачку геометрии). Но, при увеличении числа источников света все преимущество тает - основная задержка — расчет освещения и производительность этого блока GF3 ниже GF2 Ultra (с учетом неравенства частот). Но, несмотря ни на что заметна существенная оптимизация новых драйверов для современных (P4/Athlon) платформ. Прирост в полтора раза, пускай и на синтетическом тесте нельзя сбрасывать со счетов. Кроме того, обнаружился скрытый потенциал валовой T&L производительности GeForce3 в некоторых задачах, использовать который пока также способны лишь самые современные процессоры. Но, геометрия не единственный род данных подаваемых от процессора или из основной памяти в ускоритель. Есть еще и текстуры:

Текстуры 16 мегабайт
Текстуры 32 мегабайта
Текстуры 64 мегабайта

Здесь GeForce3 в явном фаворе:

  1. По производительности закраски для малых объемов текстур (16-32МБ), когда все помещается в локальный буфер и роль играют лишь эффективность кеширования и алгоритмы работы ускорителя со своей локальной памятью), а OverDraw же в тестовой сцене отсутствует и HSR не вмешивается в результаты.
  2. По получаемому на передовых процессорах преимуществу от более высокой скорости обработки и загрузки в локальную память текстур (тест с 64 МБ).
Причем, снова Pentium4 лидер, но и Athlon зачастую отстает от него незначительно, на лицо существенное преимущество новых платформ. Занятны два исключения — в случае малого объема текстур Athlon резко проигрывает на GeForce3 даже Pentium III (некий лаг на геометрии), а в случае большого, наоборот, лидирует на GeForce2 Ultra (преимущество по закачке текстур на эту карту). Учитывая более широкую шину Pentium4, этого не должно было произойти.

Quake3 Arena







Здесь, результаты практически не требуют комментариев, очевидно, что зависимость от процессора существует, и владельцам GeForce3 стоит задуматься на эту тему. Картина уже знакома нам по 3D Mark — впереди Pentium4 со своей очень эффективной и "широкой" шиной, на втором месте Athlon, затем Pentium III. В полном соответствии с пропускной способностью FSB и чипсета. С повышением разрешения преимущество нивелируется, но в самом "игровом" для подобных карт разрешении (1024) оно все еще существенно.

Как бы там ни было, необходимо дождаться нового поколения игр и тестов (например 3D Mark 2001). Тогда мы сможем определить, возрастет ли зависимость от процессора или наоборот уменьшится. А, кстати, возможны оба сценария — более сложная геометрия игр на одной чаши весов будет компенсирована применением шейдеров, хранением геометрии в локальной памяти и более оптимизированными для высокой пропускной способности карт API. Делаем ставки господа, 11-й Детонатор и 3D Mark 2001 будут с недели на неделю.




10 марта 2001 Г.

NVIDIA GeForce3 :

NVIDIA GeForce3 :

-, NVIDIA GeForce3 — Intel Pentium4 AMD Athlon. ( ) .

-

— T&L , . . , , "" T&L. , . , . , , ? :

  1. T&L .
  2. , .
  3. ( ) .
  4. .
  5. .

, , ( GeForce3). , () . , , . , GeForce3 . , 4-10 ( GF2 Ultra GF3 ). : 10 * 1.5 . — XYZ , ( 2 ), , , (). . ! — , AGP (.. ). ( Q3, T&L Unreal/Unreal Tournament) . ? — , . DX8 (pure hardware vp), , , T&L, , GeForce3. , API — OpenGL ( , .) . , OpenGL ICD, .

GLmark. , NVIDIA, , . , , . , . GL Mark OGL — , .

10.80 (Developers Release for GeForce 3). 3DGi (Windows98 SE2 + DX8). , , 10.50/10.70 ( 10.40 w2k) , . — . , , - .

  1. Pentium III — 1000 MHz:
    • Intel Pentium III — 1000EB (133 MHz FSB);
    • Chaintech 6OJV (i815);
    • 256 MB PC133 (2xDIMM Transcend);
    • IBM DPTA 20GB UltraDMA/66;

  2. Athlon — 1.2 GHz:
    • AMD Athlon Thunderbird — 1.2GHz (266MHz FSB);
    • Soltek 75KAV-X (VIA KT133A);
    • 256 MB PC133 (2xDIMM Hyundai);
    • Fujitsu 10GB UltraDMA/66

  3. Pentium4 — 1.5 GHz:
    • Intel Pentium 4 — 1.5 GHz;
    • ASUS P4T (i850);
    • 256 MB ECC PC800 RDRAM (2x RIMM Buffalo);
    • 45Gb IBM Deskstar GXP75
Quake3 3D Mark 2000. 3DGi.

3D Mark 2000



NVIDIA GeForce3

NVIDIA GeForce2 Ultra

. P4, Athlon. , Game1 GeForce3 GeForce2 Ultra, Game2 . , 3D Mark 2001, "" - DX7. . "" T&L :

1

4

8

— GeForce3 , GeForce2 Ultra T&L , . — GeForce3 , ( ). , - — GF3 GF2 Ultra ( ). , (P4/Athlon) . , . , T&L GeForce3 , . , . :

16

32

64

GeForce3 :

  1. (16-32), ), OverDraw HSR .
  2. ( 64 ).
, Pentium4 , Athlon , . — Athlon GeForce3 Pentium III ( ), , , GeForce2 Ultra ( ). Pentium4, .

Quake3 Arena







, , , , GeForce3 . 3D Mark — Pentium4 "" , Athlon, Pentium III. FSB . , "" (1024) .

, ( 3D Mark 2001). , . , , — , API. , 11- 3D Mark 2001 .