Вооружившись всеми «игровыми» новинками, мы собрали в лаборатории шикарный тестовый стенд, где на практике проверили, к чему же, в конце концов, привела волна анонсов «железа» на практике. Для того чтобы можно было оценить выгоду на текущий момент от задействования второго ядра и обеспечить более объективные показатели сравнения видеокарт, мы слегка разогнали наш FX60 до тактовой частоты 2,8 ГГц и основные тесты проводили на нем, используя FX57 в качестве «референсного» одноядерного образца. В качестве драйверов мы взяли самые последние стабильные сборки nVidia Forceware 8x.xx и ATI Catalyst 6.x; причем для них обоих производители заявили об «оптимизациях под двухъядерные процессоры». Более подробная конфигурация стенда и полученные результаты, как обычно, расписаны во врезках.
Тестовая система
Процессор: AMD Athlon 64 FX-60 @ 2,80ГГц (Dual core CPU),
AMD Athlon 64 FX-57 @ 2,80 ГГц (Single core CPU)
Материнская плата: MSI K8N SLI (nForce 4 SLI)
Оперативная память: 2х512 Мбайт DDR 400 Corsair 2-2-2-5
Блок питания: OCZ 520W
ОС и драйверы
Windows XP Professional SP2; nVidia nForce4 Platform Driver 6.39; DirectX 9.0c End User Runtime; Catalyst 6.1 и ForceWare 81.98
В итоге получилась довольно интересная картинка.
Во-первых, «оптимизации под двухъядерность» действительно принесли в ряде приложений весьма ощутимые плоды, выразившиеся примерно в 10—15-процентном приросте производительности в 3Dmark 2006 и Far Cry. Причем если с 3Dmark ситуация не вполне понятна (возможно, разработчики Futuremark приложили здесь свою руку), то с Far Cry — однозначна: эта игра многопоточность до сих пор не поддерживает, и существенный прирост производительности при переходе к двухъядерным процессорам в ней — это в чистом виде эффект новых драйверов. nVidia каких-либо комментариев по поводу своих «оптимизаций», к сожалению, не дает (и, что еще хуже, пользователи в некоторых ситуациях жалуются на нестабильную работу «оптимизированных» драйверов, вплоть до необходимости эти оптимизации через реестр отключать), а вот представители ATI охотно поясняют, что, по сути, основные их оптимизации сводятся к разнесению потоков видеодрайвера (обрабатывающего «сырые» данные, передаваемые ему через Direct3D— или OpenGL-интерфейсы, и отправляющего их на ускоритель) и потока игры по разным процессорам. Far Cry традиционно славен огромными объемами используемой в этой игре «геометрии», а потому, по видимости, их обработка действительно занимает настолько существенное время, что подобное «распараллеливание» дает ощутимый прирост. Однако в остальных случаях, как нетрудно видеть, от существующих «оптимизаций» ни вреда, ни толку, в общем-то, никакого.
Для некоторых игр, и, в частности, Quake 4 и Call of Duty 2, существуют специальные патчи, вносящие в эти игры «врожденную» поддержку многопоточности. Поскольку здесь речь заходит уже не о тривиальном «разделении» драйвера и игры по разным процессорам, а о более интеллектуальном распределении между процессорами различных подсистем одной игры, то и прирост производительности здесь стабильнее и выше — до 40% (!). Но здесь, к сожалению, следует упомянуть одно «но»: происходит это далеко не во всех игровых ситуациях и, к сожалению, наибольший прирост достигается на наиболее простых и потому «быстрых» игровых сценах, которые, в общем-то, ускорять и не обязательно. И объяснение этому эффекту довольно простое: основной «тормоз» в играх — это графический ускоритель, а до тех пор, пока 80% времени процессор ожидает, пока ускоритель выведет очередной кадр на экран, получить более чем 1/(1 — (1-80%) / 2) ~ 11% прироста производительности, увы, даже в идеальном случае невозможно. А чем проще сцена — тем меньше времени съедает видеокарта и тем больше прирост производительности. И, к сожалению, пока при разработке игр основной упор делается на «графику», эта ситуация к лучшему не изменится. К примеру, в российском «Периметре», многопоточность довольно эффективно используется для параллельной обработки повреждений и изменений игрового мира. Но сегодняшние стратегии и так не могут пожаловаться на недостаточную производительность машин игроков, а когда вы в последний раз видели шутер, где можно было бы соорудить не то что дырку в стене дома, а хотя бы воронку в земле от взрыва снаряда?