«Лишние» ядра, или еще раз о ситуации с играми
- 10/08/2010
- 👁 92 просмотра
- 0
На прошлой неделе ребята с сайта Bit-tech
Прочитав список игр, я сразу понял – чем там кончится. И не ошибся: все подопытные показали, что больше двух ядер им, в общем-то, и не нужно. При включении третьего ядра иногда, конечно, можно заметить некоторый прирост, но от четвертого пятого и шестого проку точно никакого.
Что же, наши проиграли? Ни в коем случае! В комментариях к статье у авторов едко поинтересовались – а чего ж вы, черти, такую подборку странную сделали? Где в ней GTA4 или FarCry 2, которые с многоядерными процессорами ой как дружат? Почему запускали Battlefield: Bad Company 2 в режиме single, тогда как в multiplayer она как раз и начинает использовать четыре ядра в полный рост?
Конечно, большая доля правды в материале есть – даже новые игрушки порой выходят недоделанными и с правильными процессорами не дружат. Но, как говорится, есть нюанс. В конце своей статьи Bit-tech предупреждают: ситуация, когда двухъядерные процессоры конкурируют в играх с четырех- и шестиядерными долго не продлится. Уже сегодня умные разработчики дорабатывают движки на предмет многопоточности, и завтра четыре ядра станут разумным минимумом. Так что если уже купили двухъядерник — наслаждайтесь им, но если апгрейд еще только в планах – мы вас предупредили.
Меня позабавило, как выводы Bit-tech перевели некоторые отечественные ресурсы. Мол, снова доказано: четыре ядра – зло. Покупайте себе два ядра и все будет очень хорошо! Понятно, что бытие определяет сознание в том числе и у переводчиков, но так передергивать и тешить самолюбие не очень состоятельных читателей, наверное, не очень честно…
И еще одно. Читая описание DirectX 11 на сайте Microsoft, я натолкнулся на интересный фрагмент: «DirectX 11 предлагает множество улучшенных функций. Это средство обеспечивает повышенную эффективность работы, использует мощь современных многоядерных процессоров и предоставляет поддержку для передовых технологий создания теней и текстур, таких как тесселяция». Вот что! Мощь многоядерных процессоров!
Как известно, передача команд визуализации через Direct3D предполагает использование дополнительных вычислительных ресурсов CPU. Учитывая тенденцию увеличения числа ядер центрального процессора, вводится поддержка более продвинутой многопоточности, чтобы распределять эту работу между несколькими потоками, тем самым производя её более эффективно.
Direct3D 11 даёт возможность создавать дисплейные списки из нескольких потоков и выполнять их из главного потока визуализации. Кроме того, устройство, которое создаёт ресурсы, было вынесено из контекста, который передаёт команды визуализации. Это позволяет создавать ресурсы асинхронно. Отложенные контексты (Deferred Contexts) используются для создания дисплейных списков и прямой контекст (Immediate Context) для передачи команд визуализации на GPU, включая обработку дисплейных списков, созданных в отложенных контекстах.
В отличие от других возможностей, в Direct3D 11 многопоточная визуализация реализуется программно через драйвер. Соответствующие драйверы D3D10 (возможно, даже D3D9) позволяют выполнять многопоточную визуализацию гораздо эффективней, чем ранее. Определённый уровень многопоточности будет доступен даже без новых драйверов, однако пока неясно, какие ограничения будут в этом случае.
Казалось бы, DirectX 11 должен придти и поправить все сам, да? И ничего делать особенно не надо?
К сожалению, надо. В списке игр, выбранных Bit-tech, добрая половина поддерживает DirectX 11, а Colin McRae: Dirt 2 вообще первая игра, работающая с ним изначально. Так вот «само», как видим, не получается. Все равно без труда не обойтись.
Наверное, с этим стоит просто смириться. И засучить рукава.