rt ,最近想升级一下日用的代码机,在纠结是 12900 还是 7950x 。
Intel 平台不仅板子更便宜,还可以继续使用现有的 D4 内存,唯一的担心就是 Linux Kernel 对大小核的支持。

内核调度器是优先选择性能最强的核心,另外现在有 sched-ext 对 ebpf 的调度接口,有 不同的调度器 可以选择和配置。

不过我是 7950x 用户,「优先选择性能最强的核心」在 intel 大小核上实现的效果怎么样,有没有 bug, 我就不知道了

12700k 装了 manjaro 直接看不到小核了~

目前对大小核支持不太好

建议全大核 + ddr4

全大核 d4 是 5950x ?

可以选 12700 ,关闭 4 个小核

Linux 绑定核心方便,有需要的程序和服务直接启动脚本里面加核心绑定吧,多省事

用容器启动服务和软件也可以,容器能限制使用核心

目前哪怕和 intel 联调的 win 的大小核调度都还是灾难

调不好的,扔给贩子吧,
直接买 9700x 9900x 9950x

TLDR:正常用几乎不会有负面影响,暂时也不用指望有太智能的调度。建议使用 6.12 之后的内核,如果是最新的 cpu 平台建议 6.14 。

我简单凭印象解释一下关于 linux 调度的逻辑,这个是比较复杂的,可能有说的不对的地方,需要详细了解建议根据关键词去查询。

如果把任务调度理解成数学问题,逻辑一定是从完全公平( CFS )开始,之后一般化到根据需要加权获得有偏向的调度,比如 EAS/CAS 等等。具体实现方面,除了加权逻辑之外,还需要运行时参数,比如程序运行了多久,消耗多少能量,想好多少算力,这又是一个约束优化问题。

目前所有的调度都是 CFS 完全公平调度的扩展实现。调度过程是:先估算每个任务短期 cpu 占用(这个机制叫 PELT ),然后决定下一个调度任务(这个算法叫 EEVDF )。推荐 6.12 内核就是因为 6.12 完成了重大改动的合并。

与异构相关调度加权有 Energy Aware Scheduling 和 Capacity Aware Scheduling 。前者 EAS 是 arm 大小核诞生之后就有了,逐渐完善至今,多用于低功耗设备。后者相当于是前者的数学拓展,优化的目标不再是单一能耗比,是未来异构调度的核心。

在 CAS 逻辑中,CPU 硬件向系统汇报核心的拓扑、相对容量/性能以及负载、温度和频率这些运行时状态,然后 CAS 算法根据目标:比如性能、能耗、公平性等等决定如何执行核心迁移。

可以简单认为,Intel/Amd 目前的补丁都能正确告诉内核硬件拓扑,Linux 也能正确理解基础的高性能、平衡和长续航情况下的核心使用优先级,但 CAS 算法以及基础参数都非常 naive 。

一点点使用建议:

异构核心上的(自动最优)任务调度是个很难的事情,这里有两条路可以走,一个是苹果的手动黑白名单,比如将商店进程放到能效核心上,另一个就是全自动,也就是 CAS 的做法。

所以如果你是自己写程序,那完全可以绕开自动逻辑,手动绑定核心。

如果你是要改变 CAS 的优化方向,不是很推荐也没有直接控制的手段,通常是建议保持 SCHED_NORMAL 。

另外 scheduler 和 governor 是不同的,这里只讨论调度器。

那种 2299 元 7945HX 的 MoDT 板 U 能用吗?

CPU-Monkey 说,多核性能比 i9-12900K 强 15%,但比 7950X 差 17%?(应该是最大功耗限制 120W 所致)

这个我不太推荐,主要是保修最长的铭凡也只有 3 年,要是 boom 就是主板和 u 一起无。
而且单看板子的料就是比较垃的 a620 ,和 2600 的 7950x+500 块的丐 a620 性价比拉不开差距。
还有一点就是内存是笔记本那种,后续升级也不方便。

我正好是 12900 ,日常码代码无感

日用环境我觉得没多大问题,但是鉴于目前调度框架,我不能说完全没问题。
大小核调度其实是需要用户输入的,在调度框架不解决这个问题之前我不认为能有很好的解决。

我是 i7-12700 ,手动编译安装 6.1 往上的内核,使用基本无感

我目前是 13 代 i5 ,没记错的话应该也是大小核。日常使用 Arch Linux ,内核版本保持最新的,没发现有什么 bug 之类的

还是 amd 吧哈哈,不用折腾了

用 x86 又不在乎电费还管他呢

14700K kernel 6.12 没有明显问题,目测进程优先运行在大核上,大核占满再用小核