首页 文章

通过降低关联性来增强Skylake L2缓存?

提问于
浏览
9

Intel's optimization guide,第2.1.3节中,他们列出了Skylake中高速缓存和内存子系统的一些增强功能(强调我的):

Skylake微体系结构的缓存层次结构具有以下增强功能:与前几代相比,缓存带宽更高 . 通过扩大的缓冲区同时处理更多的装载和存储 . 与Haswell微体系结构和前几代产品相比,处理器可以并行执行两次页面遍历 . 页面拆分负载惩罚从上一代的100个周期下降到5个周期 . L3写入带宽从上一代的4个周期增加到每行2个 . 支持CLFLUSHOPT指令使用SFENCE清除ca che line并管理刷新数据的内存排序 . 降低了指定NULL指针的软件预取的性能损失 . L2关联性从8种方式变为4种方式 .

最后一个引起了我的注意 . 以什么方式减少增强方式的数量?就其本身而言,似乎更少的方式比更多方式更严重 . 当然,我认为可能存在有效的工程原因,为什么减少方式可能是一种权衡,可以实现其他增强,但在这里,它本身定位为增强 .

我错过了什么?

1 回答

  • 9

    这对于L2缓存的性能来说严重得多 .

    根据this AnandTech writeup of SKL-SP (aka skylake-avx512 or SKL-X),英特尔已经声明"the main reason [for reducing associativity] was to make the design more modular" . Skylake-AVX512具有1MiB二级缓存,具有16路相关性 .

    据推测,在双核和四核笔记本电脑和台式机部件(SKL-S)中降低到4路相关性并没有太大的损失,因为已经发现它受到了很大的伤害,他们会把在额外的设计时间内,将8路256k高速缓存保留在非AVX512 Skylake上 .


    较低的相关性的好处是功率预算 . 它可以通过允许更多的涡轮增压空间来间接地帮助性能,但大多数情况下它们是为了提高效率,而不是为了提高速度 . Freeing up some room in the power budget allows them to spend it elsewhere . 或者不花费所有这些,只是使用更少的电力 .

    移动和多核服务器CPU非常关注功耗预算,远远超过高端四核台式机CPU .

    The heading on the list should more accurately read "changes", not "enhancements" ,但我让他们写任何听起来不正确的东西 . :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 .

相关问题