KxngDemon
2022-02-22T15:57:16+00:00
12900k的核心结构如图
[img]https://img.nga.178.com/attachments/mon_202202/23/9aQvmvk-73qpK4ToS6p-3w.png.thumb_s.jpg[/img]
由于12900k片内互联使用的是ring架构,显然距离IMC越近的核心,其内存延迟越低。
我分别测试各核心的内存延迟,看看距离因素对内存延迟的影响有多大。
测试使用的方法是使用intel MLC 3.9a分别测试不同核心的空载延迟,输入参数为--idle_latency -c* (*为数字,取值为0-23,对应12900k的24个逻辑核心)
内存的设置是4000g1 16-17-17-36 ,tRFC 320,tREFI 62400
核心的设置是大核5.4G,小核4.0G,ring默认(即大核4.7G 小核3.6G)或锁定3.6G,后面会单独说明ring
第1组数据是ring锁定3.6G
[img]https://img.nga.178.com/attachments/mon_202202/23/9aQvmvk-3xyeK8T1kSb5-57.png.thumb.jpg[/img]
可以看到内存延迟随核心到IMC的距离的增大而增大,离IMC最近的大核和最远的大核,内存延迟相差可达47.2-44.8=2.4ns;
大核0123的内存延迟差距很小,但45相比23就有一个0.6-0.8ns的跨度,67相比45又有一个1.1ns的跨度;
小核簇本身就距离IMC最远,共享L2,频率还低,因此拥有着最差的内存延迟,为52ns,与大核的平均内存延迟45.7ns相比差了6.3ns左右。
第2组数据是单独看大核,ring默认4.7G和锁3.6G的对比
[img]https://img.nga.178.com/attachments/mon_202202/23/9aQvmvk-c0qmK9T1kSfl-4j.png.thumb.jpg[/img]
高频率的ring可以降低内存延迟,距离越远效果越好。距离IMC近的核心,4.7G和3.6G的内存延迟相差3.4ns;距离IMC远的核心,4.7G和3.6G的内存延迟相差4.0ns。
大核的平均内存延迟ring4.7G时约为42.1ns,ring3.6G时约为45.7ns,相差3.6ns。
第3组数据是ring默认(即大核4.7G 小核3.6G),基本可以代表日常使用时的性能表现。
[img]https://img.nga.178.com/attachments/mon_202202/23/9aQvmvk-kvvnK9T1kSb5-57.png.thumb.jpg[/img]
大核有4.7G的ring的加持,延迟进一步甩开ring跑3.6G的小核簇,离IMC最近的大核和小核簇的内存延迟相差了52-41.4=10.6ns。
从这些数据中可以得到的启发:
1. 小核的内存延迟不能说有多好,但也差不到哪里去。关小核和开小核相比,核心算力弱很多,而平均内存延迟会有少许优势。
少数对内存延迟极端极端极端敏感的游戏是关小核会有优势,大部分游戏和日常应用是综合核心算力更强的开小核比较好。
2. 大核0和1的内存延迟最优秀,2和3也不赖,在少核负载时应当优先使用。通过调整percore的目标频率,我们可以让windows 11优先使用大核0和1。
[img]https://img.nga.178.com/attachments/mon_202202/23/9aQvmvk-37fpKwT1kSd4-cp.png.thumb.jpg[/img]
比如XTU设置percore大核0和1 55倍频,大核2到7 54倍频。
(注意不要混淆active-core tuning和per-core tuning。active-core是活跃核心数量对应倍频,percore是指定的物理核心的倍频。当然这两者是联动的,假如设置了per-core最高倍频是55,那么active-core最高倍频应当也是55,那么可以只让1 active core跑55倍频,意思一下得了。)
[img]https://img.nga.178.com/attachments/mon_202202/23/9aQvmvk-gcy1ZgT3cShd-67.png.medium.jpg[/img]
这样设置,核心0和1的优先级会提高,实测游戏和各种少核/轻负载应用中操作系统会优先把最主要的负载扔到核心0和1上,同时不影响多核的次要负载扔到其他的核心上(即不会让核心0和1累到死 导致两核有难六核围观)。根据active-core设置的不同,核心0和1不一定会跑到设置对应的频率,只是核心优先级必定生效。
不知道这是否Turbo Boost Max 3.0的独占特性,至少12900k是可以这样做的
[img]https://img.nga.178.com/attachments/mon_202202/23/9aQvmvk-73qpK4ToS6p-3w.png.thumb_s.jpg[/img]
由于12900k片内互联使用的是ring架构,显然距离IMC越近的核心,其内存延迟越低。
我分别测试各核心的内存延迟,看看距离因素对内存延迟的影响有多大。
测试使用的方法是使用intel MLC 3.9a分别测试不同核心的空载延迟,输入参数为--idle_latency -c* (*为数字,取值为0-23,对应12900k的24个逻辑核心)
内存的设置是4000g1 16-17-17-36 ,tRFC 320,tREFI 62400
核心的设置是大核5.4G,小核4.0G,ring默认(即大核4.7G 小核3.6G)或锁定3.6G,后面会单独说明ring
第1组数据是ring锁定3.6G
[img]https://img.nga.178.com/attachments/mon_202202/23/9aQvmvk-3xyeK8T1kSb5-57.png.thumb.jpg[/img]
可以看到内存延迟随核心到IMC的距离的增大而增大,离IMC最近的大核和最远的大核,内存延迟相差可达47.2-44.8=2.4ns;
大核0123的内存延迟差距很小,但45相比23就有一个0.6-0.8ns的跨度,67相比45又有一个1.1ns的跨度;
小核簇本身就距离IMC最远,共享L2,频率还低,因此拥有着最差的内存延迟,为52ns,与大核的平均内存延迟45.7ns相比差了6.3ns左右。
第2组数据是单独看大核,ring默认4.7G和锁3.6G的对比
[img]https://img.nga.178.com/attachments/mon_202202/23/9aQvmvk-c0qmK9T1kSfl-4j.png.thumb.jpg[/img]
高频率的ring可以降低内存延迟,距离越远效果越好。距离IMC近的核心,4.7G和3.6G的内存延迟相差3.4ns;距离IMC远的核心,4.7G和3.6G的内存延迟相差4.0ns。
大核的平均内存延迟ring4.7G时约为42.1ns,ring3.6G时约为45.7ns,相差3.6ns。
第3组数据是ring默认(即大核4.7G 小核3.6G),基本可以代表日常使用时的性能表现。
[img]https://img.nga.178.com/attachments/mon_202202/23/9aQvmvk-kvvnK9T1kSb5-57.png.thumb.jpg[/img]
大核有4.7G的ring的加持,延迟进一步甩开ring跑3.6G的小核簇,离IMC最近的大核和小核簇的内存延迟相差了52-41.4=10.6ns。
从这些数据中可以得到的启发:
1. 小核的内存延迟不能说有多好,但也差不到哪里去。关小核和开小核相比,核心算力弱很多,而平均内存延迟会有少许优势。
少数对内存延迟极端极端极端敏感的游戏是关小核会有优势,大部分游戏和日常应用是综合核心算力更强的开小核比较好。
2. 大核0和1的内存延迟最优秀,2和3也不赖,在少核负载时应当优先使用。通过调整percore的目标频率,我们可以让windows 11优先使用大核0和1。
[img]https://img.nga.178.com/attachments/mon_202202/23/9aQvmvk-37fpKwT1kSd4-cp.png.thumb.jpg[/img]
比如XTU设置percore大核0和1 55倍频,大核2到7 54倍频。
(注意不要混淆active-core tuning和per-core tuning。active-core是活跃核心数量对应倍频,percore是指定的物理核心的倍频。当然这两者是联动的,假如设置了per-core最高倍频是55,那么active-core最高倍频应当也是55,那么可以只让1 active core跑55倍频,意思一下得了。)
[img]https://img.nga.178.com/attachments/mon_202202/23/9aQvmvk-gcy1ZgT3cShd-67.png.medium.jpg[/img]
这样设置,核心0和1的优先级会提高,实测游戏和各种少核/轻负载应用中操作系统会优先把最主要的负载扔到核心0和1上,同时不影响多核的次要负载扔到其他的核心上(即不会让核心0和1累到死 导致两核有难六核围观)。根据active-core设置的不同,核心0和1不一定会跑到设置对应的频率,只是核心优先级必定生效。
不知道这是否Turbo Boost Max 3.0的独占特性,至少12900k是可以这样做的