Windows在不同平台上的小核优先调法
二川二水的资料室
2024年09月15日 14:52

实机测试使用12450h代表adl和rpl,但是桌面端的情况好像又有些不一样,其他平台使用模拟测试代表,包括模拟大小核,锐龙和骁龙,mtl和之后的平台的用户也可以看看。


adl和rpl:

处理器性能增强策略必须在60或以上,太低的话会无视其他设置优先大核,下面的描述都用这个设置;

生效的异类策略使用0/4都优先大核,策略4+高效处理器为纯小核,策略0比策略4更倾向于将负载分布到更多大核,但是策略4可以使用高效处理器的设置以实现前后台进程分离;

策略123均可以优先小核,同时需要配合并发阈值和空间阈值控制大核参与负载的积极程度,选择高性能处理器无法使用大核,高效处理器为纯小核;


其他平台的纯大核和纯小核调生效的异类策略就行了,但是看这个专栏的人应该会有更高的追求,所以下面介绍hetero increase/decrease threshold的用法:

生效的异类策略必须是策略4才能用这两个阈值;

处理器电源管理\第 1 类处理器电源效率处理器计数会提高的处理器性能级别提升阈值

reg add "HKLM\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\54533251-82be-4824-96c1-47b60b740d00\b000397d-9b0b-483d-98c9-692a6060cfbf\X" /v "SettingValue" /t REG_DWORD /d "HEX" /f

处理器电源管理\第 1 类处理器电源效率处理器计数会降低的处理器性能级别降低阈值

reg add "HKLM\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\54533251-82be-4824-96c1-47b60b740d00\f8861c27-95e7-475c-865b-13c0cb3f9d6b\X" /v "SettingValue" /t REG_DWORD /d "HEX" /f

X是一个编号,0-9会被PPKG使用,所以别用,10被我的通用模板用了,254是Windows 11增加的,255是Windows 10就有的,反正随便选一个数字就行了;

HEX是4个相对于小核利用率的阈值,前3个负责3个大核,最后一个负责第4个或更多的大核;

以官方文档里的10/10/60/70这个顺序为例,小核10%利用率启动2个大核,60%启动1个,70%启动剩下的,从右往左排好并转换为16进制:46 3C 0A 0A,再转换为十进制得到填入的数字:1178339850;

然后切换到新增加的设置:

powercfg /setacvalueindex scheme_current SUB_PROCESSOR HETEROINCREASETHRESHOLD X

powercfg /setacvalueindex scheme_current SUB_PROCESSOR HETERODECREASETHRESHOLD X

powercfg /setactive scheme_current

没有达到阈值的话,即使选了高性能处理器也不会使用大核,达到了才会使用异类线程调度策略的设置。