总体架构
不同于传统的支持通用计算的CPU 和GPU,也不同于专用于某种特定算法的专用芯片ASIC,达芬奇架构本质上是为了适应某个特定领域中的常见应用和算法,通常称为“特定域架构”(Domain Specific Architecture,DSA)芯片。昇腾AI处理器的计算核心主要由AI Core构成,负责执行向量和张量相关的计算密集型算子。
AI Core采用了达芬奇架构,其基本结构如图2-9所示,从控制上可以看成是一个相对简化的现代微处理器的基本架构。它包括了三种基础计算资源: 矩阵计算单元(Cube Unit)、向量计算单元(Vector Unit)和标量计算单元(Scalar Unit)。这三种计算单元分别对应了张量、向量和标量三种常见的计算模式,在实际的计算过程中各司其职,形成了三条独立的执行流水线,在系统软件的统一调度下互相配合达到优化的计算效率。此外在矩阵计算单元和向量计算单元内部还提供了不同精度、不同类型的计算模式。
AI Core内部架构如下图所示。
AI Core中包含计算单元、存储单元、与控制单元。
- 计算单元
AI Core中的执行单元主要包括:Cube,Vector和Scalar,完成AI Core中不同类型的数据计算。
- 存储单元
AI Core中存在内部存储,AI Core需要把外部存储中的数据加载到内部存储中,才能完成相应的计算。AI Core的内部存储包括:L1 Buffer,L0 Buffer,Unified Buffer,GPR(General-Purpose Register:通用寄存器),SPR(Special-Purpose Register:专用寄存器)和Scalar Buffer。
为了配合AI Core中的数据传输和搬运,AI Core中还包含BIU(Bus Interface Unit),MTE1(Memory Transfer Engine,内存传输引擎),MTE2,MTE3。其中BIU为AI Core与总线交互的接口;MTE为数据搬运单元,完成不同Buffer之间的数据搬运。
- 控制单元
AI Core中的控制单元主要包括:系统控制模块(System Control),标量指令处理队列(Scalar PSQ),指令发射模块(Instr. Dispatch),矩阵运算队列(Cube Queue),向量运算队列(Vector Queue),存储转换队列(MTE Queue)和事件同步模块(Event Sync)。系统控制模块负责指挥和协调AI Core的整体运行模式,配置参数和实现功耗控制等。标量指令处理队列主要实现控制指令的译码。当指令被译码并通过指令发射模块顺次发射出去后,根据指令的不同类型,将会分别被发送到矩阵运算队列、向量运算队列和存储转换队列。