Всем бывшим (и всё
ещё теперешним;) поклонникам магии 3DFX посвящается...
Почему и зачем.
Всегда меня волновал этот вопрос. Всегда с большим
скепсисом относился к многочисленным тогдашним тестам
3D. Уж как-то слишком часто все аксели то причёсывались
под одну гребёнку, то было явно видно заложенное конструкторами
преимущество одного над другим. И вот сейчас, спустя
уже даже многие годы, никак не успокоюсь - хочу докопаться
до правды и расставить все точки над "V";)
Знал и чувствовал тогда - есть частотозависимость.
Теперь могу реально это доказать. Постараюсь понять
результаты, объяснить их и сделать выводы. Весь будущий
материал имеет "совещательный" характер,
потому принимаются любые комментарии, дополнения,
вопросы и опровержения.
Примечание: не смотря на кажущуюся "древность"
темы и рассматриваемых ускорителей, из-за специфики
работы каждодневно сталкиваюсь с подобной проблемой
- частотозависимость и её влияние на выбор апгрейда
для древних машин в случае "крайне малобюджетных"
компьтеров. Потому все исследования имеют в первую
очередь ПРАКТИЧЕСКОЕ применение, во вторую - ТЕОРЕТИЧЕСКОЕ,
так как, видимо, с некоторыми "коэффициентами",
но могут быть перенесены и на современные ускорители.
Способ тестирования.
Имеется уникальная система, имя ей - i440BX Asus
P3B-F;). Уникальна она тем, что позволяет производить
замеры в очень широком "частотном диапазоне".
В "верхнем" диапазоне для снятия результатов
использовался Cel-1.1@1.65GHz, по всем тестам (и реально)
показывающий результаты "честной" двухгигагерцовой
системы, т.е., грубо говоря, аналог P4/512k-2.0GHz
и AthlonXP 2000+. В нижнем - P2-266, изменением коэффициента
которого получались значения 166/200/233, а при установке
его на 133MHz выключался L2-кэш для "эмуляции"
системы что-то типа iP133 - iP166MMX. Вот потому и
уникальна - от Pentium-133 до Pentium4-2GHz!!!
Итого, "постоянные" параметры системы:
MB - Asus P3B-F, chipset Intel 440BX
RAM - SDRAM Kingston ECC PC133 384Mb (128x3шт.),
2-2-2 на всех частотах, ECC отключалась
HDD - Fujitsu MPG-3204AH, 7200rpm, UDMA100@33
- без "внешнего" контроллера", крайне
быстрый, но не мёртвый;)
Audio - Vortex1, Diamond Multimedia, chipset
Aureal8820 (в тестах, естественно, отключался:)
Переменные компоненты:
Подопытный образец - 3DFX Voodoo2. Для теста
была взята когда-то самая крутая Diamond Monster 3D-II
12Mb. В качестве первичного видеоадаптера использовалась
Asus S3-64V2/DX-2Mb. Практически все тесты проводились
на стандартной частоте PCI 33MHz (только при 1.65GHz
PCI=38MHz). Частота чипа/памяти - 90MHz, установлено
максимальное качество изображения, Vsync был отключен.
Драйверы - стандартные, ver. 1.06. Для Q2 использовался
video mode - "3DFX OpenGL", для Q3
ставились WickedGL.
CPU. Использовались процессоры:
Pentium II 266MHz: 133/166/200/233/266MHz (FSB66MHz)
Celeron 300A: 300/450MHz (FSB66/100MHz)
Pentium II 350MHz: 350/466MHz (FSB100/133MHz)
Pentium III 667EB: 500/667MHz (FSB100/133MHz)
Celeron 800: 800/1066MHz (FSB100/133MHz)
Celeron 1.1A: 1.1/1.47/1.65GHz (FSB100/133/150MHz)
Все тесты производились после "чистой"
установки Windows98SE (с помощью крайне удобной утилитки
UB).
Тесты - Quake2.
Старенькое, но вечно живое. Используется как пример
того, для чего, собственно, и делался в то время этот
ускоритель - игр класса Quake2/NeedForSpeed3
Характерный изломы графика - из-за разных частот
шины процессоров. Если же мы привяжемся не к частоте
процессора, а его показателям в софтварном режиме
640х480, где и будет наиболее точно отражена реальная
производительность процессора, то получим просто идеальный
график:
Что же мы из него можем почерпнуть? Самое главное
- после определённой "мощности" CPU, производительность
3D "упирается" только в видеокарту, а потому
больше не растёт. Достаточно интересно (до конца мне
непонятно - буду признателен за объяснение и/или гипотезы),
что "насыщаемость" одинакова и для 640х480
и для 800х600 разрешений. "Насыщаемость"
наступает относительно рано - разогнанного Cel-300A@450MHz
хватает уже выше крыши. А если учесть, что в последнем
рисунке наклон кривой меньше 45 градусов обозначает,
что "софтварный FPS" растёт быстрей "тридэшного",
то эту точку перегиба можно совершенно справедливо
считать конечным "максимумом" карточки (для
очень старых, "додиректиксных" игр, т.е.
игр времён влавствования OpenGL/Glide). Как видно
эта точка находится где-то в районе 20FPS_soft, т.е.
процессора в районе P2-350MHz хватает, чтоб полностью
загрузить карточку (для очень старых игр) и дальнейшее
наращивание мощности даёт совершенно неадекватный
прирост.
Идём дальше - дотретьеквакные игрушки ("доутэшные";),
для отражения производительности в них идеально подходит
3DMark-1999. Стоит особо остановится на этом месте.
Для того, чтоб получить какие-либо зависимости, чтоб
из бесконечного многообразия способов протестить карточку
выбрать тот, с помощью которого можно было бы вообще
сделать какие-либо выводы, да ещё, чтоб эти выводы
были с максимальной претензией на объективность -
было проделано просто гигантская куча тестов. И получился
банальный, но ВЫВОД: самый лучший тест - 3DMark.
Не скрою, сам до этого (многочисленного тестирования)
относился к нему, мягко говоря, с недоверием, с сильными
подозрениями на "попугайность". Однако был
просто в шоке, когда в отличие от всех других
всевозможных игр/бенчмарков и их совокупностей и т.п.,
результаты 3DMark всегда показывали ясную
и чёткую зависимость, в крайнем случае
тенденцию.
Чтоб исключить влияние на результат типа процессора
(его размер кэша, FSB и т.п.), чтоб, так сказать,
измерять не конкретной частотой/процессором, а абстрактной
мощностью процессора, поступим как и всё гениальное
просто - будем строить зависимости в его же (3DMark-а)
системе координат, т.е. по оси X будем откладывать
не частоту, а то количество пунктов, которым оценивает
3DMark процессор (а в оценку как раз и войдут - и
объём кэша и FSB и т.п.). Именно это, думаю, и было
всегда камнем преткновения всех обзоров/тестирований
и, соответственно, недоверия к ним читателей, которые
получали на своих системах часто совершенно другие
результаты на "той же" частоте. Вот, например,
в нашем случае, как выглядит не самый "плохой"
график зависимости 3DMark-99:
Видны совершенно "неправильные" провалы
- частота растёт, а производительность падает. Как
же можно претендовать на объективность каких-то выводов,
ежели сразу видно, что на вид графика принципиально
влияет тип процессора, а не только характеристики
карточки. Конечно, теоретически можно было бы запастись
кучей однотипных процессоров (одинаковый тип/кэш/FSB),
однако это невозможно по той простой причине, что
так не бывает - одно и то же ядро использавалось лишь
в определённом "диапазоне частот" (например,
те же P2 Deshutes были ведь максимум до 450MHz, а
на одинаковой шине, так вообще только совсем в небольшом
диапазоне), в то время, что нас как раз интересуют
именно "широкодипазонные" результаты (кроме
того, что это технически сложно).
Теперь, чтоб "сгладить" последствия снятия
результатов при разных шинах-кэшах-и_т.п. воспользуемся
в качестве оси Х производительностью CPU3DMark:
График, как и предыдущем случае с Q2, "стал
похож на настоящий". Правда, явно видимый перелом
- следствие того, что за наличие инструкций SSE в
коппермайнах 3DMark накидывет процессору аж три тысячи
пунктов. Однако, во-первых, это отражает те преимуществадля
3D, что даёт наличие SSE-инструкций, а, во-вторых,
даже в таком случае не меняет главное - район "точки
перегиба" ~ 5000 CPU-3DMark-ов, что соответсвует
первым воплощениям Coppermine (т.е. в зависимости
от типа процессора - 500-700MHz). При чём, опять же,
здесь как и в случае с Q2, "насыщаемость"
наступает одинаково и для разрешения 640х480 и для
разрешения 800х600.
Какие первые выводы можно сделать из этого графика?
Во-первых, показатели в разных разрешениях до ~300MHz
не отличаются, из чего можно сделать вывод, что тут
ограничением является лишь процессор. И как
следствие из этого вывода - для чтоб "грузануть"
Voodoo2, процессор должен быть >300MHz.
Во-вторых, наличие SSE не даёт заметной отдачи в
старых игрушках (которые "представляет"
3DMark-99) - в отличие от не самых старых (см. дальше).
Именно из-за этого получается такой плоский перелом.
В-третьих, выше 500-700MHz производительность Voodoo2
либо практически не растёт, либо прирост совершенно
неадекватен увеличению мощности процессора из чего
можно сделать вывод, что для "старых" игр
с Voodoo2 использовать процессор выше ~700MHz нерационально
(хотя, конечно, для "старых" игр и такого
"большого проца, конечно, не надо).
Посмотрим, что представляет собой Voodoo2 в "третьеквакообразных"
("утэобразных") играх - написанных под DirectX7.
Их, конечно, правильней всего рассмотреть на примере
3DMark-2000 (теперь дополним картину ещё и показателями
работы Voodoo2 в SLI mode):
Надо пояснить, что за оси использовались. Дело в
том, что 3DMark-2000 (в отличие от 3DMark-99) оценивает
производительность CPU в 3D - как многие полагают
- некорректно (хотя правильней, наверное, говорить
о том, что просто он учитывает возможности конкретной
карточки в конкретном разрешении). Поэтому, чтоб увидеть
зависимость от вышеупомянутой абстрактной "мощности"
процессора, по оси X будем откладывать показания процессора
в 3DMark-99 (делённое на 5 - для большей удобности
и некоторых последующих вычислений). А по оси Y -
полученные "пункты" в тестах 3DMark-2000.
Как видно, поступив таким образом мы видим чёткие
и ясные зависимости.
Во-первых, показания в разных разрешения на этот
раз начинают отличаться где-то в районе 450MHz, а
это говорит о том, что движок "третьеквакообразных"
игр, понятно, "потяжелей" и использование
с ними процессора, меньше какого-нибудь Cel-300A@450
просто нерационально.
Во-вторых, на этот раз присутствие SSE даёт ощутимый
прирост в играх (того "класса"/времени).
Не смотря на больший в два раза кэш и большую FSB
P2-350@466 сильно уступил P3-500E (хотя абсолютная
разница всего 33MHz). И плавность графика (отсутсвие
перелома) это лишний раз подтверждает (преимущество
ядра коппермайн).
В-третьих, для одной вуды и разрешения 800х600 максимальным
можно будет считать где-то процессор "класса"
~P3-600MHz, для разрешения 640х480 ~700-800MHz, для
двух вуд (в SLI-mode) и разрешения 1024х768 ~ 600MHz
Чтоб разобраться с "теоретическим" максимальнм
процессорм для двух вуд и разрешений 640х480/800х600
продлим кривые зависимостей:
Получилось, чтоб "грузануть по полному"
две вудушки в 800х600 нужен будет где-то ~P4-2GHz,
а чтоб напрячь их в 640х480, так процессоров таких
пока-то и нет:) А когда появится, это будет нечто
в районе P4-5GHz(!) Вот такие древние карточки (точнее,
вот что значит 384-битная шина;)
Конечно, это лишь "теоретические" рассуждения
и никто не поставит себе P4-3GHz, чтоб играться на
вудушках в 640х480, да и, может, даже, это не влияние
реальных характеристик карточек, а особенноти работы
алгоритма 3DMark - всё равно, зависимость имеет место
и, нужно сказать, она достаточно логична. Потому,
хочется верить в правильность выбранной технологии,
ежели кто-то подтвердит или найдёт принципиальную
ошибку в способ получения данных - напишите.
*************************
Итого выводы: в процессе написания...
*************************
Статья пока в незаконченном виде из-за того, что
продолжаю проводить тесты. Кто хочет присоединиться
и помочь, прислав тесты своей системы - буду очень
признателен. Нужны следующие данные:
============
Файлы результатов в формате 3DMark (c расширением
3dp):
для 3DMark-99 - 16bit/trilinear
для 3DMark-2000 - 16-16bit/trilinear/CPU_Optimization
(т.е. D3D_Software в последнюю очередь) и 32-32bit/trilinear/CPU_Optimization
для 3DMark-2001SE - можно только 32bit/trilinear/CPU_Optimization
Дополнительно нужно указать частоту ядра/памяти карточки
(крайне желательны результаты также на "родных"
частотах), частоту AGP_PCI (крайне желательны результаты
также на "родных" частотах), установленные
драйвера. Качество изображения в драйверах - максимальное,
кроме Antialiasing-а (хотя можно и результаты с ним)
Видеокарточки - всевозможные, можно "сдобрить"
это показателями в Q2 и Q3 (demo four). В случае "развёрнутых"
тестов своей системы по указанной методике (по непоняткам/за_подробностями
- на мыло) - всё будет опубликовано на страницах сайта.
=============
Севко Роман, bios@rom.by, www.ROM.by.
|