我刚刚构建了新的Skylake PC,并且我将看到使用Prime95作为压力测试仪的一些超频。
在正常使用情况下,它工作正常,但是在Prime95下,我注意到某些负载下CPU的节流。
如果所有4个核心(8个线程)都阻塞为100%,为什么Prime95中的Small FFT设置会比“ Blend”选项的温度更高?
我刚刚构建了新的Skylake PC,并且我将看到使用Prime95作为压力测试仪的一些超频。
在正常使用情况下,它工作正常,但是在Prime95下,我注意到某些负载下CPU的节流。
如果所有4个核心(8个线程)都阻塞为100%,为什么Prime95中的Small FFT设置会比“ Blend”选项的温度更高?
Answers:
x86-64体系结构提供了广泛的矢量处理功能,尤其是在最新的处理器上。向量处理允许应用程序一次对多个数据项执行数学运算,并且许多新的计算密集型应用程序使用矢量处理来增加处理吞吐量。
矢量化代码,尤其是Prime95使用的AVX指令,要求处理器以比正常更高的电压运行。这导致功耗和热量输出大于正常工作负载下的功耗和热量输出。因此,英特尔警告称,AVX负载过重会导致处理器节流或无法维持完整的Turbo Boost时钟速率(脚注1):
英特尔®高级矢量扩展(英特尔®AVX)旨在为某些整数和浮点运算实现更高的吞吐量。由于处理器功率特性的变化,利用AVX指令可能会导致a)某些部件的工作频率低于额定频率,并且b)某些采用Intel®Turbo Boost Technology 2.0的部件无法达到任何或最大Turbo频率。
英特尔在本白皮书中对此进行了更详细的说明。它特别指出:
英特尔AVX旨在为某些整数和浮点运算实现更高的吞吐量。使用这些指令可能会导致处理器的工作频率低于标记的TDP频率。出现这些频率降低的原因是,大功率Intel AVX指令需要额外的电压和电流。
我对为什么对AVX指令必须使用升压V 核的猜测是,AVX执行单元比处理器的其他部分更复杂,导致相应的流水线阶段需要更长的时间才能完成(有关流水线的更多技术信息,请参阅此答案)和处理器设计的其他方面)。如果特定的流水线级很慢,则整个处理器的最大时钟速率将受到限制,因为流水线中的每个级必须在每个时钟周期内完成。
出于同样的原因,超频时更高的电压会增加最大可达到的频率(晶体管可以在更高的电压下更快地切换),增加电压有助于确保更长的流水线级能够按时完成。
小型FFT模式仅使用可容纳在CPU缓存中的较小数据项,这不同于混合模式可同时处理可能不适用于缓存的较小值和较大值。由于相对于简单地处理数据而言,访问内存的速度较慢,因此处理器将花费更少的时间在Blend模式下实际处理数据,从而减少热量输出。小型FFT不会导致访问尽可能多的存储器,从而导致CPU需要执行更多实际工作,从而增加了功耗和热量输出。