Платим блогерам
Редакция
Новости Hardware Sozi
Разработчики должны найти другой подход к CPU, но делать этого они, конечно же, не будут.

реклама

Чуть больше года назад компания AMD вывела на рынок свои процессоры Ryzen, впервые предложив массовому пользователю восемь вычислительных ядер и шестнадцать потоков. Позже компания Intel выпустила процессоры Coffee Lake, которые располагают шестью ядрами и двенадцатью потоками, что также было своего рода прорывом после стольких лет господства 4-ядерных моделей. Но, как известно, если многие рабочие приложения с лёгкостью масштабируются на большое число ядер, то с играми дела обстоят несколько хуже, и отнюдь не все из них способны использовать большое число ядер.

реклама

В рамках конференции GDC 2018 компания Intel совместно с игровыми студиями рассказала о перспективах использования большого числа ядер в играх. Как сообщают наши коллеги из ComputerBase, если до шести ядер в основном масштабируются хорошо, то в случае с восемью и более ядрами, распределение вычислений происходит намного хуже. Но так как рынок развивается в сторону увеличения числа ядер, и если верить слухам, то Intel в этом году также как и AMD выпустит в массовый сегмент 8-ядерные решения, разработчики игр должны последовать наметившемуся тренду.

Как рассказали создатели Total War: Warhammer 2 и Conqueror’s Blade, основное внимание в процессе разработки игр уделяется именно ограничениям, накладываемым видеокартами. Потому что производительность GPU растёт значительно быстрее, чем CPU, где в течение последних лет почти ничего не происходило. Поэтому процессоры должны были сделать шаг вперёд, что и произошло. Но если в некоторых областях задействовать большее число ядер просто, то в других имеются ограничения.

Главным узким местом в играх является рендеринг, потому как он должен происходить в строго определённой последовательности, из-за чего не всегда его можно разделить между потоками. Поэтому в играх намного проще задействовать так называемый основной поток для ключевых задач, а остальную работу отдать другим потокам. Но в какой-то момент при распределении вычислений вы попросту не сможете добиться большего с точки зрения производительности, а иногда большее распределение может даже привести к снижению производительности.

Программисты также объяснили, почему SMT или Hyper-Threading иногда могут привести к потерям производительности. Проблема в том, что разделение ядра на два потока предполагает разделение всех имеющихся ресурсов, даже тех, которые доступны в очень ограниченной степени, например, кэш-память первого уровня. Когда оба потока хотят получить доступ к одному и тому же маленькому кэшу, это может привести к увеличению времени доступа. То есть данные отправляются с задержкой. Но в случае, когда потоки заняты разными вещами, и один из них фокусируется на кэше, а второй – на ALU, получается добиться повышения производительности.

В конечном счёте, использование ресурсов процессора всегда будет зависеть от конкретной игры, и стоит ли для неё делать оптимизацию для большого числа ядер и потоков. Очевидно, что в таких играх как Total War, где предполагаются массовые баталии со множеством юнитов на больших картах, оптимизация под множество потоков более чем актуальна. В некоторой степени такой подход может быть реализован и в других жанрах, но с гораздо меньшим эффектом. Проще говоря, разработчикам в первую очередь приходится оптимизировать игры под GPU, и уже потом уделять внимание CPU. Так что, игр, использующих процессор лишь частично, всё ещё будет предостаточно. Ну или просто разработчикам нужно искать абсолютно новый подход.

Показать комментарии (183)

Популярные статьи

Сейчас обсуждают