Ubuntu lm传感器:英特尔酷睿i7的瞬时温度大幅跃升



我正试图用CPU核心温度进行一些数据科学研究。我需要监控CPU核心温度随时间的变化。我正试图使用两种工具来做到这一点:

  1. lm传感器,用于测量核心和封装温度
  2. 产生载荷的应力

我看到的问题是,压力一开始,温度就会飙升,一旦停止,温度就会暴跌。这不可能是对的!

这里有一个小的shell脚本和输出来演示这个问题:

脚本:

sensors | grep Core
stress -c 8 -t 1
sensors | grep Core
str=$'Sleeping for 1s n' 
read -t 1 -p "$str"
sensors | grep Core

输出:

Core 0:        +49.0°C  (high = +100.0°C, crit = +100.0°C)
Core 1:        +51.0°C  (high = +100.0°C, crit = +100.0°C)
Core 2:        +49.0°C  (high = +100.0°C, crit = +100.0°C)
Core 3:        +47.0°C  (high = +100.0°C, crit = +100.0°C)
stress: info: [6956] dispatching hogs: 8 cpu, 0 io, 0 vm, 0 hdd
stress: info: [6956] successful run completed in 1s
Core 0:        +81.0°C  (high = +100.0°C, crit = +100.0°C)
Core 1:        +73.0°C  (high = +100.0°C, crit = +100.0°C)
Core 2:        +73.0°C  (high = +100.0°C, crit = +100.0°C)
Core 3:        +68.0°C  (high = +100.0°C, crit = +100.0°C)
Sleeping for 1s 
Core 0:        +51.0°C  (high = +100.0°C, crit = +100.0°C)
Core 1:        +53.0°C  (high = +100.0°C, crit = +100.0°C)
Core 2:        +51.0°C  (high = +100.0°C, crit = +100.0°C)
Core 3:        +48.0°C  (high = +100.0°C, crit = +100.0°C)
+51.0°C  (high = +100.0°C, crit = +100.0°C)

这是预期的行为吗?温度传感器在物理上有可能这么快看到这么大的变化吗?如果是这样的话,我在描述温度变化方面就有麻烦了。我没有时间收集数据。温度基本上是瞬间飙升,在作业运行时不会改变,作业一结束,温度就消失了。

我在RPi上进行了同样的实验,在频率缩放开始之前,满载的四核花了大约60秒的时间,所以我不知道现在发生了什么,因为我正试图将该项目引入更复杂的架构。

这是基于英特尔酷睿i7 Skylake架构。如果您能理解这一点,我们将不胜感激。

这很正常与>比环境温度高出50摄氏度,所以它很快达到平衡。

在我的i7-6700k(Skylake四核台式机)上,启动视频编码(x264或x265)等高功率过程会在一秒内将内核从约25摄氏度的空闲(室温)提升到约50或60摄氏度,然后它们会迅速稳定在70摄氏度左右,这取决于通过energy_performance_preference的3.9或4.0GHz的最大全核涡轮。(英特尔,因为Skylake有硬件电源管理,所以它可以在微秒而不是毫秒内从空闲时钟上升。时钟速度的决定是在硬件中做出的)

我的意思是,一旦达到其高性能速度,它就会保持在那里(3.1GHz)。没有频率缩放来降低频率(如DVFS)

如果你的意思是节流(如果高于额定/"保证"持续频率,则从最大全核心涡轮下降),这取决于工作负载。为了产生足够的热量使涡轮增压器不可持续,你需要运行SIMD FMA或类似的高功率,而不仅仅是一个虚拟环路。(例如Prime95或视频编码。)

即使是英特尔的股票冷却器通常也有足够的冷却能力来维持一些涡轮增压,所有核心都忙于大量工作负载,保持在持续的TDP以下。或者,你的CPU的最大全核turbo并没有高于它的额定速度。i7-6700k不是:两者都是4.0GHz。只有1或2核的turbo是4.2GHz

当然;k〃;型号是超频的,所以库存涡轮增压器的设置是保守的,但我喜欢让我的粉丝安静,而不是在加载笨重的网页时发出风扇旋转的声音。

我的冷却器是CoolerMaster Gemini II,一个笨重的大东西,有热管和一个(在室温下)几乎不能转动的大风扇,所以我的冷却器比库存冷却器有更多的热质量。当CPU/mobo温度低于~40C时,后盖风扇就会停止,就像我在BIOS中配置的那样。

我看不出是什么阻止了温度继续上升。

物理。更高的温差(芯片和散热器之间,散热器和空气之间)意味着每次传递更多的热量(也就是功率)。芯片+散热器的热质量就像电容器,芯片与空气的热连接就像电阻器,恒定的热功率输入就像电流。

所以温度渐近地接近平衡,就像在RC电路中一样平衡点(高于环境温度)与总功率成线性关系

(热传导(和风扇强制对流)与温差成线性关系,就像电导/电阻一样。这是占主导地位的因素,而不是与绝对成比例的辐射传输

此外,动态风扇速度会根据CPU温度而增加

顺便说一句,我认为我的冷却器上的热管解释了快速上升到约60摄氏度,然后在剩下的过程中逐渐上升的原因:CPU本身可以很快变热,并开始将热量转移到热管中(热管进入冷却器的底部,所以只有一些热膏和铜)。它可以通过蒸发工作流体直接吸收热量。但有了持续的热量输入,热量必须到达某个地方:进入大量的鳍,然后从那里进入空气。因此,逐渐渐进的增加可能是因为散热片本身加热,必须将热量散发到空气中,而不仅仅是将热量从热管中传导出去。


有些系统没有足够的持续冷却来处理持续的最大涡轮。对于x86系统,你会在笔记本电脑中找到这些系统,尤其是重量轻的,尤其是带有Core-Y CPU的超便携式笔记本电脑(TDP大约为7.5W,但仍然是带有AVX2的全Skylake内核,可以实现相当高的涡轮增压)。

为什么可以';我的超便携式笔记本电脑CPU在HPC中保持峰值性能有一些数据显示时钟速度下降,我在那里的回答解释了他们为什么以这种方式构建系统:爆发性能是你想要的交互使用,而轻重量(风扇/散热器)+高爆发的组合不可避免地意味着他们无法维持其最大涡轮。

但台式机可能很重,人们确实希望机器能以尽可能高的时钟速度长时间处理数字。

相关内容

  • 没有找到相关文章

最新更新