装完系统第一件事,冲进电源设置把计划切成"高性能"——这个习惯在论坛上流传了十多年。对大多数机器来说,这么做确实不伤性能,只是多耗点电。但对一类特定的处理器,这个动作可能直接把游戏帧数按下去。
问题出在AMD的双CCD X3D芯片上,具体型号包括7900X3D、7950X3D、9900X3D、9950X3D。这几颗U的核心被分在两个小芯片上,只有其中一个带着堆叠的3D V-Cache,也就是让它们在游戏里格外能打的那层缓存。另一个小芯片频率更高,但L3缓存少得多。对多数游戏来说,理想状态是把所有线程都留在带缓存的那块die上,因为跨小芯片走Infinity Fabric通信会额外增加延迟。
处理器自己判断不了一个程序是不是游戏,所以AMD把这件事交给Windows。芯片组驱动借游戏栏(Game Bar)的游戏识别作为信号,把高频小芯片上的核心"停泊"(core parking)掉,核心一停泊,Windows就会把游戏调度到带3D V-Cache的那块die上。
电源计划正是在这一步插进来的。AMD建议双CCD处理器用户把系统保持在"平衡"计划上,理由很实在:习惯了高性能计划的用户反馈,核心停泊不会生效,直到他们切回平衡模式才恢复。停泊不生效,Windows就可能把游戏同时铺到两块小芯片上,而不是只用带额外缓存的那块。跨小芯片通信带来的额外延迟,足以造成明显的性能损失。
就算不谈X3D这个特例,高性能计划最初存在的理由也基本消失了。这个计划的标志性特征是:把处理器最低状态钉在100%、不让核心停泊、让Windows更快地拉高频率。这些设置在操作系统直接管理CPU频率、一次频率切换要花约30毫秒的年代确实重要,把频率一直顶高是个粗暴但有效的避坑办法。
但现代CPU不需要Windows帮忙托着频率了。英特尔随Skylake引入的Speed Shift把频率控制权交给CPU自己,切换时间压到大约1毫秒。AMD这边,CPPC2在2019年夏天登陆锐龙,官方说法是把升频时间从约30毫秒降到1到2毫秒。到了这个速度,电源计划已经没什么可修的了。游戏一旦跑起来,它用到的核心本来就在加速。高性能计划真正改变的是你不打游戏时的状态:CPU空载温度更高、功耗更大,风扇跟着转得更凶。
那高性能计划为什么还留着?因为有些硬件在平衡计划下确实会漏掉性能。英特尔Alder Lake这类混合架构处理器上,Windows要决定哪些活交给P核、哪些交给E核,电源计划会通过调度策略影响这个分配。开发者Alois Kraus发现,在Windows 10上,平衡计划的默认策略可能把低优先级任务推到E核上;高性能计划的策略偏向更快的核心,这对游戏是有意义的。
不过Kraus在同一项调查中发现,同样的效应在Windows 11上要轻微得多,原因大概是英特尔的Thread Director会提示哪些核心适合哪些线程。而且想要高性能计划的行为,也不一定非得选它:一些X3D用户复制了一份平衡计划再改成高性能的样子,核心停泊保持完好,跑分没有差别。这方面的报告并不一致——Hardware Busters发现通过旧版控制面板自定义计划,会让9950X3D上的核心停泊失效。稳妥起见,暂时还是留在平衡计划上。
把Windows电源计划设成高性能并不危险,但"设一次就不用管"这种一刀切的建议已经不适用了。对大多数CPU,它在性能上无害;对一部分CPU,它确实有害。手里是双CCD X3D芯片的,今天就去查一下电源计划。其他人切回平衡,游戏里大概率看不出区别,换来的是更凉、更安静的空载状态。
热门跟贴