基本架构

如下图所示,基于Ascend C开发的算子运行在AI Core上,对于初学者需要对硬件架构有基本认识,下文的编程模型基于硬件架构的抽象进行介绍,了解该内容能够更好的理解编程模型;对于需要完成高性能编程的深度开发者,更需要了解硬件架构相关知识,最佳实践中很多内容都以本章为基础进行介绍。

AI Core负责执行标量、向量和张量相关的计算密集型算子,包括三种基础计算单元:Cube(矩阵)计算单元、Vector(向量)计算单元和Scalar(标量)计算单元,同时还包含存储单元(包括硬件存储和用于数据搬运的搬运单元)和控制单元。硬件架构根据Cube计算单元和Vector计算单元是否同核部署分为耦合架构分离架构两种。如下产品型号对应的处理器架构模式如下:

耦合架构

耦合架构是指Cube计算单元和Vector计算单元同核部署,架构图如下图所示。下图中列出了计算架构中的存储单元和计算单元,箭头表示数据处理流向,MTE1/MTE2/MTE3代表搬运单元。

注:图中的虚线箭头表明

分离架构

如下图所示,分离架构将AI Core拆成矩阵计算(AI Cube,AIC)和向量计算(AI Vector,AIV)两个独立的核,每个核都有自己的Scalar单元,能独立加载自己的代码段,从而实现矩阵计算与向量计算的解耦,在系统软件的统一调度下互相配合达到计算效率优化的效果。AIV与AIC之间通过Global Memory进行数据传递,比耦合架构增加了两个Buffer:BT Buffer(BiasTable Buffer,存放Bias)和FP Buffer(Fixpipe Buffer,存放量化参数、Relu参数等)。