找回密码
 加入我们
搜索
      
查看: 3710|回复: 12

[CPU] 简单讲解外国大神研究出来的Zen 5 CurveShaper玩法

[复制链接]
发表于 2024-8-31 17:06 | 显示全部楼层 |阅读模式
本帖最后由 sinopart 于 2024-8-31 20:00 编辑

(内容做了一定更新和修改)
  简单来说,这个功能是基于原厂烧入的V/F曲线进行“接近完全”的V/F调整,而且还能与温度相关联。

  刚开始研究我的9700X上的这玩意怎么玩的时候,看了论坛坛友先前的一些研究经验,帮助很大:AMD新bios中的Curve Shaper个人理解。 - 电脑讨论(新) - Chiphell - 分享与交流用户体验
  后来有幸看到一位b站网友转载的YT大牛“skatterbencher”的视频,算是完全解开了curve shaper所有主要功能的作用:
  原视频:https://www.youtube.com/watch?v=a83iLn-NVhI
  B站转载翻译版:【【SkatterBencher|自译中字】带你理解 AMD 9000 系 CPU 的 Curve Shaper】 https://www.bilibili.com/video/BV1G3Y2eZEcv/?share_source=copy_web&vd_source=d47a0b1f3f6de3e613278b17c86e1dc9

  下面用skatter的视频截图讲解curveshaper的作用
  先为各位确立两个电压-频率关系的准则:
1.频率越高,CPU需要的电压就越高(显然是一句废话)

频率关系

频率关系


2.温度越高,CPU需要的电压也会随之升高

温度关系

温度关系

(在5165Mhz频率点,40度下只需要1.110V,90度下需要1.168V)

  原始的PBO2机制存在一定的全核性能损失,这是因为当所有核心都活动时,CPU存在一个最高电压限制Vmax,算法只在这个电压值之下基于V/F曲线尽可能的加速CPU来最大化性能。在电压存在上限,而V/F曲线又没有改动的情况下,CPU不会运行在V/F曲线中超过Vmax的电压点所对应的频率。

PBO2

PBO2

(PBO2损失了5750-5630=120Mhz的频率)

  Zen3时代引入的Curve Optimizer的主要作用是对每个频率点所需的电压值进行同步修改,同时减少或增加所有频率点的电压的数值:

CO

CO

(表现在V/F曲线上,就是函数图像发生了向上或向下的平移)

  用CO降压,可以解放出被Vmax困住的频率点,因为此时这些点的电压数值不再超过Vmax,因此PBO2算法允许CPU加速到这些频率点:

解放频率

解放频率


  但是CO存在两个问题:
1.CO只能对V/F曲线做整体的偏移,如果整体偏移后,有部分偏移的曲线碰到了体质所不允许的范围,就会导致系统不稳定。常见的一种情况就是低负载重启,在高频率点允许降压30个点,但在低频率点也许只能降压15个点。对部分频率点适用的降压幅度未必适用于另一部分频率点。
2.CO对各个频率区间的降压幅度并不是完全一致的。这看上去与第一个问题的表述相违背,但这是真的。显然CO的机制确实是想让各个点的电压偏离幅度一致,但skatter实际测量发现,高频率点相比低频率点降低了更多的电压:

CO的问题

CO的问题


  也许是为了解决这些问题,CurveShaper推出了。它也是基于对V/F曲线的调整来自定义CPU的电压表现,但更加聪明。
  首先,CS定义了三个温度区间和5个频率区间:
温度区间:
  • 高温 100度
  • 中温 50度
  • 低温 0度
频率区间:
  • 0-3.5 Ghz       Min Freq
  • 3.5-4 Ghz       Low Freq
  • 4-4.5 Ghz       Med Freq
  • 4.5-5 Ghz       High Freq
  • 5-Fmax Ghz   Max Freq
区间分配.png
  在BIOS中打开CS的选项,可以看到每个频率区间都被分配有3个温度区间,一共有15个可选项。

BIOS页面

BIOS页面

  说简单一些就是,CS允许你只针对特定频率区间进行电压修改,而且每个频率区间还给出了三种不同温度的情况下的分别修改。
  这里举个例子给各位看看CS对V/F曲线的具体影响。比如我认为主板在最高频率区间(MAX Freq)给的电压太高,需要修改,那么我就在BIOS里把最高频率区间Max Freq对应的三个温度区间下的选项全部改为negative模式,值输入30,即“降压30个单位”,得到的新V/F曲线如下:

cs高频点降压效果

cs高频点降压效果

可以看到,V/F曲线中偏高频的区间被拉向了右边。
  再试试只修改中频率区间,会是什么样子?

中频点降压效果

中频点降压效果

  这次只有曲线的中间部分发生了偏移,就像袋子里放进了一个铅球一样,曲线下坠了。观察可发现,没有修改的上半部分的形状是与原本V/F曲线保持一致的,也可以说“斜率”是一致的。

  skatter将CS的作用机制总结为一种“整形点“(shape point),曲线中靠近整形点的部分受到更大的影响,两侧则没有那么大:

整形点

整形点

  对于双CCD的CPU,CS的整形点会有所不同。对于一颗CCD0 Fmax 5750,CCD1 Fmax 5450的9950X,CS设置在CCD0的整形点要比CCD1高了300Mhz,而这刚好是两个CCD Fmax的差距:

双CCD

双CCD

这说明CS对V/F曲线的划分是智能的,它会读取实际V/F曲线进行调节,而不是遵循某些固定的数值来划分区间。

  经过skatter的研究和我自己的验证,CO和CS对V/F曲线的调整是加法叠加,他们之间独立工作,对V/F的调整独立生效:

CO和CS相互作用

CO和CS相互作用

  CO和CS的偏移数值会加法累加在V/F曲线上,如果你用CO先全体降压了10,那么在CS里对某一区间降压10后的实际效果是降压10+10=20。因此,如果在使用CS之前已经用CO调整了数值,那么在写CS的参数时必须牢记CO里已经生效的降压/升压,否则会对CPU过度升压/降压。
  特别的,CO对电压降低的幅度相比CS会更大。同样是30单位,CO生效后的电压比CS低了0.01V。

  经过上述讲解,想必各位已经认识到了CS相比CO的先进性。利用CS,我们可以实现CO无法实现的操作。比如,在4.5Ghz频率以下的所有温度段,我们加压10个单位,4.5-5Ghz不做调整,而5Ghz以上所有的温度段都降压15个单位。具体操作就是在BIOS的medium frequency的三个温度区间里都选择positive:10,而max frequency的三个温度区间都选择negative:15。这样调节出来的V/F曲线能有效的避免传统CO降压带来的低负载电压不够而导致的死机现象。

  而对于游戏玩家,CS还可以根据温度段来进一步精调。我们可以将三个温度简单的转化为低中高三种负载,对于游戏,它对应的具体整形点显然是:高频率,中温度(中负载)。游戏的负载并不大,可以适当的降低更多的电压,比如30。而当遇到游戏突发高负载,比如第一次运行游戏,编译着色器时,可以适当的回调降压幅度,也就是在高频率高温度这个点上设置降压20单位而不是30。另外针对某些频率略低但负载很大的情况,也可以做针对性的调整,比如我这颗9700X在FPU烤鸡时,CPU频率会因为AVX offset而降低到低于高负载频率区间,那么你要做的就是调整中频率高温度这一整形点的降压情况。

  以上就是本人这段时间对Curve Shaper的玩法的简单总结,感谢您的阅读。




评分

参与人数 1邪恶指数 +20 收起 理由
witson + 20

查看全部评分

发表于 2024-8-31 17:35 | 显示全部楼层
漂亮。。。。。。。。。。。。。。

慢慢玩。
发表于 2024-8-31 17:48 来自手机 | 显示全部楼层
太麻烦了,还是习惯直接锁全核
发表于 2024-8-31 18:50 | 显示全部楼层
别分享了,AMD问题又要多起来了
发表于 2024-8-31 19:03 | 显示全部楼层
这就是所谓的不折腾吗 AUTO+EXPO呢
发表于 2024-8-31 19:10 来自手机 | 显示全部楼层
衰败灼烧 发表于 2024-8-31 19:03
这就是所谓的不折腾吗 AUTO+EXPO呢

又没人拿枪指着头“你一定要调玩PBO 2”。。。隔壁超内存琢磨4个电压就很舒服吗
发表于 2024-8-31 19:13 来自手机 | 显示全部楼层
我在实测9700x时候总觉得high频率是全核心高负载频率,5.5以下都有点效果,降低这部分全核跑分高,max是中低负载频率和fmax最高加速,基本管5.5-5.75部分,很多软件启动瞬间挂的频率段,对少数线程和单线程跑分影响大。因为fmax后温度因为太容易提高了,high温度比较重要,其他俩温度影响不大。我是用boostit也就是fmax的,低负载不稳定基本只要限制max部分的curve。但是需要配合offset频率,无脑offset 200会导致max部分curve很难调,特别容易低负载崩,反而限制下offset频率可以把时间稳定频率和性能最大化。
 楼主| 发表于 2024-8-31 19:46 | 显示全部楼层
momoka 发表于 2024-8-31 19:13
我在实测9700x时候总觉得high频率是全核心高负载频率,5.5以下都有点效果,降低这部分全核跑分高,max是中 ...

也许,AMD的那个表格里头的数据,真实的含义是3.5Ghz附近,5Ghz附近?而不是频率区间。
发表于 2024-8-31 19:47 | 显示全部楼层
折腾半天,性能提升百分之多少?
发表于 2024-8-31 19:56 | 显示全部楼层
衰败灼烧 发表于 2024-8-31 19:03
这就是所谓的不折腾吗 AUTO+EXPO呢

隔壁默认都缩肛,好惨呐~
发表于 2024-9-2 12:20 | 显示全部楼层
想起来skatterbencher超至强w2400/3400系列,把几十个核心逐个测VF曲线,逐个调优。我跟着试了2天,放弃了
发表于 2024-9-2 13:27 来自手机 | 显示全部楼层
根据vf曲线动态超频在隔壁已经很常见了,就是最近会缩 笑
发表于 2024-11-14 22:32 | 显示全部楼层
感谢楼主的搬运和分析
zen5新U遇到CO后,跑r23没问题,桌面idle却卡死的情况,看来可以试试CS了,又有的调了
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

Archiver|手机版|小黑屋|Chiphell ( 沪ICP备12027953号-5 )沪公网备310112100042806 上海市互联网违法与不良信息举报中心

GMT+8, 2024-11-22 16:59 , Processed in 0.015281 second(s), 7 queries , Gzip On, Redis On.

Powered by Discuz! X3.5 Licensed

© 2007-2024 Chiphell.com All rights reserved.

快速回复 返回顶部 返回列表