在 Prime95 中,为什么尽管所有选项的 CPU 都达到 100%,但小型 FFT 会产生最多的热量?

在 Prime95 中,为什么尽管所有选项的 CPU 都达到 100%,但小型 FFT 会产生最多的热量?

我刚刚建了一个全新 Skylake 电脑,我将使用 Prime95 作为压力测试器来观察一下超频情况。

在正常使用情况下它运行良好,但使用 Prime95 时我注意到在某些负载下 CPU 会出现一些限制。

如果无论如何所有 4 个核心(8 个线程)都以 100% 的速度堵塞,为什么 Prime95 中的 Small FFT 设置的温度会高于“Blend”选项?

答案1

矢量化代码(尤其是 AVX)自然会增加 CPU 的热量输出,因为处理器必须在更高的电压下运行才能执行这些指令。小型 FFT 所需的内存比混合模式少,因此处理器可以花更多时间处理数据,而花更少时间等待数据。

  • x86-64 架构提供了广泛的矢量处理功能,尤其是在最新的处理器上。矢量处理允许应用程序同时对多个数据项执行数学运算,并且被许多较新的计算密集型应用程序用来提高处理吞吐量。

  • 矢量化代码,尤其是AVXPrime95 使用的指令要求处理器以高于正常电压运行。这会导致功耗和热量输出高于正常工作负载下的功耗和热量输出。因此,英特尔警告称,AVX 负载过重可能会导致处理器节流或无法维持完整的 Turbo Boost 时钟频率(脚注1):

    英特尔® 高级矢量扩展 (英特尔® AVX) 旨在实现某些整数和浮点运算的更高吞吐量。由于处理器功率特性各异,使用 AVX 指令可能会导致 a) 某些部件以低于额定频率运行,以及 b) 某些采用英特尔® 睿频加速技术 2.0 的部件无法实现任何或最大睿频频率。

    英特尔在本白皮书。它特别指出:

    Intel AVX 旨在实现某些整数和浮点运算的更高吞吐量。使用这些指令可能会导致处理器以低于标记的 TDP 频率运行。频率降低是因为高功率 Intel AVX 指令需要额外的电压和电流。

    • 我猜测,为什么需要提升 V核心来执行 AVX 指令,是因为 AVX 执行单元比处理器的其他部分更复杂,导致相应的流水线阶段需要更长的时间才能完成(参见这个答案有关流水线和处理器设计其他方面的更多技术信息)。如果某个流水线阶段速度较慢,则整个处理器的最大时钟速率将受到限制每一个流水线中的各阶段必须在每个时钟周期内完成。

    • 出于同样的原因,更高的电压会增加超频时可达到的最大频率(晶体管在更高电压下可以切换得更快),增加电压有助于确保更长的管道阶段能够按时完成。

  • 小 FFT 模式仅使用可以容纳的较小数据项CPU缓存,不同于 Blend 模式,Blend 模式可同时处理可能不适合缓存的小值和大值。由于访问内存的速度比简单地处理数据的速度要慢,因此处理器在 Blend 模式下实际处理数据的时间会更少,从而减少热量输出。小型 FFT 几乎不需要那么多的内存访问,因此 CPU 需要执行更多的实际工作,从而增加功耗和热量输出。

相关内容