Оптимизируй это
АрхивКомментарий дняКомпания nVidia уличена в обмане пользователей: ее последние графические чипы работают почти на четверть медленней, нежели можно судить по тестам. К сожалению, nVidia не одинока - главный конкурент, ATI, занимается тем же.
Скандал вокруг операционной системы Linux, раздутый компанией SCO Group, затмил события более мелкие. Между тем на конец прошлой недели пришлась другая скандальная история, посмотреть на которую стоит хотя бы уже по той причине, что она замечательно демонстрирует факт отсутствия у участников современного рынка информационных технологий каких бы то ни было устремлений кроме стремления урвать побольше: бизнес - игра без правил, это знает каждый, но когда дело касается лично тебя, становится как-то... неуютно. Впрочем, к делу: 22 мая компания Futuremark опубликовала отчёт, в котором, в частности, констатировала факт мошеннических действий известного производителя графических чипов nVidia по отношению к потребителям.
Futuremark - разработчик известнейшего теста графической производительности персональных компьютеров 3DMark. На результаты, выдаваемые этой программой, ссылаются и ориентируются едва ли не все испытатели, производители и пользователи компьютерной техники. Механизм работы 3DMark прост: программа изображает на экране трёхмерные графические объекты, пользуясь при этом установленными в системе драйверами, и одновременно замеряет скорость, с которой данная машина способна строить картины определённого уровня сложности. Собственно, здесь и зарыта собака: проведя анализ быстродействия компьютера с новыми драйверами от nVidia (Detonator FX и WHQL), специалисты Futuremark пришли к выводу о наличии в них специальных оптимизированных процедур, помогающих добиться более высоких показателей при тестировании. Причём речь не о мелочах, цена уловки (если верить Futuremark) - 24 процента сверх производительности драйверов и карт nVidia в реальных условиях.
Как это сделано? Программисты nVidia встроили в свои драйверы детектор, умеющий определять, что на компьютере запущен именно 3DMark. В случае положительного сигнала от детектора включается специальный алгоритм прорисовки изображения, обеспечивающий те самые двадцать с лишним выигрышных процентов. Отрыв в производительности столь велик, что сначала был замечен и определён как аномалия энтузиастами (ссылки на сообщения есть в вышеупомянутом отчёте), после чего за него взялась Futuremark, отыскавшая восемь "оптимизированных" участков. "Оптимизация" здесь не даром взята в кавычки - поскольку называть так обнаруженное нельзя. По той простой причине, что вместо тщательной подгонки кода драйверов под характерные для 3DMark процедуры, программисты nVidia использовали грубый приём повышения FPS за счёт снижения качества изображения. Контролёром картинки выступает человек, существо весьма несовершенное и неспособное самостоятельно определить наличие или отсутствие мелких элементов, а потому фокус, возможно, сошёл бы nVidia с рук, если бы компания не оказалась столь жадной.
Официальный комментарий самой nVidia, данный сетевому изданию Tom's Hardware, сводится к переложению вины на создателей 3DMark - которые, якобы, сознательно гонят волну на продукцию nVidia из-за её несравненно превосходных характеристик. К сожалению, это не так: помимо 3DMark, "скоростная аномалия" была замечена и в тесте от другого производителя (Beyond3D). Самое же грустное, что nVidia не одинока. Её основной конкурент, ATI Technologies, также уличена в оптимизации кода "под тест" - правда, в случае с ATI всё не так страшно: результаты, что выдаёт подвергнутый переработке код, идентичны тем, что выдавались бы без отсутствия оной, а выигрыш в производительности составил всего 1,9%. Отрыв невелик, так что ATI немедленно использовала это для игры на публику - заявив "об исключении честно оптимизированного кода из своих драйверов, дабы кто-нибудь не обвинил её в обмане".
Финал у всей этой истории счастливый - Futuremark подправила свой тест и теперь его измерения снова точны. Вот только вряд ли это действительно финал. Разного рода подгон результатов тестирования - идея, выбить которую из сознания производителей, наверное, не удастся никогда. Нынешний случай не первый (пару лет назад та же ATI использовала приём, который нынче применила nVidia, для улучшения показаний тестирования с Quake 3) и, надо полагать, не последний. В конце концов, сами производители от этого ничего не теряют - жертвой их бессовестной маркетинговой игры становимся мы.