Skip to content

hotchip33

第33届hotchip大会总结


samsung PIM

介绍了三星的存内计算架构。要理解它的架构,就需要先了解存内计算

什么是存内计算

冯诺依曼的架构是计算操作和内存操作分离的,尤其是现在主流的RISC架构,有专门的load/store指令负责内存操作,其他指令负责直接对寄存器进行计算。冯诺依曼架构在构建之初是假设处理器和内存速度很接近,但现在计算单元的性能随着摩尔定律一路飙升,而存储单元相较而言性能提升不大,因此,DRAM的性能已经成为了整个系统性能的重要瓶颈,也就是所谓的“内存墙”,这限制了处理器的计算性能和能效比。我们可以理解为CPU与内存之间的距离太远导致了内存墙,就像情侣异地恋情,因为举例限制了感情的发展,要想感情有突破,要么男的去女的城市,要么女的去男的城市。很显然,在AI这种数据密集的场景中,似乎把计算搬到离存储更近的地方更能提高整体性能和能效比。因此就有了存内计算。

存内计算(PIM processing-in-memory)可以突破内存瓶颈。尽管有很多不同的增加带宽的方法,但由于受到PCB布线,功耗及发热量,CPU接口数量等物理上的限制,这些方法很难有突破性的提升。 PIM旨在提升带宽密集型workloads(目前主要是AI领域)的性能,通过减少内存数据搬移来提升能量效率。

存内计算的本质是会使用模拟计算(如果不是使用模拟信号,那似乎和冯诺依曼架构也没什么区别吧),这也就意味着其目前只能应用在AI市场。而且存内计算技术想要突破,要在存储结构上做改进,使得存储单元更适合做计算。 存算一体目前精度不高,大概在8bit, 更适合端的嵌入式AI场景。

三星的Aquabolt-XL架构

  • 一个16路的FP16 SIMD数组,支持FP16乘和加
  • risc风格的32bit指令集,一共三种指令类型共计9条指令
  • 指令参数可以是 GRF_A, GRF_B 向量寄存器,SRF标量寄存器或者bank row buffer.

三星提供了一整套的software stack来支持PIM.


graphcore colossue Mk2 IPU

众核的翘楚,目前Mk2 有1472个核,每个核带有624KiB的sram, 采用TSMC的7nm工艺,达到了823mm2 (这么大的面积,SRAM占了一半, 逻辑单元占了¼), 主频1.325GHz, 算力可达250Tflop/s

./graphcore_mk2.png

从上图的性能统计能够看出,graphcore的优势在于fp32的算力, 由于Mk2内部达到了897MiB的SRAM, 估计功耗表现要比A100好。

每个核被称为一个Tile, 除此之外,还有一个Exchange.文档中没有对tile及exchange做过多的介绍,也没法简单的通过文档获取一些设计信息。但我们能够看出tile不是一个简单的32bit的单发射或双发射CPU。 它有7个程序上下文,6个轮询的流水线slot, 每个slot执行⅙个clock.

./graphcore_mk2_tile.png

它有一个强大的浮点单元, 并且支持一些超越函数。

下面是它在拆分kernel时的策略, 可以看出,它还是拆分成很小的矩阵来进行运算,并且中间结果采用fp32进行累加,至于为什么这么拆分,单从上面简单的tile结构图上还很难分析清楚。

./graphcore_mk2_calc.png

下面是运行bert-l 网络的时候的整体运行图,我们可以看出,所有tile都是按照sync,exchange,compute这三个状态进行循环,而且工具链对于整个网络的优化做的已经很好了,负载比较均衡。

./graphcore_mk2_bert.png

graphcore给出了不用HBM(在存储单元上和DDR没有太大差异,主要是将内存和主芯片封在一个芯片里面,这样就跨越了封装对芯片引脚数目的限制,大大缩短了dram和主芯片直接的距离,同时采用3D堆叠技术,直接通过TSV打孔竖直堆叠在一起,高端的DDR也采取这种方式,当然这种方式对散热要求更高)的理由

  • 内存容量决定了AI能做哪些事情,带宽只是限制了有多快
  • GPU和TPU尝试使用HBM同时解决带宽和容量问题
  • HBM非常昂贵,有容量限制,要多花100W美元以上
  • IPU(graphcore称自家为IPU)使用SRAM来解决带宽问题,使用DDR来解决容量问题
  • HBM的价格大概是DDR4的10倍($/GB), 40GB的HBM价格大概是一个reticle-sized处理器封装的3倍,IPU这种基于DDR的系统可以把省下来的钱用于生产更多的处理器

在DRAM中的权重和feature数据如何与SRAM进行配合,高效的进行运算呢?


ARM neoverse

介绍了ARM第二代高性能基础架构CPU和系统IP。2018年arm推出了Neoverse处理器平台,旨在针对数据中心处理器市场,2019年搞定了N1版本,20年又发布了N2版本。

neoverse分为三大系列:

  • V-serise 主打高性能,支持SVE 2x256b, 32-128 cores, 80-350W
  • N-serise 性能,功耗,面积均衡, 12-36 cores, 30-80W
  • E-serise 强调能效,功耗和面积, 4-16 cores, 20-35W

./arm_neoverse_roadmap.png