据我所知,英特尔 Turbo Boost“可加速处理器[...],如果处理器内核在低于功率、电流和温度规格限制的情况下运行,则自动允许处理器内核以高于额定工作频率的速度运行。”(来源:英特尔)
但有几件事我不明白:
我的 CPU 是 Intel Xeon E5-1660 v4 @ 3.20GHz。这意味着 3.20GHz 是我的最高时钟速度。如果我在 BIOS 中或使用 sh$ 禁用 Turbo Boost,每个核心都可以达到这个速度wrmsr-p0 0x1a0 0x4000850089在运行时。
如果我启用 Turbo Boost,即使没有压力,所有 8 个核心也会稳定在 3.40GHz。这超过了 3.20GHz 的限制。
这是我不明白的第一件事:当我查看温度时,所有核心都在 45 摄氏度左右,然而这里(这款 CPU 的热指南)第 25 页说我的 TDP 应该在 95 C 左右。那么为什么 Turbo boost 没有超过 3.40GHz,可能是因为功率/电流限制,但我该如何检查呢?
我不明白的另一件事是:当我在 BIOS 中禁用除 2 个核心之外的所有核心时,最后两个核心的 Hz 分别为 3.8Ghz 和 3.6Ghz(如果您相信它所说的,3.8Ghz 是使用 Turbo Boost 应获得的最大时钟频率)这里)。但是当我在 BIOS 中启用每个核心并在运行时使用 sh$ 禁用它时echo 0 > /sys/devices/system/cpu/cpuX/online(X=2->7)最后两个核心的 Hz 仍为 3.4GHz 且没有变化...所以我猜测我在运行时禁用的方式不会被 Turbo Boost 识别。为什么?
要检查我的时钟速度我使用:sh$watch -n 1 "cat /proc/cpuinfo |grep \"cpu MHz\""
要检查我的 CPU 温度我使用:sh$观察-n 1个传感器
其他相关事项:CPU 驱动程序是 pstate,每个 CPU 的控制器是性能。当我监控时钟速度或 CPU 温度时,我不会忘记对 CPU 施加压力。
PS:标题可能不太合适...但我找不到更好的了...
答案1
据我所知,随着被加速的内核数量的增加,最大频率会下降,以解决运行多个内核产生的热量增加的问题。因此,虽然 1 个内核可以顺利地以 3.8ghz 运行,但 Turbo Boost 不会让所有内核都以这个速度运行。
答案2
查看规格表,3.2 GHz 是基本时钟。这意味着当 turboboost 未激活时(并且不处于任何各种省电状态),CPU 应该以该频率运行。您还可以看到最大 turbo boost 列为 3.8GHz。但是,这是最大单核 turbo(实际上,这正是您所看到的)。我相信英特尔不再发布完整的 turbo 频率列表,但在这种情况下,最大全核 turbo 似乎是 3.4 GHz。我不知道为什么在运行时禁用核心不会让您达到最大单核 turbo 频率:但是,如果您不这样做而是运行单线程工作负载,您仍然应该看到最高频率峰值为 3.8 GHz。