在Intel's optimization guide的2.1.3节中,他们列出了对Skylake中高速缓存和内存子系统的一些增强(强调我的):
Skylake微体系结构的缓存层次结构如下 增强:
- 与前几代相比,缓存带宽更高。
- 通过扩大缓冲区同时处理更多负载和存储。
- 与Haswell微体系结构和前几代产品相比,处理器可以并行执行两次页面遍历。
- 页面拆分负载惩罚从上一代的100个周期下降到5个周期。
- L3写入带宽从上一代的4个周期增加到每行2个。
- 支持CLFLUSHOPT指令以使用SFENCE清除ca che line并管理刷新数据的内存排序。
- 降低了指定NULL指针的软件预取的性能损失。
- L2关联性从8种方式变为4种方式。
最后一个引起了我的注意。以什么方式减少增强方式的数量?就其本身而言,似乎更少的方式比更多方式更严重。当然,我认为可能存在有效的工程原因,为什么减少方式可能是一种权衡,可以实现其他增强,但在这里,它本身定位为增强。
我错过了什么?
答案 0 :(得分:9)
L2缓存的性能严重受损。
根据this AnandTech writeup of SKL-SP (aka skylake-avx512 or SKL-X),英特尔已经声明" [减少关联性]的主要原因是使设计更加模块化[34]。 Skylake-AVX512具有1MiB二级缓存,具有16路相关性。
据推测,在双核和四核笔记本电脑和台式机部件(SKL-S)中,降低到4路相关性并不会造成严重损害太多带宽到L3缓存。我认为如果英特尔的模拟和测试发现它受到了很大的伤害,那么他们就会花费额外的设计时间来保留非AVX512 Skylake上的8路256k缓存。
较低的相关性的好处是功率预算。它可以通过允许更多的涡轮增压空间来间接地帮助性能,但大多数情况下它们是为了提高效率,而不是为了提高速度。 在功率预算中腾出一些空间可以让他们在其他地方消费。或者不要花掉所有的东西,只使用更少的电力。
移动和多核服务器CPU非常关注功耗预算,远远超过高端四核台式机CPU。
列表中的标题应更准确地阅读"更改"而不是"增强功能" ,但我确信营销部门不会&# 39;让他们写任何听起来不正确的东西。 :P至少英特尔会准确详细地记录内容,包括新CPU比旧设计更糟糕的方式。
Anandtech's SKL writeup表明,降低相关性会释放功率预算以增加L2带宽,从而(在大图中)可以补偿增加的未命中率。
IIRC,英特尔有一项政策,即任何提议的设计变更必须具有2:1的性能增益与功率成本之比,或类似的结果。因此,如果他们失去了1%的性能但是通过这次L2改变可以节省3%的功率,他们就会这样做。 2:1的数字可能是正确的,如果我正确记住这一点,但1%和3%的例子是完全弥补的。在IDF发布细节之后,大卫坎特在播客采访中做了一些关于这一变化的讨论。 IDK if this is the right link