【CANN训练营】昇腾训练执行与推理部署系列(一)

        本章将会介绍昇腾软硬件基础知识,包括昇腾AI软硬件架构和异构计算架构CANN

Ascend 310 AI处理器逻辑架构

Ascend 910 AI处理器逻辑架构

重点!AI Core在昇腾处理器钟的位置

        AI Core是昇腾AI处理器的计算核心,采用华为自研的达芬奇架构,通常也被叫做DaVinci Core。

       

达芬奇架构主要部分:

        1、计算单元:包含三种基础计算资源(矩阵计算单元、向量计算单元、标量计算单元)

        2、存储系统:AI Core的片上存储单元(Cache和Buffer)和相应的数据通路构成了存储系统。

        3、控制单元:整个计算过程提供了指令控制,相当于AI Core的司令部,负责整个AI Core的运行。(AI加速运转的控制输出

AI Core:计算单元---加速原理

        矩阵计算单元(Cube Unit):

        矩阵计算单元和累加器主要完成矩阵相关运算。一拍完成一个fp16的16x16与16x16矩阵乘(4096);如果是int8输入,则一拍完成 16*32与 32*16 矩阵乘(8192)。
 

        向量计算单元(Vector Unit) :
        实现单向量或双向量之间的计算,功能覆盖各种基本的计算类型和许多定制的计算类型,主要包括FP16/FP32/Int32/lnt8等数据类型的计算。一拍可以完成两个128长度fp16类型的向量相加/乘,或者64个fp32/int32类型的向量相加/乘。


        标量计算单元(Scalar Unit):
        负责标量的计算,相当于一个微型CPU,控制整个AICore的运行,完成整个程序的循环控制、分支判断,可以为Cube/ector提供数据地址和相关参数的计算,以及基本的算术运算。
        

        累加器:
        把当前矩阵乘的结果与前次计算的中间结果相加,可以用于完成卷积中加bias操作。

AI Core: 计算单元-Cube Unit

AI Core: 存储系统

        存储转换引擎:

        负责AI Core内部数据在不同Buffer之间的读写管理及一些格式转换操作,比如填充(padding)、转置(transpose)等。存储转换引擎还可以通过总线接口直接访问AI Core之外的更低层级的缓存。

        缓冲区:

        包含L1缓冲区,LOA/LOB缓冲区、LOC缓冲区、统一缓冲区、标量缓冲区。

        缓冲区可用来暂时保留需要频繁重复使用的输入数据,不需要每次都通过总线接口到AI Core的外部读取,从而减少总线上数据访问频次的同时也降低了总线上产生拥堵的风险,达到节省功耗、提高性能的效果。

        缓冲区可用来存放神经网络中每层计算的中间结果,从而在进入下一层计算时方便的获取数据。相比较通过总线读取数据的带宽低,延迟大,通过缓冲区可以大大提升计算效率。

        寄存器:

        AI Core中的各类寄存器资源主要是标量计算单元在使用

AI Core:控制单元

        控制单元主要组成部分为系统控制模块、指令缓存、标量指令处理队列、指令发射模块、矩阵运算队列、向量运算队列、存储转换队列和事件同步模块

系统控制模块:

控制任务块(AI Core最小任计算任务粒度)的执行进程,在任务块执行完成后,系统控制模块会进行中断处理和状态申报。如果执行过程出错,会把执行的错误状态报告给任务调度器。

指令缓存:

在指令执行过程中,可以提前预取后续指令,并一次读入多条指令进入缓存,提升指令执行效率

标量指令处理队列:

指令被解码后便会被导入标量队列中,实现地址解码与运算控制,这些指令包括矩阵计算指令、向量计算指令以及存储转换指令等;

指令发射模块:

读取标量指令队列中配置好的指令地址和参数解码,然后根据指令类型分别发送到对应的指令执行队列中,而标量指令会让留在标量指令指令队列中进行后续执行;

指令执行队列:

指令执行队列由矩阵运算队列、向量运算队列和存储转换队列组成,不同的指令进入相应的运算队列,队列中的指令按进入顺序执行。

事件同步模块:

时刻控制每条指令流水线的执行状态,并分析不同流水线的依赖关系,从而解决指令流水线之间的数据依赖和同步的问题。

异构计算架构CANN(Compute Architecture for Neural Networks)

AI异构计算架构CANN的定义

CANN是华为争对AI场景推出的异构计算架构,通过提供多层次的编程接口,支持用户快速构建基于Ascend平台的AI应用与业务。

CANN包含

1、统一APP编程语言:提供一套标准的AscendCL编程接口,对应用程序开发者屏蔽底层多种芯片差异,提升用户APP编程易用性。

2、统一网络构图接口:提供了标准的昇腾计算AIR,支持多框架,支持用户在昇腾芯片上快速部署神经网络业务

3、高性能计算引擎以及算子库:通过高性能编译引擎/执行引擎/调优引擎和预置高性能算子库,支撑客户快速部署神经网络业务、降低部署成本并最大程度发挥昇腾计算能力

4、基础服务:驱动、虚拟化、媒体、集合通信等能力

AscendCL 昇腾计算语言开发接口

昇腾计算服务层

昇腾计算编译层

昇腾计算执行层

昇腾计算基础层

五个组件:
1、RMS:资源管理,负责管理与调度昇腾设备的计算、显存等关键资源

2、CMS:通信管理,负责提供片内、片间高效通信

3、DMS:设备管理,负责对昇腾设备进行配置、切分、升级、故障检测等管理

4、DRV:芯片IP驱动,负责使能硬件

5、UTILITY:公共服务,负责提供基础库和系统维测能力

五个竞争力:

1、高性能:微秒级确定性调度、数据零拷贝等技术打造高性能数据面

2、高可信:五道安全防线构建昇腾解决方案可信底座

3、归一化:套架构-接口-代码支撑多芯、多板、多场景

4、弹性:端/边/云灵活适应,虚机/容器/裸金属快速部署,算力细粒度按需切分

5、开源开放:Ascend社区、Linux社区开源两步走,构建腾基础生态

  • 28
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值