slangmgh 发表于 2019-4-21 15:04

搞定ThinkPad P1(i7-8850H)上的功耗墙和温度墙问题(X1E/X1/T480s/T480可参考)

本帖最后由 song_1118 于 2019-4-23 09:22 编辑

本文已发布到主站并安排在幻灯片栏目主推;
谢谢楼主的辛苦创作和无私分享!
标题为《深研究:ThinkPad P1的功耗墙和温度墙问题》
主站文章链接:https://www.ibmnb.com/review/2019-04-23/98168.htmll

                              ------51nb专门网内容部song_1118   2019/04/23




1. Thinkpad P1的PL1和PL2缺省都是45W,这个功耗下跑CPU,一般温度都在80度以下,降压后会更低一点,对通常的使用来说其实是足够了,不过对于跑分来说是远远不够的。
2. 另外,我上一篇帖子里说到,我的这个P1温度墙是80度,这个好坑,查了一下,发现不少人也遇到这个问题,只是有的可以到100度,有的是80度,看起来真象是一宗疑案。这里有个帖子是说温度墙的。https://forums.lenovo.com/t5/Thi ... atures/td-p/4244581

3. 经过几天的研究,这两个问题基本上有了明确的解决方案,先看看象棋跑分的图。


这是用4.1GHz的跑分结果,全程没有任何Throttle,包括功耗墙和温度墙都没触及。最高温度大概是95度,功耗全程在58左右。




这是用4.2GHz跑分的结果,没有触及功耗墙,但是触及了温度墙,最高温度应该超过97度左右了,功耗全程在65左右。


slangmgh 发表于 2019-4-21 15:04

本帖最后由 slangmgh 于 2019-4-22 19:51 编辑

先说说功耗墙的问题。1. 功耗墙就是PL1和PL2的功耗,具体含义请百度。可以在hwinfo中看这两个值。


对应在throttlestop中的TPL对话框中的:


另外在XTU中我们也可以清楚的看到这两个值,不过我已经把XTU卸了,所以就不贴图了。

2. 除了pl1, pl2两个值以外,上面的第三个值也非常关键,就是Turbo Time Limit,这个值很多地方解释是PL2的持续时间,其实我自己测试下来是PL1的持续时间(而且实际持续时间比测试时间短)。

3. 用XTU破解功耗墙。
   大部分人喜欢用XTU破解功耗墙,因为可以直接设置这三个值。但是问题是,在XTU中,Turbo Time Limit最多只能设96秒。在我机器上测试,PL1实际持续的时间大概是70秒不到,超过70秒,功耗就掉到45W,然后继续往下掉,直到38左右。而且更坑的是,当压力测试结束的时候,PL1的功耗值就恢复到缺省的45W了。所以用XTU破解功耗墙其实是残缺的。

4. 用ThrottleStop破解功耗墙。
   我之所以今天第一次装XTU是因为ThrottleStop的PL1,PL2设置没有作用,而且新版的ThrottleStop有没有完整的说明文档。NotebookReview上关于ThrottleStop的主贴达1000多页,简直是没法看。今天,在思考功耗墙的问题的时候,忽然目光转到FIVR对话框的这个地方:

   以前都只是忽略它,忽然想到这个是不是和破解功耗墙有关,然后就下载了RwDrv.sys,把图变成这个样子:

   再去看HWiNFO,发现PL1和PL2以及Turbo Time Limit已经设置成我想要的样子了。最关键的是,Turbo Time Limit可以设置成任意的数值,而不再是96秒上限了。

5. 立马进行压力测试发现功耗墙已经稳稳的破解了,再也没有任何PL1, PL2的throttle了。 :)

slangmgh 发表于 2019-4-21 15:04

本帖最后由 slangmgh 于 2019-4-21 16:06 编辑

搞定了功耗墙以后,剩下的就是温度墙的问题了。
1. 首先从各种帖子上看到,确实有不少 X1E/P1 的机器是可以超过80度跑分的,所以这个应当不是在BIOS层面的限制,而应该是某种电源管理的机制。

3. 由于电源管理这个事情有太多方参与,Bios/操作系统/Intel DPTF/Lenovo Intelligent Thermal Solution/虚拟化,所以真是搞不清楚究竟是哪方做的限制。

3. 从看到的信息来看,有以下几种:

   a. 电源设置成最高性能可以到100度,否则就是80度。
   b. 如果打开Bios中的虚拟化,并且启用Hyper-V,则80度撞墙,否则能到100度。
   c. 重装成原装系统可以到100度,另安装系统只能到80度。
   d. 用Lenovo Vantage设置成Performance可以到100度。

4. 第一第二两种方法我试了没有效果;第三种方式无法验证了,原装系统我已经格式化掉了,也不想折腾;第四种方式因为我没装Lenovo Vantage,所以没法验证。

5. 最后,忽然想到,服务管理里面的Lenovo Intelligent Thermal Solution Service被我禁掉了,是不是在BIOS里本身缺省是有限制的,但是可以通过软件设置MSR_TEMPERATURE_TARGET的值使得温度墙升到100度。抱着试试看的态度,在服务中启动该服务,并且在电源管理(我用的是平滑模式)里设置成最佳性能。


然后禁用ThrottleStop中的Speed Shift EPP.


确保在FIVR中看到实时的Speed Shift EPP为0.


然后进行压力测试,发现温度终于可以超过80度了。

另外直接用ThrottleStop修改Speed Shift EPP为0的方式没有用处,必须是通过操作系统的电源管理的最佳性能模式才能其作用,而且把电源管理本身设置成高性能模式也不行。

最后,祝大家都能破解功耗墙和温度墙,用不用的上是一回事,能不能用则是另一回事。

slangmgh 发表于 2019-4-21 15:05

本帖最后由 slangmgh 于 2019-4-22 19:53 编辑

这是https://forums.lenovo.com/t5/Thi ... td-p/4244581/page/5的帖子回复。


我们下载RwEverything,然后运行rw.exe,打开CPU MSR,点击User按钮,输入:MSR_TEMPERATURE_TARGET=0x1A2

我们可以看到界面:


在这里后面的64 = 0x64 = 100表示CPU最大的温度是100度。左边的12 = 0x12 = 18 表示我们减去18度就是实际的温度墙。100-18=82度。
这是正常的情况下的温度墙。

现在我们把模式切换成最佳性能模式,然后再看这个值如下:


我们发现左边的0x12 已经变成 3了,也就是温度墙从82 变成了 100-3 = 97了。

那如果我们直接修改这个值呢,双击左边的MSR_TEMPERATURE_TARGET标题,出现界面:


我们把其中的12改成0,这是温度墙是100-0 = 100度,跑一下压力测试验证一下,果然没有问题。

所以最终结论就是MSR_TEMPERATURE_TARGET就是控制温度墙的寄存器,而其他所有的程序、驱动都是通过改变这个寄存器来控制温度墙的。
当然我们自己也可以写程序写这个寄存器。

最后,我们在温度墙为100度的情况下跑一下4.2GHz象棋,作为这个帖子的结束,全程没有任何Throttle,温度最高97。


Saifaye 发表于 2019-4-21 15:16

技术贴,厉害了

MHZ 发表于 2019-4-21 15:28

围观

virgilwei 发表于 2019-4-21 16:06

CPU是8750H?散热没有经过改进也能跑到4.1吗?

radio777 发表于 2019-4-21 16:06

还是散热不行啊,否则温度墙也不会设置到80度

virgilwei 发表于 2019-4-21 16:11

不知道为什么我之前5系CPU最高操作温度是105而现在8系全是100度

rainskyer 发表于 2019-4-21 20:40

slangmgh 发表于 2019-4-21 15:04
1. Thinkpad P1的PL1和PL2缺省都是45W,这个功耗下跑CPU,一般温度都在80度以下,降压后会更低一点,对通常 ...
技术贴,能指导下T450S I75600U的设置吗,最近也在研究。

h0324879 发表于 2019-4-21 20:42

高技術啊..

rainskyer 发表于 2019-4-21 20:45

http://www.lotpc.com/yjzs/7952.html
这里有个贴,可以参考。

Traveller01 发表于 2019-4-21 20:55

你这个修改后,跑了多长时间?

slangmgh 发表于 2019-4-21 20:57

Traveller01 发表于 2019-4-21 20:55
你这个修改后,跑了多长时间?

应该跑多长时间都没问题吧,因为温度、功耗都基本持续不变。象棋应该没多少时间,大概一分钟,没细看。

lonono 发表于 2019-4-21 20:58

好专业啊:)

slangmgh 发表于 2019-4-21 20:59

rainskyer 发表于 2019-4-21 20:40
技术贴,能指导下T450S I75600U的设置吗,最近也在研究。

先看一下主要撞墙的是什么,功耗还是温度,然后根据帖子分别修改就可以了;另外如果功耗和温度墙去掉,散热上不去是没有用的。

virgilwei 发表于 2019-4-21 21:08

slangmgh 发表于 2019-4-21 20:59
先看一下主要撞墙的是什么,功耗还是温度,然后根据帖子分别修改就可以了;另外如果功耗和温度墙去掉,散 ...

请问您CPU降压了吗?手动修改温度墙到100度会不会被驱动改回到80度呢

slangmgh 发表于 2019-4-21 21:25

virgilwei 发表于 2019-4-21 21:08
请问您CPU降压了吗?手动修改温度墙到100度会不会被驱动改回到80度呢

降压具体的数值看2楼的图。
关掉联想的智能温控,手动改一般不会被改回来。休眠或者重启后会回到缺省值。
我打算有时间自己写一个程序解决这个问题。

virgilwei 发表于 2019-4-21 21:37

slangmgh 发表于 2019-4-21 21:25
降压具体的数值看2楼的图。
关掉联想的智能温控,手动改一般不会被改回来。休眠或者重启后会回到缺省值 ...

那Intel dptf驱动是不是可以不安装了

rainskyer 发表于 2019-4-21 22:01


slangmgh 发表于 2019-4-21 20:59
先看一下主要撞墙的是什么,功耗还是温度,然后根据帖子分别修改就可以了;另外如果功耗和温度墙去掉,散 ...
搞个游戏,进去,就降为1.6G。切换回桌面打开其他的卡得要命,散热解决不掉。

slangmgh 发表于 2019-4-21 22:10

virgilwei 发表于 2019-4-21 21:37
那Intel dptf驱动是不是可以不安装了

我是安装了,但是禁用了,不然设备管理那里看着闹心。目前看来没有多大影响。

slangmgh 发表于 2019-4-21 22:11

rainskyer 发表于 2019-4-21 22:01
搞个游戏,进去,就降为1.6G。切换回桌面打开其他的卡得要命,散热解决不掉。

游戏的话,先用throttlestop去掉 BD PROCHOT 再说。就是把 BD PROCHOT前面的 CheckBox去掉试试。

chenyingkeng 发表于 2019-4-21 22:11

厉害了,这个技术贴说明了p1还是可以压得住的啊,潜力还是可以的啊

rainskyer 发表于 2019-4-21 22:46

slangmgh 发表于 2019-4-21 22:11
游戏的话,先用throttlestop去掉 BD PROCHOT 再说。就是把 BD PROCHOT前面的 CheckBox去掉试试。

没用

slangmgh 发表于 2019-4-22 08:51

放两张单FPU的拷机图。



用3.2GHz的频率跑,一点问题都没有,温度80度以下,功耗最大48.1。



用3.5GHz的频率跑,功耗持续65左右,刚开始还行,慢慢地温度就开始压不住了,勉强维持。

FoxHunter422 发表于 2019-4-22 09:24

动态调节TDP和温度墙的是DPTF,卸掉就行

fxj1977 发表于 2019-4-22 09:28

象棋单核能跑多少?

slangmgh 发表于 2019-4-22 09:45

FoxHunter422 发表于 2019-4-22 09:24
动态调节TDP和温度墙的是DPTF,卸掉就行

这个早试过了,我甚至重新安装了一遍操作系统(不装DPTF)也一样。另外,在WinPE中也一样。

slangmgh 发表于 2019-4-22 09:49


OSos 发表于 2019-4-22 10:13

感謝分享~~
真是技術文章
页: [1] 2 3 4 5
查看完整版本: 搞定ThinkPad P1(i7-8850H)上的功耗墙和温度墙问题(X1E/X1/T480s/T480可参考)