从硬件架构到软件工具链,存算一体大算力AI芯片的创新与实践( 二 )


从计算的角度来看 , 若干个Tensixcore可以同时完成一个大的Tensor计算 , 一个Tensor可以分解成若干个mini-Tensor , 每个mini-Tensor可以分布在不同的Tensixcore上运行 。 Tensixcore看起来也是相对简洁的设计 , 包括了一个CPUmatrixvectorEngine , 再加上近存部分 , 就是它的SRAM , 每一个Tensixcore里有一小块SRAM 。 除此之外 , 为了增强数据共享 , 还增加了Router和PacketManager的处理单元 , 来保证数据在不同的小Tensixcore之间 , 还有芯片之间做数据的传输和互联 。
从整个架构来看 , 可以看到它的计算是一个分布式的计算 , 它的存储也是一个分布式的存储 。 每个Tensixcore里边的SRAM组成了片内相当大的分布式存储资源 。 有了计算 , 有了存储 , 另外一个关键的问题就是数据传输 , 它使用了Network-on-chip(NoC)的数据传输解决方案 。
从设计角的度来看 , 也是一个非常简洁的设计 , 基本上可以认为把一个Tensixcore和NoC设计好之后 , 不断的执行copy-paste就可以组成一个大的芯片 。 因此 , 它有极好的可扩展性 。 Warmhole是Tenstorrent公司2021年的产品 , 前几年的产品还非常小 , 只是一个4×4的Tensixcore阵列 , 现在已经发展成一个非常大的阵列 。
从2017年到2021年 , 可以看到AI处理器的架构已经从传统计算和存储分离的架构 , 演变成了一个近存的架构 。 之前司鑫老师也讲过 , 后摩智能所做的是更进一步把存储和计算完全融合在一起 , 而不只是一个近存计算 。
从硬件架构到软件工具链,存算一体大算力AI芯片的创新与实践】二、后摩智能AI处理器架构
下面更详细介绍下后摩的AI处理器设计 。 从Macro到Cluster , 我们认为这是一种分布式计算和集中式计算的折衷 , 是一种tradeoff 。 如上图所示 , 最右边这是一个Macro , 就是刚才司鑫老师讲的一个存算单元 , 由若干个Macro组成一个MacroGrouparray 。 MacroGrouparray在Tile里面是TensorEngine最重要的一个计算单元 , Tile同时又是AICore里一个重要的组成部分 。 Tile内部除了TensorEngine以外 , 还包括了CPU、SpecialFunctionUnit(SFU)、VectorProcessor(VP)、还有SharedMemory&Controller 。 Tile有点类似于上面讲到的特斯拉FSDCore , 包括了非常大的算力 , 每个MacroGroup可以提供4TOPS算力 , 所以它类似一个大算力的Core 。
若干个Tile又可以组成一个AICore 。 AICore里边除了Tile之外 , 还包括了像神经网络处理或者AI计算里的前处理或后处理的处理单元、LDST单元 , 还有一个BusNode单元 , BusNode用来在Tile之间或者Core之间做数据共享和数据路由的控制来源 。
在SOC层面 , 若干个AICore又可以组成一个AICoreClueter , 通过总线将若干个AICore连接在一起 。 所以这是一个层次化的设计 , 若干个Macro可以组成一个MacroGroup , MacroGroup又组成了一个Tile , 若干个Tile可以组成一个AICore , 若干个AICore可以组成一个AICoreClueter , 那我们的算力就可以从最小的1个MacroGroup , 4TOPS算力不断叠加 , 最终可以在1个SoC里面实现几百TOPS算力 。
接下来我会以这4个层次为基础 , 详细介绍后摩智能的存算一体大算力AI芯片设计 。 首先是Macro存算单元 , 刚刚司鑫老师也有讲到 , 存算是有不同的路线可以选择的 , 包括了一些非易失存储的工艺 , 还有SRAM工艺 , 我们采用的方案是SRAM工艺 。 SRAM方案也有模拟和数字两种实现方式 , 我们把数字存算称为CIMD , 模拟存算称为CIMA 。
从硬件架构到软件工具链,存算一体大算力AI芯片的创新与实践
文章图片
上图的表格中对比了数字和模拟CIM实现的一些特点 。 从计算原理上来看 , CIMD是数字逻辑 , CIMA采用了诸如电流分压、时域延时 , 或者是电荷共享、电容耦合的计算方式;在运算精度方面 , CIMD可以达到8比特甚至更高的比特 , 比如16比特 , 但CIMA的精度会低一些 , 因为它受限于ADC的精度 , 还有它需要把模拟信号转换成数字信号 , 如果想达到比较高的能效比 , 一般来说只能实现小于等于4比特的计算精度;从工艺上来看 , CIMD与先进工艺相匹配 , 不会受到PVT波动的影响 , 但CIMA与先进工艺无法匹配 , 它需要非常复杂的校正模块 , 因为模拟电路会容易受干扰;在可靠性方面 , 数字电路抗干扰能力是比较强的 , 而模拟电路容易受到温度、噪声等因素的影响 , 所以可靠性会差一些 。