Почему в Windows 10 отключена парковка ядра процессора?

Почему в Windows 10 отключена базовая парковка?

Мне кажется, что базовая парковка в большинстве случаев хороша. Особенно учитывая, что Turbo Boost не работает, пока некоторые ядра не припаркованы.

Кроме того, почему настройки реестра так хорошо скрыты?

Нужно показать и установить Attribute в 0 в:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\54533251-82be-4824-96c1-47b60b740d00\0cc5b647-c1df-4637-891a-dec35c318583

2 ответа

Windows 10 поставляется с отключенной базовой парковкой?

  • Windows 10 использует планы электропитания для установки производительности процессора, что приведет к парковке ядер или не зависит от конфигурации параметров схемы электропитания.
  • Пожалуйста, также проверьте настройки Bios C-State в разделе "Информация о процессоре" или верните Bios к настройкам по умолчанию, чтобы исключить любые противоречивые правила.

Note this article assumes static core parking options not heterogeneous architecture. Please see further reading links for more info.


Почему скрыта настройка реестра базовой парковки?

  • Просто потому, что это параметр управления питанием, Microsoft не намерена играть с ним рядового пользователя, кроме как через схемы питания. Вы можете увидеть это в строке: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\...

Что такое схема питания?

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

Параметры статической конфигурации Microsoft для базовой парковки

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

  • CPMinCores указывает минимальный процент логических процессоров (с точки зрения всех логических процессоров, которые включены в системе в каждом узле NUMA), которые могут быть переведены в состояние без парковки в любой момент времени.

  • CPMaxCores указывает максимальный процент логических процессоров (в терминах логических процессоров в каждом узле NUMA), которые могут находиться в незапаркованном состоянии в любой момент времени.

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

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

  • CPConcurrency определяет порог для определения параллелизма узла.

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

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

  • CPLatencyHintUnpark указывает минимальное количество непаркованных ядер при обнаружении подсказки системы с низкой задержкой.

Источник: Microsoft - Параметры статической парковки ядра


Профили мощности

  • Вы можете использовать платформу Windows Provisioning для настройки параметров питания процессора, описанных в этом разделе.

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

Windows 10 поддерживает следующие профили:

  • Профиль по умолчанию - это набор конфигурации, который активен большую часть времени.
  • LowLatency - это профиль, который активируется во время загрузки и во время запуска приложения.
  • LowPower - это профиль, который активируется на этапе буферизации сценариев воспроизведения мультимедиа.
  • Ограниченный - это профиль, активируемый функцией экономии заряда батареи в Windows 10 для настольных изданий (Home, Pro, Enterprise и Education).

Все настройки управления питанием процессора

Каждый профиль поддерживает следующие параметры конфигурации:

PowerCfg: CPMINCORES, CPMINCORES1
PowerCfg: CPMAXCORES, CPMAXCORES1
PowerCfg: LATENCYHINTUNPARK, LATENCYHINTUNPARK1
PowerCfg: PROCTHROTTLEMAX, PROCTHROTTLEMAX1
PowerCfg: PROCTHROTTLEMIN, PROCTHROTTLEMIN1
PowerCfg: PERFINCTHRESHOLD, PERFINCTHRESHOLD1
PowerCfg: PERFINCTIME, PERFINCTIME1
PowerCfg: PERFDECTHRESHOLD, PERFDECTHRESHOLD1
PowerCfg: PERFDECTIME, PERFDECTIME1
PowerCfg: LATENCYHINTPERF, LATENCYHINTPERF1
PowerCfg: PERFAUTONOMOUS
PowerCfg: PERFEPP

Microsoft: первый и второй источник

Также смотрите устаревшие команды PERFBOOSTMODE, PERFBOOSTPOL.


PowerCfg CommandLine и Windows 10 Power GUI

Получите текущую активную схему питания, откройте командную строку с повышенными правами и введите:

    powercfg -getactivescheme

Перечислите GUID и названия схем питания (звездочка также показывает выбранную схему):

    powercfg /list 

План запроса

    powercfg -query GUIDhere

Также, чтобы увидеть только псевдонимы и помочь

    powercfg.exe -aliases

    powercfg -help

Пример: установите для ядер ЦП минимум 50% на переменном токе и на 10% на постоянном токе батареи

powercfg /setACvalueindex scheme_current SUB_PROCESSOR CPMINCORES 50
powercfg /setDCvalueindex scheme_current SUB_PROCESSOR CPMINCORES 10
powercfg /setACvalueindex scheme_current SUB_PROCESSOR CPMINCORES1 50
powercfg /setDCvalueindex scheme_current SUB_PROCESSOR CPMINCORES1 10

Пример взлома PowerCfg и второй источник


Что такое базовая парковка и как ее отрегулировать?

  • Пожалуйста, смотрите выше ссылки и информацию для всех доступных настроек.

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

Microsoft, сначала в Windows Server 2008 R2, начала использовать парковку ядер с помощью механизма управления питанием процессора (PPM) и планировщика, чтобы динамически устанавливать количество ядер в зависимости от настроек плана электропитания и запланированных задач.

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

Чтобы отключить базовую парковку, установите для параметра Processor Performance Core Parking Minimum Cores Minimum Cores значение 100 процентов, используя следующие команды:

Powercfg -setacvalueindex scheme_current sub_processor CPMINCORES 100
Powercfg -setactive scheme_current

Чтобы уменьшить количество планируемых ядер до 50 процентов от максимального количества, установите для параметра "Максимальное число ядер для парковки ядра процессора" значение 50 следующим образом:

Powercfg -setacvalueindex scheme_current sub_processor CPMAXCORES 50
Powercfg -setactive scheme_current

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

Пример состояний процессора

C0 - Active mode, processor executing code.
C1 - AutoHALT processor IA core state (Pacakage C0 state).
C1E - AutoHALT processor IA core state with lowest freqency and voltage operating point (Pacakage C0 state).
C2 - All processor IA cores in C3 or deeper. Memory path open. Temporary state before Package C3 or deeper.
C3 - Processor IA execution cores in C3 or deeper, flush their L1 instruction cache, L1 data cache, and L2 cache to the LLC shared cache. LLC may be flushed. Clocks are shut off to each core.
C6 - Processor IA execution cores in this state save their architectural state before removing core voltage. BCLK is off.
C7 - Processor IA execution cores in this state behave similarly to the C6 state. If all execution cores request C7, LLC ways may be flushed until it is cleared. If the entire LLC is flushed, voltage will be removed from the LLC. 
C8 - C7 plus LLC should be flushed.

Как добавить дополнительные параметры парковки ядра и питания для процессоров в раздел "Дополнительные параметры питания":

Пример добавления GUID

Un-Hide коды:

powercfg -attributes SUB_PROCESSOR 8baa4a8a-14c6-4451-8e8b-14bdbd197537 -ATTRIB_HIDE
powercfg -attributes SUB_PROCESSOR 36687f9e-e3a5-4dbf-b1dc-15eb381c6863 -ATTRIB_HIDE
powercfg -attributes SUB_PROCESSOR 4e4450b3-6179-4e91-b8f1-5bb9938f81a1 -ATTRIB_HIDE
powercfg -attributes SUB_PROCESSOR cfeda3d0-7697-4566-a922-a9086cd49dfa -ATTRIB_HIDE
powercfg -attributes SUB_PROCESSOR 06cadf0e-64ed-448a-8927-ce7bf90eb35d -ATTRIB_HIDE
powercfg -attributes SUB_PROCESSOR 12a0ab44-fe28-4fa9-b3bd-4b64f44960a6 -ATTRIB_HIDE
powercfg -attributes SUB_PROCESSOR 40fbefc7-2e9d-4d25-a185-0cfd8574bac6 -ATTRIB_HIDE
powercfg -attributes SUB_PROCESSOR 4b92d758-5a24-4851-a470-815d78aee119 -ATTRIB_HIDE
powercfg -attributes SUB_PROCESSOR 7b224883-b3cc-4d79-819f-8374152cbe7c -ATTRIB_HIDE
powercfg -attributes SUB_PROCESSOR 943c8cb6-6f93-4227-ad87-e9a3feec08d1 -ATTRIB_HIDE
powercfg -attributes SUB_PROCESSOR 619b7505-003b-4e82-b7a6-4dd29c300971 -ATTRIB_HIDE

Повторно скрыть коды:

powercfg -attributes SUB_PROCESSOR 8baa4a8a-14c6-4451-8e8b-14bdbd197537 +ATTRIB_HIDE
powercfg -attributes SUB_PROCESSOR 36687f9e-e3a5-4dbf-b1dc-15eb381c6863 +ATTRIB_HIDE
powercfg -attributes SUB_PROCESSOR 4e4450b3-6179-4e91-b8f1-5bb9938f81a1 +ATTRIB_HIDE
powercfg -attributes SUB_PROCESSOR cfeda3d0-7697-4566-a922-a9086cd49dfa +ATTRIB_HIDE
powercfg -attributes SUB_PROCESSOR 06cadf0e-64ed-448a-8927-ce7bf90eb35d +ATTRIB_HIDE
powercfg -attributes SUB_PROCESSOR 12a0ab44-fe28-4fa9-b3bd-4b64f44960a6 +ATTRIB_HIDE
powercfg -attributes SUB_PROCESSOR 40fbefc7-2e9d-4d25-a185-0cfd8574bac6 +ATTRIB_HIDE
powercfg -attributes SUB_PROCESSOR 4b92d758-5a24-4851-a470-815d78aee119 +ATTRIB_HIDE
powercfg -attributes SUB_PROCESSOR 7b224883-b3cc-4d79-819f-8374152cbe7c +ATTRIB_HIDE
powercfg -attributes SUB_PROCESSOR 943c8cb6-6f93-4227-ad87-e9a3feec08d1 +ATTRIB_HIDE
powercfg -attributes SUB_PROCESSOR 619b7505-003b-4e82-b7a6-4dd29c300971 +ATTRIB_HIDE

Источник Первый и Второй Источник

Статья на основе:

Бесплатные программы:

Дальнейшее чтение:

На многоядерных процессорах распределение активности по ядрам очень динамично, и это хорошая вещь, которая помогает Turbo Boost.

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

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

Другие вопросы по тегам