文档
注册

硬件架构抽象

Ascend C基于硬件抽象架构进行编程, 进行屏蔽不同硬件之间的差异。

图1 硬件架构抽象

AI Core中包含计算单元、存储单元、搬运单元等核心组件。

  • 计算单元包括了三种基础计算资源:Cube计算单元、Vector计算单元和Scalar计算单元。
  • 存储单元包括内部存储和外部存储:
    • AI Core的内部存储,统称为Local Memory,对应的数据类型为LocalTensor。由于不同芯片间硬件资源不固定,可以为UB、L1、L0A、L0B等。
    • AI Core能够访问的外部存储称之为Global Memory,对应的数据类型为GlobalTensor。
  • DMA(Direct Memory Access)搬运单元:负责在Global Memory和Local Memory之间搬运数据。
AI Core内部核心组件及组件功能详细说明如下表。
表1 AI Core内部核心组件

组件分类

组件名称

组件功能

计算单元

Scalar

执行地址计算、循环控制等标量计算工作,并把向量计算、矩阵计算、数据搬运、同步指令发射给对应单元执行。

Vector

负责执行向量运算。

Cube

负责执行矩阵运算。

存储单元

Local Memory

AI Core的内部存储。

搬运单元

DMA(Direct Memory Access)

负责在Global Memory和Local Memory之间搬运数据,包含搬运单元MTE2(Memory Transfer Engine,数据搬入单元),MTE3(数据搬出单元)等。

开发者在理解硬件架构的抽象时,需要重点关注如下异步指令流、同步信号流计算数据流三个过程:

  • AI Core内部的异步并行计算过程:Scalar计算单元读取指令序列,并把向量计算、矩阵计算、数据搬运指令发射给对应单元的指令队列,向量计算单元、矩阵计算单元、数据搬运单元异步的并行执行接收到的指令。该过程可以参考图1中蓝色箭头所示的指令流。
  • 不同的指令间有可能存在依赖关系,为了保证不同指令队列间的指令按照正确的逻辑关系执行,Scalar计算单元也会给对应单元下发同步指令。各单元之间的同步过程可以参考图1中的绿色箭头所示的同步信号流。
  • AI Core内部数据处理的基本过程:DMA搬入单元把数据搬运到Local Memory,Vector/Cube计算单元完成数据计算,并把计算结果写回Local Memory,DMA搬出单元把处理好的数据搬运回Global Memory。该过程可以参考图1中的红色箭头所示的数据流。
搜索结果
找到“0”个结果

当前产品无相关内容

未找到相关内容,请尝试其他搜索词