kat
(kat)
2024 年11 月 6 日 18:36
1
我的 CPU 是 12600KF,之前一直没太在意大小核的事儿。最近重装系统,Win10 和 Win11 之间纠结了好一阵。听说 Win11 在大小核调度上更给力。但由于种种原因,最后我还是装上了 Win10 LTSC。以后可能直接跳过 Win11 直接升级 Win12,毕竟 Win11 差评也不少。
但大小核调度问题确实卡性能,所以还是得找个办法解决。先是试了 Process Lasso,它能指定线程用大核还是小核,但感觉不够完美,毕竟绑定了大核后,线程就只能在大核上跑了,不是真正的调度。
后来找到了「Intel 大小核调度器 」,这玩意儿能根据负载实时调整大小核的使用,感觉挺靠谱的。折腾了一番装好后,开始测试,测试内容是用 CapsWriterCli 从一个 8 分钟左右的视频提取文字。
安装调度器之前 :
可以看到,小核跑满了,大核呆若木鸡。
安装调度器之后 :
显然,安装这个工具之后,运行 CapsWriterCli,大核工作了,整个转换时间和用纯小核的时候比,有起飞的感觉。
作者展示的功耗,不作操作,只有几w,滚动网页功的时候依然能保持个位数。
但我这里不作操作确实只有几 W,滚动网页时会在 10W ~ 30W 之间。
无操作:
浏览器滚动网页
2 个赞
改一个电源计划设置就行了,把大核的park关掉,这类工具都是自己给自己加戏
kat
(kat)
2024 年11 月 7 日 05:25
4
你这手 Process Lasso 看了都得说声佩服,这是走极端的节奏
kat
(kat)
2024 年11 月 7 日 10:36
8
是不是可以这样理解,Park 就像是 CPU 的开关。我装的那个 CPU 调度器,实时根据负载调整这个开关,以控制 CPU 的状态。
你的观点是大核的 Park 可以完全关闭,让大核一直工作就可以了。
「Intel 大小核调度器」的作者则认为可以通过一些程序判断来动态控制 Park,并且付诸实践,写了一些判断规则,并且优化了很多个版本。
如果功耗差不多的话,你说的简单粗暴关掉 Park 是更加简单的方法。你有没有做过功耗对比呢?
「Intel 大小核调度器」的 CPU 占用率也不高,平常不到 1% ,用着其实也没啥负担。
kat
(kat)
2024 年11 月 7 日 10:42
9
之前即使用小核系统也是也很流畅的,日常使用感觉不到系统卡或者慢,所以这种基础体验没有差别。系统高负载比如用运行本地 AI 的时候,能看到明显的提升。
他这个程序所做的事情无非就是在以下注册表路径里修改键值:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\54533251-82be-4824-96c1-47b60b740d00
这样说够明白了吧
台式机的算法应该尽量用大核。大核用满了,再用小核。小核用满了,再用超线程。
用台式机就不要想着省功耗。电费才几个钱。
kat
(kat)
2024 年11 月 8 日 05:21
13
简单粗暴。
但按照你的逻辑台式机的 CPU 就没有必要生产大小核的版本
还是有必要的。
牙膏厂生产小核是因为它家的 ring 总线上面只能挂 10 个核心,没办法像农企的 if2 总线那样挂 256 个核心。这个地方差太多了。
所以牙膏厂的做法就是做 8 个大核,再拿 2 个大核的位置出来做小核。每个大核的晶体管可以做 4 个小核。用这种方法继续提升计算跑分。
牙膏厂这个想法是对的。还有另外一个原因是,其实现在台式机的 CPU 只是笔记本 CPU 的高功耗版。农企和牙膏厂对台式机 CPU 并不是很重视,出货量太小了。而笔记本是有必要使用小核节能的。主要按笔记本的进行设计,然后便宜丢个台式机的版本出来当打广告了。
以前农企的推土机其实就是全小核架构,但当时晶体管比较少,所以每个模块是两个核心。当年,牙膏厂的全大核还在 i3 双核的时候,农企同价格基本上能给到六核、八核,也是同样的原理。但纯小核性能太烂。而且当时农企的小核还共享浮点运算,又带有超线程那种不能调度到相邻两个核心的问题。现在的 Linux 一般就会把当年农企的 CPU 设置成超线程 CPU,用超线程的方案来调度就是这个意思。
小核还有个大问题,你们平时是看不出来的。就是它的计算速度实在“太快了”,以至于内存带宽跟不上。当年的农企推土机也是这样,直到最后一代的挖掘机才使用 DDR4 解决了问题。牙膏厂的小核也是同样问题。内存带宽变得非常紧张。顺便说一下,我现在手头就有一块 athlon x4 970 的 CPU,居然还挺好用的。
台式机,在我看来,大小核根本没必要。如果需要性能,直接上 16 核的 CPU 不香么。干嘛要花差不多价格去买那个 8+8 核 24 线程的破烂货。既不需要省电,也不怎么省钱。操作系统调度实在麻烦。甚至我 ryzen 买回来先把超线程给关了。现在某些操作系统调度超线程还是经常出问题优先调到超线程上去。
kat
(kat)
2024 年11 月 8 日 06:42
15
这么看来,由于 Intel 的 Ring 总线限制,大核心最多只能到 10 个。用大核心换一些小核心,这样能增加核心总数,可以更好地处理多线程任务,对提升性能是有帮助的。
这个调度一直在更新,最新的3.21版我用了,12代提升相当大