Факторы, определяющие производительность 3D-акселераторов


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

Я попытался оценить, каких максимальных значений производительности можно ожидать от сегодняшних ускорителей 3D-графики и какие процессоры нам для этого понадобятся.

Сколько fps мы можем ожидать?

Сегодняшние 3D-акселераторы имеют две основные характеристики, отображающие их производительность:

  • fillrate — скорость текстурирования трехмерной сцены, измеряемая в миллионах пикселей в сек.
  • polygon throughput — скорость построения трехмерной сцены, измеряемая в миллионах полигонов в сек.

Показатель fillrate может определять максимальную производительность только в случае, если CPU имеет достаточную мощность для обеспечения видеокарты непрерывным потоком данных. Таким образом, если мы имеем видеокарту с заявленной характеристикой fillrate = 100 million pixel/sec, то максимально возможные кадровые частоты должны быть такими (осторожная оценка с двукратным перекрытием):

  • режим 640x480x16 — 100000000/(640*480*2) = 163fps
  • режим 800x600x16 — 100000000/(800*600*2) = 104fps
  • режим 1024x768x16 — 100000000/(1024*768*2) = 63fps

С другой стороны, максимальная производительность может лимитироваться и величиной polygon throughput этой видеокарты. Т. е. если, например, этот показатель равен 1.5 million poly/sec, а в некоторой игре в кадре в среднем присутствует 20000 полигонов, то максимально достижимыми становятся: 1500000/25000 = 75fps. Несмотря на то, что наш гипотетический ускоритель способен раскрасить (текстурировать) 160 кадров в сек., построить он успевает лишь 75 кадров.

Исходя из приведенных выше теоретических рассуждений, я составил таблицу, характеризующую максимальные возможности большинства сегодняшних 3D-ускорителей.

Теоретические пределы графических чипсетов

Чипсет Fillrate, млн. пикселей/сек. Throughput, млн. полигонов/сек. Максимум fps по fillrate Максимум fps по throughput1
640x480 800x600 1024x768
3Dfx Voodoo Graphics 45 1 73 - - 50
3Dfx Voodoo2 (90МГц)2 90 3 147 94 - 150
3Dfx Voodoo2 SLI (90МГц) 180 3 293 188 115 150
3Dfx Banshee3 125 4 203 130 80 200
nVidia RIVA 128(128ZX) 100 5 162 104 64 250
nVidia RIVA TNT4 250 8 407 260 159 400
Rendition V2200 50 2 81 52 32 100
S3 Savage3D5 125 5 203 130 80 250
Matrox G200 100 1.6 162 104 64 80
Intel i740 66 1.2 107 68 42 60
3Dlabs PERMEDIA2 42 1 68 43 27 50
  • 1 — из расчета 20000 полигонов в кадре
  • 2 — некоторые видеокарты работают на частотах 92-95МГц и обладают большей производительностью
  • 3 — в разных источниках указываются рабочие частоты 100-125МГц и, соответственно, разная скорость текстурирования
  • 4 — первые экземпляры видеокарт на Riva TNT работают с частотой 90-100МГц и имеют меньшую производительность
  • 5 — первые продаваемые видеокарты Hercules Terminator Beast работали на частоте 110МГц и имели меньшую производительность

Как видно, "потолок" большинства чипов определяется fillrate, но, в случае возрастания сложности картинки и увеличения числа полигонов, из которых она состоит, уже throughput начинает играть важную роль. Также должен заметить, что в таблице приведены пиковые значения throughput (именно их фирмы-производители так любят указывать в рекламных материалах), а в реальных игровых ситуациях эти цифры существенно ниже. Так, среднее реальное значение для Riva128 составляет 1.5 млн. полигонов/сек., для Rendition V2200 — 550 тыс. полигонов/сек.

В случае, когда достаточно мощности и CPU и генератора треугольников видеокарты, все зависит от fillrate и с увеличением разрешения частота кадров будет постоянно понижаться, вот так:

Таким образом, достижение "потолка" видеокартой можно определить и по тому, каким образом снижается частота кадров при увеличении разрешения.

Также видно, что переход от 640х480 к 1600х1200 вызовет более, чем шестикратное снижение частоты кадров, но пока для большинства это имеет чисто абстрактный интерес.

Какие процессоры нам для этого понадобятся?

Чтобы реализовать максимальные значения fps в приведенной выше таблице мощности, сегодняшних процессоров просто недостаточно. Кроме того, картина существенно изменяется от того, в каком именно приложении (игре!) мы хотим достичь этого максимума.

К счастью, на сегодня есть уже, по крайней мере, одна игра - Forsaken, которая близка к максимально возможным значениям на сегодняшних CPU, по крайней мере, с некоторыми 3D-чипсетами. Я проанализировал результаты, показываемые Forsaken, и попробовал экстраполировать их. Также я сравнивал результаты, показываемые в аналогичных условиях Quake II (который, как мне представляется, далек от своего максимума на любом современном чипсете), чтобы попытаться спрогнозировать, какой процессор понадобиться для достижения "потолка" этой игры.

Должен сразу сказать, что, ввиду полной невозможности (финансовой :-) ) провести развернутое тестирование разных 3D-ускорителей на широком спектре CPU собственными силами, я пользовался результатами, публикуемыми в Сети. При этом я старался охватить несколько источников и выбрать наиболее типичные из них. Результаты можно увидеть ниже.

CPU Pentium II 400МГц (источник www.tomshardware.com)

Чипсет Forsaken, fps Quake II massive1.dm2, fps
640x480 800x600 1024x768 640x480 800x600 1024x768
3Dfx Voodoo2 12MB 155 98 - 65 49 -
3Dfx Voodoo2 12MB SLI 246 192 118 69 68 58
3Dfx Banshee 16MB 198 139 86 55 40 26
S3 Savage3D 8MB 198 146 94 60 47 33
Matrox G200 16MB 146 88 62 34 26 18
nVidia RIVA TNT 16MB 207 144 87 60 54 39

Как видно, в Forsaken лишь Voodoo2 достигает предела своих возможностей. Конфигурация Voodoo2 SLI еще имеет некоторый запас, особенно в малых разрешениях, но в разрешении 1024x768 процессор подает данные ровно в том темпе, в каком графический чипсет успевает обрабатывать. Matrox близок к своему максимуму, но, наверное, еще будет масштабироваться до 450-500МГц. Banshee и Savage3D демонстрируют в высоких разрешениях даже немного лучшие результаты, чем можно было бы ожидать: наверное, я чересчур осторожничал, и цифры в таблице "Теоретические пределы графических чипсетов" можно увеличить на 10-15%. Quake II еще очень далек от результатов Forsaken, и, очевидно, ему требуются куда более мощные процессоры, чем Pentium II — 400, чтобы раскрыть весь потенциал сегодняшнего графического "железа". Таким образом, если Forsaken требуется около 4 тактов на обработку одного пикселя, то другим (Quake II, Unreal, SiN) — порядка 8 тактов, что является расплатой за более совершенный графический engine (или может быть за менее удачное программирование :-)).

Нужно также учитывать то, что менее мощные процессоры вынуждены тратить больше времени на неграфические операции, такие как обработка звука, физика игры, интеллект противника, и, значит, на более быстрых CPU на один пиксель в одной и той же игре уже может хватить и 3 такта там, где раньше требовалось 4-е. Проиллюстрировать это можно так:

Интересным является и тот факт, что на сегодня лишь Voodoo2 достигает максимальных значений, а другие чипсеты с близкими характеристиками (Matrox, Riva128) демонстрируют куда меньшие результаты на тех же процессорах. Объяснений этому может быть два. Во-первых, архитектура Voodoo более оптимальна с точки зрения интерфейса между процессором и графическим чипсетом и, следовательно, задержки с поступлением данных в чипсет минимальны. Во-вторых, большинство современных игр оптимизировано именно под Voodoo, и при работе с другим ускорителем "накладные расходы" на обслуживание графики куда больше. А утешительным для всех владельцев Riva128 (в том числе и меня) является то, что их видеокарты будут работать еще быстрее c Pentium II мегагерц эдак на 800.

Итак, хочу представить вашему вниманию еще одну таблицу, в которой я рассчитал частоту CPU, которая понадобится для достижения пределов 3D-ускорителей. Минимальное значение применимо для игр с относительно простым движком (a-la Forsaken), а максимальное — для сложных (Unreal, Sin). Цифры брались из расчета 3-6 тактов CPU на один пиксель fillrate для чипсетов 3DFX и 5-8 тактов на пиксель для остальных; менее мощным CPU выделялось больше тактов, чем более мощным.

Частота CPU, требуемая для достижения максимальной производительности 3D-акселератора (прогноз).

Чипсет Требуемая частота CPU, MHz
Min Max
3Dfx Voodoo Graphics 180 270
3Dfx Voodoo2 (90МГц) 360 630
3Dfx Voodoo2 SLI (90МГц) 540 990
3Dfx Banshee 500 750
nVidia RIVA 128(128ZX) 500 800
nVidia RIVA TNT 1000 1500
Rendition V2200 250 350
S3 Savage3D 625 875
Matrox G200 500 800
Intel i740 333 533
3Dlabs PERMEDIA21 250 500
  • 1 — я имел довольно большой собственный опыт "общения" с PERMEDIA2, и могу сказать, что масштабируется он еще медленнее, чем Riva128, поэтому я выделил ему так много тактов.

Приведенные цифры могут сильно колебаться в зависимости от самих программ — очевидно, сложность компьютерных игр будет возрастать, еще больше ресурсов процессора понадобиться для расчета физических законов виртуального мира, графике опять достанется меньше ресурсов, а, значит, Unreal 2 (когда он будет) может понадобиться вдвое более мощный процессор, чтобы достичь тех же скоростей, что первому Unreal на том же самом ускорителе.

С другой стороны, ситуацию может исправить оптимизация будущих игр под наборы инструкций 3DNow! от AMD и MMX2(KNI) от Intel.

А нужны ли нам 400fps?

В общем-то, не нужны. В подавляющем большинстве игр достаточно 30-60fps для полной играбельности. И именно их мы получим, когда будем играть в 1280x1024 или 1600x1200 при 32bit цвете, но будет это не раньше, чем через год, при сохранении сегодняшнего темпа в микропроцессорной индустрии. Главный же факт состоит в том, что новейшие 3D-акселераторы обладают прекрасным запасом мощности, с любым из них можно встречать 2000 год. Но тут уже вступают силу чисто рыночные факторы. В следующем году опять будет "быстрее, выше, сильнее". Уже объявленный Glaze 3D должен вдвое превосходить RivaTNT. Кроме того, как показывает опыт, примерно через 2-3 года фирмы-производители утрачивают интерес к своим детищам и прекращают выпуск новых драйверов для них. Тем, кто не имеет тугого кошелька, выбирать видеокарту сегодня следует прежде всего из соображений стоимости и наличия программной поддержки для ваших любимых приложений, ситуация же с производительностью в 3D сегодня уже почти такая же, как и с 2D — она хорошая или очень хорошая для всех новых чипсетов.

Так обстоит дело сегодня, так будет через пару месяцев, но вот в перспективе на лето следующего года уже есть некоторые подводные камни. Поэтому следует сказать и о том, какие факторы еще нужно принимать во внимание, глядя на приведенную выше таблицу "Частота CPU, требуемая для достижения максимальной производительности 3D-аксселератора"

Влияние мультитекстурирования на производительность.

Некоторые из представленных чипсетов (nVidia RIVA TNT, 3Dfx Voodoo 2) поддерживают мультитекстурирование, т. е. способны налагать несколько текстур за один проход. Это повышает их скорость на играх, использующих эту особенность чипсета (Quake II, Unreal, SiN). Это хорошо видно при сравнении показателей 3Dfx Voodoo 2 и Banshee : в Forsaken'е, не использующем мультитекстурирование, Banshee вырывается вперед за счет большей частоты чипа, но в Quake II ситуация обратная — здесь Voodoo 2 показывает лучший результат. В будущих играх функция мультитекстурирования, наверное, получит еще более широкое применение.

Удачность реализации AGP в 3D-аксскелераторах.

На сегодняшний день еще очень мало приложений, которые бы реально использовали шину AGP, но, очевидно, что с каждым месяцем их число будет нарастать. 2 — 4 МБ текстурной памяти, имеющихся "на борту" самых популярных на сегодня ускорителей семейства Voodoo, явно не хватает для создания действительно реалистичной картинки. В конце концов, хочется увидеть в играх настоящую траву, а не набор размазанных по плоскости желто-зеленых точек! И тут уже без AGP не обойтись. К сожалению, степень реализации функций AGP сильно колеблется от чипсета к чипсету. Для иллюстрации приведу еще одну таблицу, показывающую скорость Quake II на тесте mon2.dm2. Этот тест был специально разработан S3 для показа возможностей Savage3D по текстурной компрессии, и использует очень большой объем текстур — до 30МБ. Результаты получились любопытные.

CPU Pentium II 400МГц Quake2 mon2.dm2

Чипсет Quake II mon.dm2, fps
640x480 800x600 1024x768
3Dfx Voodoo2 12MB 27 25 -
3Dfx Voodoo2 12MB SLI 28 27 26
3Dfx Banshee 16MB 20 18 16
S3 Savage3D 8MB 65 58 43
Matrox G200 16MB 49 35 23
nVidia RIVA TNT 16MB 74 64 46

nVidia RIVA TNT вышла победителем, несмотря на сжатие текстур и домашнее приготовление теста специально для S3! Правда, к чести Savage надо сказать, что на менее мощных процессорах (266МГц) именно он был в лидерах. В любом случае, реализация AGP фирмой nVidia заслуживает самых лестных слов. Тоже самое можно сказать и о Matrox G200. А вот 3Dfx Banshee является AGP-видеокартой лишь по своему названию, и ее скорость почти не отличается от чисто PCI-вариантов Voodoo2, т. е. она даже ниже ввиду отсутствия мультитектурирования. И это может привести к серьезным разочарованиям в будущем году.

Рейтинг производительности 3D чипсетов.

Чтобы обобщить все вышесказанное: и таблицу "Частота CPU, требуемая для достижения максимальной производительности 3D-аксселератора (прогноз)", и последующие замечания, — я составил рейтинг, оценивающий чипсеты по 4 категориям с точки зрения производительности.

Чистая производительность (fillrate & throughput) — максимум того, что может этот чип в теории. Это реально достижимо лишь при хорошей оптимизации программы именно под этот чипсет.

Реализация AGP — это просто разъем или он работает?

Производительность: "Игры-98" — скорость на играх сегодняшнего дня. Относительно маленькие текстуры, умеренное использование мультитекстурирования, широкая оптимизация под Glide.

Производительность: "Игры-99" — скорость на играх следующего года. Размер текстур растет, использование мультитекстурирования и сжатия текстур увеличивается, доля API Glide снижается в пользу Direct3D и OpenGL.







Вместо заключения

Имея не очень богатый практический материал, я вынужден был делать субъективные оценки во многих рассматриваемых вопросах. Я мог ошибиться как в большую, так и в меньшую сторону. Но, надеюсь, мне удалось показать, какой сложной является задача оценки производительности 3D-ускорителей с учетом перспективы, и от сколь многих факторов она зависит.




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

Нашли ошибку на сайте? Выделите текст и нажмите Shift+Enter

Код для блога бета

Выделите HTML-код в поле, скопируйте его в буфер и вставьте в свой блог.