为什么 Windows 10 禁用 CPU 核心停车?

为什么 Windows 10 禁用 CPU 核心停车?

为什么 Windows 10 默认禁用核心停车功能?

在我看来,在大多数情况下,核心停放都是好的。尤其是考虑到 Turbo Boost 只有在一些核心停放时才会起作用。

另外为什么注册表设置隐藏得这么好?

必须取消隐藏并将其设置Attribute0

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

答案1

Windows 10 何时以及为何禁用核心停车?

微软于 2017 年在默认 Windows 10 电源计划中禁用了核心停车功能。

网站状态:

“如果您禁用 CPU 上的核心停放功能,您的计算机可能会有更快的基准测试。(游戏玩家和高级用户报告了更高的帧速率)。”

虽然微软选择为硬件性能提供更多权力,但它将自定义电源计划的选择权留给了供应商、服务器管理部门和超级用户。

“核心停车在处理器处于空闲状态且功耗极低的系统上最为有效。”(来源

微软还向服务器管理员指出:

当核心停放算法挑选要取消停放的核心时(假设工作负载强度增加),它可能不会总是挑选活动亲和子集(或子集)内的核心来取消停放,因此最终可能会取消停放实际上不会被利用的核心。(来源

尽管许多用户对核心停放的好处争论不休,但微软选择将核心停放的选择权留给供应商,因为他们可以制定自己的电源计划并随产品一起发货。借助 Turbo Boost Index 和 Frequency Scaling Index 等功能,处理器通常能够在禁用核心停放的情况下更灵敏地进行控制。

这里就是一个很好的例子,A​​MD 是一家供应商,2017 年其 Razon 产品创建了自定义功能,以最佳地利用其处理器。


核心停车基准示例

下面是在 NUC、Windows 10 Pro、Intel Core i5-8259U 上对电源计划进行基准测试的示例,主要用于办公室工作:图片是处理器评级,链接是电源计划的完整 PC 基准测试。


高性能电源计划(处理器评级) 高性能电源计划 基准链接
高性能电源计划,最低 50% 核心停车开启 具有核心停车功能的高性能电源计划 基准链接
平衡电源计划(处理器评级) 平衡电源计划 基准链接
平衡电源计划,最低 50% 核心停车开启 平衡电源计划 - 核心停车 基准链接


Windows 10 是否已禁用核心停车功能?

  • Windows 10 使用电源计划来设置处理器性能,这将导致核心停止或不停止,具体取决于电源方案设置的配置。

Note the below information assumes static core parking options not heterogeneous architecture. Please see further reading links for more info.


为什么核心停车注册设置被隐藏?

  • Microsoft 使用 powercfg 命令来控制这些设置。请参阅答案这里了解更多信息。
  • 要取消隐藏上述选项,请打开提升的 cmd 并运行:

    powercfg -attributes SUB_PROCESSOR CPMINCORES -ATTRIB_HIDE
    
  • 完成。无需编辑注册表。


什么是电源方案?

电源方案是控制计算机电源使用的设置的集合。您可以使用电源方案来降低单个设备或整个系统的功耗。

核心停车的 Microsoft 静态配置选项

您可以使用本节中记录的静态配置选项来调整核心停车引擎的行为。

  • CP最小核心数指定在任何给定时间可处于非暂停状态的逻辑处理器的最小百分比(就每个 NUMA 节点内系统上启用的所有逻辑处理器而言)。

  • CP最大核心数指定在任何给定时间可处于非暂停状态的逻辑处理器的最大百分比(就每个 NUMA 节点内的逻辑处理器而言)。

  • CP增加时间指定其他逻辑处理器从停止状态转换为取消停止状态之前必须经过的最短时间。该时间以处理器性能时间检查间隔数为单位指定。

  • CP减少时间指定其他逻辑处理器从非暂停状态转换为暂停状态之前必须经过的最短时间。该时间以处理器性能时间检查间隔数为单位指定。

  • CP并发指定判定节点并发性的阈值。

  • CP分销以百分比形式指定并发分布中使用的利用率,以选择要分配实用程序的逻辑处理器的数量。

  • CPHeadroom指定利用率值,如果未停放的处理器组中利用率最低的处理器利用率较高,则该值将导致核心停放引擎停放额外的逻辑处理器。这可以检测到并发性的增加。

  • CPLatencyHintUnpark指定检测到系统低延迟提示时取消暂停的核心的最小数量。

来源:Microsoft - 静态核心停车选项


功率分布

  • 您可以使用 Windows Provisioning 框架来配置处理器功率设置,如中所述本节

  • 处理器命名空间分为三组相同的电源处理器配置,称为电源配置文件。电源处理器引擎使用电源配置文件来调整各种系统用例的性能和停放算法。

Windows 10 支持以下配置文件:

  • 默认配置文件是大多数时间处于活动状态的配置集。
  • LowLatency 是在启动期间和应用程序启动时激活的配置文件。
  • LowPower 是在媒体播放场景的缓冲阶段激活的配置文件。
  • Constrained 是由 Windows 10 桌面版(家庭版、专业版、企业版和教育版)的电池保护程序功能激活的配置文件。

所有处理器电源管理设置

每个配置文件支持以下配置设置:

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

微软:源一号来源二

另请参阅旧命令性能提升模式性能提升策略


PowerCfg 命令行和 Windows 10 Power GUI

检索当前活动的电源方案,打开提升的命令提示符并输入:

    powercfg -getactivescheme

列出 GUID 和名称和电源方案(星号也显示选定的方案):

    powercfg /list 

查询计划

    powercfg -query GUIDhere

也可以查看别名和帮助(见这里了解更多信息)

    powercfg.exe -aliases

    powercfg -help

示例:将交流电模式下的 CPU 核心设置为最低 50%,将电池直流电模式下的 CPU 设置为 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 黑客攻击示例来源二


什么是核心停车?您应该如何调整它?

  • 请参阅上述链接和信息以了解所有可用的设置。

  • 简而言之,核心暂停可让您的处理器进入睡眠模式。核心暂停的主要目的是让计算机/笔记本电脑/设备仅在需要时使用处理器,从而节省能源。

微软首先在 Windows Server 2008 R2 中开始通过处理器电源管理 (PPM) 引擎和调度程序使用核心停车功能,根据电源计划设置和计划执行的任务动态设置核心数量。

PPM 引擎选择的线程的最小核心数。通常,没有安排任何线程的核心处于停放状态,当它们不处理中断、DPC 或其他严格关联的工作时,它们会进入非常低的功率状态。因此,剩余的核心负责剩余的工作负载。核心停放可以在使用率较低时提高能源效率,这就是 Windows 电源计划中通常设置它的原因。

要关闭核心停止,请使用以下命令将“处理器性能核心停止最小核心”参数设置为 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.

下节内容依据:

免费程序:

进一步阅读:

答案2

在多核处理器上,活动到核心的分配非常动态,并且这是一件好事,有助于 Turbo Boost

因此,核心停放的时间非常短,不足以让您察觉到任何特定核心保持停放状态。

通过尝试强制核心长期处于停顿状态,您会导致处理器内部加热不均匀。不要这样做!让调度程序将活动(从而将热量产生)均匀地分散到整个处理器中。

相关内容