Домой Гайды Железо и ПК Как Windows выбирает ядра процессора для игр и почему не стоит вмешиваться...

Как Windows выбирает ядра процессора для игр и почему не стоит вмешиваться в этот процесс

Современные процессоры передают Windows данные о самых производительных ядрах. Разбираемся, как работает диспетчер задач и стоит ли вручную назначать ядра для игр.

6
0

Прошли те времена, когда центральные процессоры состояли из абсолютно идентичных ядер, и современная операционная система Windows знает об этом лучше большинства пользователей. Процессор способен сообщать ОС, какие именно его ядра способны достигать наивысшей производительности. Однако во время запуска игры порой может показаться, что Windows полностью проигнорировала эти рекомендации. Это особенно интересно, когда вы стремитесь выжать каждый кадр в секунду или улучшить показатели редких и очень важных событий, известных как 1% low.

материнская плата и процессор персонального компьютера
Современные процессоры передают операционной системе данные о производительности своих ядер. Источник: XDA Developers

Разумеется, как и в случае с любым другим компьютерным железом, ситуация редко бывает простой. Большее количество ядер далеко не всегда автоматически означает более высокую производительность. Диспетчер задач постоянно решает, какие именно потоки процессора заслуживают определенные ядра, и эти решения могут иметь вполне измеримые последствия. Главная задача заключается в том, чтобы понять, когда именно Windows принимает правильное решение, когда ошибается и способно ли ручное вмешательство заставить игры работать быстрее, плавнее и стабильнее.

Как процессор ранжирует собственное железо

Современные чипы строятся не из одинаковых ядер. Микроскопические производственные отличия приводят к тому, что одни элементы способны развивать более высокие тактовые частоты по сравнению с другими. Компания AMD передает эту внутреннюю иерархию с помощью технологии Collaborative Processor Performance Control, или CPPC. Проще говоря, процессоры прекрасно знают, кому из их ядер посчастливилось выиграть кремниевую лотерею. Именно микропрограмма передает информацию CPPC операционной системе через интерфейс ACPI.

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

ядра процессора для игр — иллюстрация 2 к материалу
ядра процессора для игр — иллюстрация к публикации. Источник: XDA Developers

Тем не менее, в конечном счете функция CPPC остается лишь рекомендацией, а не жестким бронированием. Windows прекрасно осведомлена о приоритетных ядрах, но ей все равно приходится одновременно балансировать между температурами, энергопотреблением, фоновыми нагрузками и прочими процессами на ПК. И то, как именно ОС распоряжается полученными данными, представляет наибольший интерес.

ядра процессора для игр — иллюстрация 3 к материалу
ядра процессора для игр — иллюстрация к публикации. Источник: XDA Developers

Особенности планировщика задач в Windows

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

ядра процессора для игр — иллюстрация 4 к материалу
ядра процессора для игр — иллюстрация к публикации. Источник: XDA Developers

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

ядра процессора для игр — иллюстрация 5 к материалу
ядра процессора для игр — иллюстрация к публикации. Источник: XDA Developers

На чипах с одним кристаллом Core Complex Die (CCD) неоптимальный выбор Windows во время игровой нагрузки не является катастрофическим. Существует и другая сложность: игровые нагрузки не слишком вежливы по отношению к планировщиму. В игре один поток может выполнять львиную долю работы, в то время как десятки мелких потоков обслуживают все остальное. Windows должна решать, куда направить каждый из них в условиях постоянно меняющейся нагрузки. Из-за этого система может перенести важный игровой поток с приоритетного ядра на другое, которое в конкретный момент времени кажется планировщику более подходящим.

ядра процессора для игр — иллюстрация 6 к материалу
ядра процессора для игр — иллюстрация к публикации. Источник: XDA Developers

Разумеется, всё зависит и от используемого железа. На однокристальных процессорах вроде Ryzen 5 7600X подобные компромиссы обычно проходят незаметно. Однако на двухкристальных чипах семейства X3D ошибка может обойтись дороже, так как Windows рискует выбрать не просто неверное ядро, а ошибочный кристалл целиком. Подобные промахи планировщика сильнее всего бразят по времени кадров в играх.

ядра процессора для игр — иллюстрация 7 к материалу
ядра процессора для игр — иллюстрация к публикации. Источник: XDA Developers

Стоит ли вмешиваться в работу планировщика вручную

Главное правило здесь заключается в том, что большинству пользователей не стоит самостоятельно привязывать игры к определенным ядрам только потому, что мониторинг показывает активность ОС на непредусмотренных элементах. В большинстве случаев автоматический алгоритм работает именно так, как было задумано. Для обеспечения максимальной стабильности необходимо лишь вовремя обновлять BIOS и драйверы чипсета, а также правильно настроить игровой режим Windows Game Mode.

ядра процессора для игр — иллюстрация 8 к материалу
ядра процессора для игр — иллюстрация к публикации. Источник: XDA Developers

Ручное вмешательство и принудительное распределение affinity действительно имеют право на жизнь, но лишь в узкоспециализированных сценариях. К ним можно прибегнуть, когда автоматическое определение пропускает конкретный процесс или когда двухкристальный процессор упорно ошибается с распределением. Подобные сбои носят локальный характер и зависят от конкретных игр, поскольку некоторые проекты могут некорректно задействовать чиплеты. Планировщик в современных чипах X3D достаточно доработан, чтобы о нем не беспокоиться за исключением редких исключений.

ядра процессора для игр — иллюстрация 9 к материалу
ядра процессора для игр — иллюстрация к публикации. Источник: XDA Developers

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

ядра процессора для игр — иллюстрация 10 к материалу
ядра процессора для игр — иллюстрация к публикации. Источник: XDA Developers

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

ядра процессора для игр — иллюстрация 11 к материалу
ядра процессора для игр — иллюстрация к публикации. Источник: XDA Developers

Особенности флагманских процессоров AMD

Ярким примером современного высокопроизводительного решения выступает модель AMD Ryzen 9 9950X3D. Этот флагманский процессор базируется на архитектуре Zen 5 и включает в себя 16 вычислительных ядер и 32 потока. Одной из его ключевых особенностей является наличие 144 МБ кэш-памяти благодаря технологии 3D V-Cache второго поколения от компании AMD.

ядра процессора для игр — иллюстрация 12 к материалу
ядра процессора для игр — иллюстрация к публикации. Источник: XDA Developers

Может возникнуть соблазн рассматривать каждое необъяснимое падение частоты кадров как повод открыть дополнительную утилиту и начать вручную ковыряться в настройках BIOS, распределяя ядра по собственному усмотрению. Тем не менее, если ваша система работает в штатном режиме, от попыток заменить диспетчер задач, обладающий гораздо большим объемом данных о нагрузках, будет мало пользы. Самое быстрое ядро приносит реальную пользу лишь тогда, когда все остальные компоненты системы способны эффективно с ним взаимодействовать. Единичные спорные решения со стороны Windows вовсе не означают, что пользователю следует самостоятельно назначать себя главным системным планировщиком.

ядра процессора для игр — иллюстрация 13 к материалу
ядра процессора для игр — иллюстрация к публикации. Источник: XDA Developers