代码之家  ›  专栏  ›  技术社区  ›  martinus

如何禁用动态频率缩放?

  •  3
  • martinus  · 技术社区  · 14 年前

    我想做一些微标号,试着把它们做好。不幸的是,动态频率缩放使得基准测试非常不可靠。

    是否有一种方法编程(C++、Windows)来确定是否启用了动态频率缩放?如果,这可以在程序中禁用吗?

    我试着在实际的基准测试之前使用一个100%CPU的预热阶段,但结果也不可靠。

    :即使在BIOS中禁用SpeedStep,cpu-z也显示频率在1995和2826 GHz之间变化

    3 回复  |  直到 14 年前
        1
  •  8
  •   Vantomex    14 年前

    通常,您需要执行以下步骤:

    • 呼叫 CallNtPowerInformation() 然后通过 信息水平 参数,设置 lpInputBuffer nInputBufferSize NULL ,然后设置 lpOutputBuffer SYSTEM_POWER_CAPABILITIES 结构和集合 结构的大小。在第一次通话之后, SYSTEM_POWER_CAPABILITIES 处理器转子 .

    • 轮齿突 ;它们表示支持的系统处理器限制的最小和最大级别,以百分比表示。如果两个成员的值都已为100%,这意味着当前已禁用CPU限制,因此不需要重新配置它。

    • 要禁用CPU限制,需要设置 轮齿突 100% . 为此,请致电 又过去了 系统功率能力 信息水平 lpInputBuffer 两个成员被设置为 100%

    以非编程方式,您还可以获取/设置窗口 使用Windows内置的命令行工具,也就是说, PowerCfg .

        2
  •  2
  •   Sebastian Graf    6 年前

    到目前为止,以上都不是 CallNtPowerInformation 选择对我有效。相关的 ProcessorThrottle 领域 SYSTEM_POWER_CAPABILITIES FALSE SYSTEM_POWER_POLICY 不起作用。

    https://www.geeks3d.com/20170213/how-to-disable-intel-turbo-boost-technology-on-a-notebook/#_24 概述在电源管理设置中提供选项的方法。

    使用ProcMon,我可以将其追溯到以下注册表操作:

    1. 阅读 ActivePowerScheme SZ 价值低于 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes
    2. 设置 ACSettingIndex 和/或 DCSettingIndex DWORD 在下面 Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes\<above active power plan GUID>\54533251-82be-4824-96c1-47b60b740d00\be337238-0d82-4146-a960-4f3749d470c7

    不幸的是,相关密钥归系统所有,这意味着您必须提示用户(必须具有管理员访问权限)更改密钥的权限,或者您必须使用 powercfg https://docs.microsoft.com/en-us/windows-server/administration/performance-tuning/hardware/power/power-performance-tuning#processor-performance-boost-mode ):

    powercfg -setacvalueindex scheme_current sub_processor PERFBOOSTMODE 0
    powercfg -setdcvalueindex scheme_current sub_processor PERFBOOSTMODE 0
    powercfg -setactive scheme_current
    
        3
  •  0
  •   VladV    14 年前

    在WindowsXP和更高版本中,CPU速度由电源策略管理。如果在Windows电源管理对话框中设置“最大性能”模式,它是否会关闭缩放功能?

    还有一些第三方工具- SpeedSwitchXP 例如。

    CallNtPowerInformation 功能。