Alder Lake, Sapphire Rapids and Data Intensive Applications

Samuel Hu
Aug 19, 2021

--

从数据库/数据密集应用/数据中心这类应用测肤浅的看过去,肯定是最关注大小核和Sapphire Rapids(至强)。发布会上SPR围绕着P-core(大核)去讲架构,所以下面篇幅有限,就讲P-core和SPR,但是实际上在云、DC的实际部署中,对大小核的SOC肯定是有定制诉求的。

如何评价英特尔在 2021 架构日正式公布的 Alder Lake 系列处理器? — Bruce Wayne的回答 — 知乎 https://www.zhihu.com/question/481026148/answer/2076902527

近几年工业界和学术界对于数据库、数据中心等数据密集场景的微架构特征做了不少分析,以我之前这篇文章Micro-architectural analysis of in-memory OLTP: Revisited为例。概括的话,包括但不限于以下特征:

  1. 代码footprint太大,Icache miss率高,Icache stall严重。
  2. 数据量大,Dcache miss率高,Dcache stall严重。
  3. IPC太低
  4. 共享LLC下的指令和数据争抢
  5. 内存管理(锁闩的实现、数据分布等)不基于NUMA优化会影响扩展性
  6. Bad speculation高
  7. 高性能内存数据系统retire占比高
  8. Prefetching对于随机数据访问特征收益有限
  9. DRAM的高带宽影响延迟 …

P-Core的动作

Frontend-Bound:

  1. 6-wide decode,流水线宽度从4升级到6。不知道这种影响流水线架构的动作有多少penalty,但是单丛Frontend考虑,加上uop升级,对前端的收益还是比较很有意义的。
  2. iTLB升级到1倍,虽然Icache大小没变,但是对于数据系统这种代码footprint较大的场景,可以降低取指延迟。
  3. uop,一个是uop大小升级,不过相比于单线程提升1倍,SMT下提升有限。数据系统基本不开SMT差距非常大。uop的带宽从每cycle6个升级到8个,助力减少Frontend-bound.

Backend-Bound:

  1. 更宽,增加了1各LU,scalar load和256位及以下的Vector load都可以同时发射3个,512位同时发射两个,提升仿存效率显而易见。
  2. 更深,DTLB升级到96(50%+),L1D fill buffer升级到16(30%+),同样提升内存并行能力,提升仿存效率,优化Backend-bound.
  3. 更大,L2$最大支持2M(数据中心场景),配合48个demand miss,提升MLP和仿存效率。
  4. Prefetcher增强,L1$和L2$的prefetcher都号称增强,不过不知道效果如何。

Bad speculation:

  1. 智能、精确分支预测, L2 BTB提升一倍以上,据称是业界最强,但是“智能化”缺少作证,需要实测。这些对提升if-else,switch,vtable,index traversal等场景对于分支预测的正确性,优化bad speculation占比高的场景。

Retire:

Alder Lake的动作

  1. ALU增加到5个port,LEA延迟一个cycle,提神retire效率,这两个应该是数据系统最常使用的指令之一了。
  2. 6 wide allocation + 12 execution ports, 以高性能内存数据库(比如VoltDB)为代表的特别优化后的场景,data stall被优化后retire的瓶颈较高。这一点是定向优化,会有直接受益。(值得一提的是,E-Core(小核)升级到了17个execution port)
  3. ROB (reorder buffer)升级到512,,只比M1的630要低点, 增强乱序执行能力,加速指令的执行(retire)。

SOC(Sapphire Rapids)的动作:

  1. LLC容量升级1倍。很多数据系统的LLC miss在30%以上,这个会被有效优化。
  2. HBM,会出一个带HBM的版本,每个CPU一个,主要针对HPC和AI,但是AP系统肯定也会收益。
  3. UPI 2.0,多路多核下的scaling,延迟和带宽都会提升,对于全局数据结构的访问、锁闩都会有收益。

--

--