Добавить в корзинуПозвонить
Найти в Дзене
Техногид

Почему много ядер в процессоре не дают больше FPS в играх

Представьте картину — вы собираете игровой компьютер, открываете конфигуратор DNS или заходите на Avito в поисках комплектующих. Перед вами два процессора. Один несет в себе скромные шесть ядер, а второй манит красивой коробкой с надписью про шестнадцать ядер. Рука сама тянется к варианту помощнее, ведь логика подсказывает, что больше ядер гарантирует высокую скорость. Однако на практике в условной Counter-Strike 2 или требовательном Мире Танков бюджетный шестиядерник внезапно выдает такую же плавную картинку, а иногда и обгоняет своего дорогого собрата. В этот момент покупатель чувствует досаду. Деньги потрачены, а половина кремниевого чипа просто простаивает, пока игра пытается выжать максимум из пары потоков. Это не заговор производителей и не лень разработчиков, а суровая математика и особенности работы игровых движков. Чтобы понять суть проблемы, нужно сравнить игру с другими тяжелыми задачами. Возьмем рендеринг трехмерной сцены или кодирование видео. Там все просто — картинку мож
Оглавление

Представьте картину — вы собираете игровой компьютер, открываете конфигуратор DNS или заходите на Avito в поисках комплектующих. Перед вами два процессора. Один несет в себе скромные шесть ядер, а второй манит красивой коробкой с надписью про шестнадцать ядер. Рука сама тянется к варианту помощнее, ведь логика подсказывает, что больше ядер гарантирует высокую скорость.

Однако на практике в условной Counter-Strike 2 или требовательном Мире Танков бюджетный шестиядерник внезапно выдает такую же плавную картинку, а иногда и обгоняет своего дорогого собрата.

В этот момент покупатель чувствует досаду. Деньги потрачены, а половина кремниевого чипа просто простаивает, пока игра пытается выжать максимум из пары потоков. Это не заговор производителей и не лень разработчиков, а суровая математика и особенности работы игровых движков.

Почему игры — это не рендеринг видео

Чтобы понять суть проблемы, нужно сравнить игру с другими тяжелыми задачами. Возьмем рендеринг трехмерной сцены или кодирование видео. Там все просто — картинку можно разрезать на сотни мелких кусочков и отдать каждый отдельному ядру. Одно ядро считает верхний левый угол, другое — правый нижний. Они никак не зависят друг от друга. Чем больше ядер, тем быстрее завершится работа.

В играх этот фокус не проходит. Игровой процесс — это непрерывная цепь событий, где каждое следующее действие зависит от предыдущего.

— Физический движок должен рассчитать падение осколков гранаты
— Искусственный интеллект врага должен решить, куда побежать от взрыва
— Сетевой код должен отправить эти данные на сервер
— Видеокарта должна получить инструкции для отрисовки кадра

Все это происходит в реальном времени, здесь и сейчас. Искусственный интеллект не может решить, куда побежит враг, пока физика не обсчитает взрыв гранаты. Возникает строгая последовательность, которую невозможно разделить между разными ядрами. Одно ядро сидит и ждет, пока другое закончит свою часть работы. В программировании это называется законом Амдала — ускорение программы ограничено ее последовательной частью, сколько бы ядер вы туда ни добавили.

Проблема главного повара

Большинство современных игровых движков спроектированы так, что у них есть один главный поток. Его часто называют основным или рендер-потоком. Он собирает данные от всех остальных подсистем — физики, звука, ввода с мышки — и формирует команды для видеокарты.

Этот главный поток крутится на одном-единственном ядре. Если это ядро не справляется, игра начинает тормозить, даже если остальные пятнадцать ядер вашего монструозного процессора абсолютно свободны.

Получается ситуация, когда на кухне ресторана работает один шеф-повар и пятнадцать помощников. Шеф физически не успевает отдавать заказы клиентам, а помощники стоят без дела, потому что им никто не нарезал задачи. Именно поэтому для игр критически важна производительность на одно ядро, а не их общее количество. Высокая частота и обновленная архитектура отдельного ядра всегда будут в приоритете над многоядерным «зоопарком».

Ловушка маркетологов — производительные и энергоэффективные ядра

Ситуация усложнилась с приходом гибридных процессоров от Intel, таких как современные чипы Core Ultra 5 245K или Core Ultra 7 265K. На коробке может быть гордо указано двадцать ядер. Неискушенный геймер ожидает невероятной мощи, но дьявол кроется в деталях.

Из этих двадцати ядер только восемь являются производительными P-ядрами. Остальные двенадцать — это энергоэффективные E-ядра. Они предназначены для фоновых задач вроде мессенджеров, браузера или записи стрима. В самой игре эти маленькие ядра практически не помогают, а иногда даже мешают, если операционная система по ошибке отправляет важный поток расчетов на слабое ядро.

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

Скрытый враг внутри процессора — задержки и кэш

Есть еще одна неочевидная деталь, которая делает многоядерные процессоры менее эффективными в играх. Речь идет о внутренней архитектуре чипов.

Когда ядер становится слишком много, производители физически не могут разместить их на одном маленьком кусочке кремния. Они начинают делить процессор на отдельные группы ядер — чиплеты. Например, у чипов AMD Ryzen 9 9900X3D или 9950X3D внутри находятся два отдельных кристалла с ядрами.

Когда ядро из первой группы хочет «поговорить» с ядром из второй группы, им приходится отправлять данные через специальную шину на материнской плате. По меркам микромира это гигантские расстояния. Возникают задержки, которые программисты называют latency.

Играм жизненно необходим быстрый доступ к оперативной памяти и кэшу процессора. Если данные приходится гонять между разными кристаллами, FPS начинает проседать, а в графике времени кадра появляются неприятные микрофризы. Монолитные восьмиядерники вроде Ryzen 7 9800X3D или обновленного Ryzen 7 9850X3D часто оказываются идеальным выбором. В них все восемь ядер находятся на одном кристалле и делят общий быстрый кэш третьего уровня, поэтому задержки сводятся к нулю.

Как помочь системе распределить нагрузку

Иногда планировщик Windows теряется в обилии разнородных ядер. Особенно часто это происходит на процессорах с несколькими кристаллами, где только один имеет быструю кэш-память. Чтобы избежать микрофризов и заставить компьютер работать правильно, достаточно выполнить простые действия.

— Откройте настройки операционной системы и включите Игровой режим. Эта функция заставляет Windows отдавать приоритет запущенной игре и парковать фоновые задачи на медленных ядрах.
— Установите актуальные драйверы чипсета от производителя материнской платы. Они содержат специальные инструкции для планировщика задач, которые помогают правильно распределять потоки данных между разными типами ядер.

Какое количество ядер выбрать для сборки

Если отбросить рекламные обещания и посмотреть на реальные тесты, оптимальный выбор выглядит следующим образом.

Шесть ядер — разумный минимум. Процессоры вроде Ryzen 5 9600X или Core Ultra 5 245K отлично справляются с играми уровня Cyberpunk 2077 или свежими шутерами, не ограничивая видеокарту среднего класса.

Восемь ядер — золотой стандарт. Это идеальный вариант для долгой службы компьютера без апгрейда. Поскольку современные консоли работают на восьмиядерных чипах, разработчики изначально оптимизируют свои проекты под восемь полноценных потоков. Тот же Ryzen 7 9800X3D на сегодняшний день считается лучшим игровым решением на рынке.

Больше восьми ядер — покупка для совмещения работы и хобби. Такие процессоры нужны тем, кто параллельно с играми занимается тяжелым монтажом видео, компиляцией кода или 3D-моделированием. Для чистого гейминга переплата за двенадцать или шестнадцать ядер не принесет никакой пользы.

При выборе процессора для игр лучше смотреть на тесты однопоточной производительности и объем кэш-памяти третьего уровня. Огромный кэш дает играм гораздо больше пользы, чем еще один десяток медленных ядер.