2016-06-22 100 views
7

Intel's optimization guide,第2.1.3节,他们列出SKYLAKE微架构的一些增强了高速缓存和内存子系统(重点煤矿):Skylake二级缓存通过降低关联性得到增强?

的SKYLAKE微架构微架构的缓存层次结构具有以下 增强功能:

  • 与前几代相比,更高的高速缓存带宽。
  • 通过放大的缓冲区同时处理更多的加载和存储。
  • 与Haswell微架构和早期版本中的处理器相比,处理器可以并行处理两个页面。
  • 页面拆分负载惩罚从上一代的100个循环降低到5个循环。
  • L3写入带宽从上一代的4个周期增加到每行2个。
  • 支持CLFLUSHOPT指令来刷新数据行并使用SFENCE管理刷新数据的内存排序。
  • 针对指定NULL指针的软件预取降低了性能损失。
  • L2相关性从8种方式变为4种方式。

最后一个吸引我的目光。以何种方式减少增强方式的数量?就其本身而言,似乎更少的方式严格比更多的方式更糟糕。当然,我认为可能存在有效的工程原因,为什么减少方法的数量可能是一种折衷,可以实现其他增强功能,但在这里它本身就被定位为增强功能。

我错过了什么?

回答

7

这对L2高速缓存的性能来说肯定更糟糕。

根据this AnandTech writeup of SKL-SP (aka skylake-avx512 or SKL-X),英特尔表示“降低关联性的主要原因是为了使设计更加模块化”。 Skylake-AVX512具有1MiB的二级缓存,具有16路相关性。

由于L3缓存有很多带宽,推测在双核和四核笔记本电脑和台式机部件(SKL-S)中,4路关联性下降并不会损害。我认为,如果英特尔的模拟和测试发现它受到了很大的伤害,他们会投入额外的设计时间来将8路256k高速缓存保留在非AVX512 Skylake上。


较低关联度的优势是功率预算。它可以通过允许更多的涡轮增压空间间接地帮助性能,但大多数情况下它们是为了提高效率,而不是提高速度。 释放功率预算中的某些空间可让他们在别处花费。或者不要花费所有的钱,而只是使用更少的权力。

移动和多核心服务器CPU非常关心功耗预算,远远高于高端四核桌面CPU。

列表上的标题应该更准确地读取“变化”,而不是“增强”,但我确信市场部门不会让他们写任何不正确的东西。 :P至少英特尔公司详细记录了一些事情,包括新CPU比旧设计更糟糕的方式。


Anandtech's SKL writeup表明,丢弃的关联性释放出来的功率预算增加L2带宽,这(在大图)补偿提高命中率。

IIRC,英特尔有一项政策,任何提出的设计更改都必须具有2:1的性能增益与功耗成本之比等等。所以大概如果他们失去了1%的表现,但通过这种L2改变节省了3%的力量,他们就这样做了。 2:1的数字可能是正确的,如果我正确记住这一点,但1%和3%的例子是完全组成的。

在IDF发布详细信息后,David Kanter做了一个播客采访之后,有人对此进行了一些讨论。 IDK if this is the right link

+1

这是[另一个有趣的理论](http://www.agner.org/optimize/blog/read.php?i=415#867):Skylake-S(即原始Skylake)有几个建筑修改预计Skylake-X和Skylake Xeon系列产品将支持AVX-512,尽管Skylake-S不支持它。特别是:_ [SKL降低关联性为4]准备增加高速缓存大小 - SKL-S高速缓存仅为具有相同组织的SKL-X高速缓存的四分之一,并降低了关联性,可降低大规模1MB高速缓存的晶体管预算。 。只是猜测,但很有趣! – BeeOnRope

+1

@BeeOnRope:是的,在阅读[AnandTech的SKL-X文章]后,我有同样的想法(http://www.anandtech.com/show/11550/the-intel-skylakex-review-core-i9-7900x-i7 -7820x-and-i7-7800x-tested/4),他们在这里作出相同的声明:减少L2相关性至少部分是为了使其更加模块化。因此,SKL-S在其他地方将能耗预算整体加速的假设可能并不正确。 (但它并不排除,但对于SKL-S来说,它可能仍然是一个整体的好的或中性的改变,如果他们认为它太糟糕,英特尔不会这么做。) –