Проблемы тестирования: "читинг" и "оптимизации"
Любимая тема обсуждений сотрудников тестовых лабораторий на досуге - хроническая нехватка адекватного инструментария и быстрое вымывание старых тестов из оборота. С выходом R420 умерло еще парочка тестов из старого доброго запаса. Например, вот так выглядит тестирование ATI Radeon X800XT в DirectX7 тесте Comanche 4:
Производительность видеокарты хоть как-то видна только в разрешении 1920x1440 при самых агрессивных настройках качества. Все остальные цифры характеризуют только системный CPU и потолок самого движка игры.
Еще один бородатый тест - Village Mark (эффективность отсечения невидимых поверхностей) не понимает результатов свыше 200 кадров в секунду, а Radeon X800XT легко зашкаливает за эти 200-ти даже на разрешении 1600x1200.
Мы постоянно убеждаем разработчиков, что включение тестового инструментария в игру гарантирует хотя бы то, что игра будет обязательно оптимизирована в драйверах NVIDIA. Но самое важное - игра тут же получит массовую и совершенно "бесплатную" цитируемость на сотнях и тысячах интернет-ресурсах, которым как хлеб нужны новые тесты.
Официальное отношение компаний ATI и NVIDIA к проблеме тестирования видеокарт также различны - ATI призывает пользоваться FRAPS`ом в случае отсутствия в игре консоли или встроенного бенча, а для NVIDIA выход каждой новой игры с тестом - дополнительная головная боль, её приходится включать в список "подлежащих обязательной оптимизации". И то и другое - не вдохновляет. FRAPS хорош только в случае очень серьезной разницы в производительности карты, например, такой:
|
|
ATI Radeon 9800XT |
ATI Radeon X800XT |
А в случае сравнения примерно однозначных видеокарт, FRAPS совершенно не годится. Кто ж сможет совершенно одинаково прокатиться по трассе NFS:Underground? (В принципе это возможно, если выбрать Free и отсутствие трафика на трассе).
И самое болезненное - читинг и оптимизации от NVIDIA. Вот на этом придется остановиться подробней. Дело в том, что "читинг" и "оптимизации" это совершенно различные понятия. Так что же это такое, откуда ноги растут и в чем, собственно, проблема? Попытаемся объяснить как можно проще.
Архитектуры конвееров графических чипов ATI и NVIDIA, разумеется, различны. Если в двух словах - конвеер от NVIDIA длиннее и теоретически за один такт способен обработать (протолкнуть) больше данных, чем короткий конвеер от ATI. Но при одном обязательном условии - входные данные обязательно должны быть оптимизированы (упорядочены) под последовательную обработку данных именно этим конвеером. Одна ошибка и привет. Данные заворачиваются на начало, делается новая выборка и опять поступает на обработку. Полностью исключить холостые такты невозможно, но вполне можно и нужно уменьшить их процент. Достигается это двумя факторами - общим улучшением работы алгоритма предсказаний
ветвлений в компиляторе, либо прямым прописыванием в компиляторе для каждой конкретной игры - как же обрабатывать ее код оптимальным образом. Именно этот второй метод и называется "оптимизацией" и он вполне легален. Другое дело, что этот геморой дорого обходится NVIDIA. У них целый штат сотрудников (говорят, не менее 10-20 человек) получает немаленькую зарплату только за то, что днем и ночью анализирует чужой код (все новые игры), прекрасно держа в голове особенности работы своего компилятора. Это адская работа, требующая невероятной квалификации. Но они вынуждены это делать и будут делать это ВСЕГДА! Как бы и кто бы их не уговаривал прекратить свою деятельность. И тут NVIDIA абсолютно права.
Если все данные пролетают по конвееру нормально, без заворотов в начало и дополнительной выборки - то потенциально, NVIDIA должна серьезно выигрывать у конвееров ATI. Но только в теории. Так в жизни не бывает - это как кривые зубчики у шестеренок часов, изготовленных вручную в 17-м веке - вероятность полного сочленения, так же падает на порядок при увеличении радиуса сочленения.
В качестве иллюстрации, предлагаем читателям самим оценить вероятность благополучного исхода событий для левого и правого случая.
Все бесконечные новые версии драйвера Detonator/ForceWare как раз и включают в себя все новые и новые оптимизации НОВЫХ ИГР. |
Чтоб хоть как-то облегчить себе существование и был разработан язык Cg, но инструментарий от NVIDIA оказался таким замороченным и сложным, что разработчики в своем поголовном большинстве практически его не используют. А если и решаются его освоить, то необходима финансовая и технологическая поддержка от NVIDIA (маркетинговая программа "Вот как надо играть" :-)
А что же ATI? А ATI это делать нет нужды - компания пошла по другому пути. Они используют короткий конвеер, а за счет меньшего кол-ва транзисторов на кристалле смогли даже в R420 увеличить частоту работу чипа по сравнению с NV40 (525Mhz против 400). С одной стороны - короткий конвеер обрабатывает меньше данных за такт, но зато меньше пустых циклов, а еще и повышенная частота его работы по сравнению с конкурентом, да и на оптимизацию всего подряд собственными силами тратиться нет нужды.
Компиллятор ATI отличается высокой предсказуемостью результатов и стабильностью. Даже сейчас, на бета версии драйвера Catalyst 4,5 (для серии X800), ни разу не возникли какие-либо проблемы. Драйвер предсказуем в своей производительности и, в отличии от ForceWare, никогда не демонстрирует необъяснимых прибавок в производительности либо таких же странных провалов.
Терри Македон (Terry Makedon)
"Mr. Catalyst" - руководитель отдела
разработки драйвера Catalyst
Так что "оптимизация а-ля NVIDIA" - вынужденная мера компании и если ее не производить, то результат будет катастрофичен. В качестве типичного примера рекомендуем посмотреть результаты тестов в обзоре "3DMark2003 build 320 vs 340: Редкий момент истины?", когда Futuremark в момент наивысшего накала страстей блокировала все оптимизации NVIDIA для теста 3DMark2003.
Отчего это было сделано? И вот тут мы вплотную подошли к рассмотрению проблемы "читинга", которая, в отличии от "оптимизаций" уже не является легальным методом конкурентной борьбы.
У Futuremark есть специальная версия теста 3DMark2003, позволяющая производить облет карты и однажды, на одном из драйверов Detonator/ForceWare, была обнаружена пропажа целого куска карты в одном из тестов. В принципе, в тесте этого фрагмента карты не видно, но факт остается фактом. Futuremark не стал разбираться что к чему относится, а просто заблокировал единым махом все оптимизации и читы, легальные и не очень. Обе компании были в ярости. Futuremark дорожит своей репутацией и им совсем не хочется ее терять, и так их бедных полоскают почем зря....
Договоренности были достигнуты следующие: NVIDIA обязалась не переступать "критического порога" в продуктах Futuremark, а последние обязались не предавать гласности эту историю :-).
Если Вы заметили ошибку — выделите ее мышью и нажмите CTRL+ENTER.