不同于传统的支持通用计算的CPU和GPU,也不同于专用于某种特定算法的专用芯片ASIC,达芬奇架构本质上是为了适应某个特定领域中的常见的应用和算法,通常称之为“特定域架构(Domain Specific Architecture,DSA)”芯片。

昇腾AI芯片的计算核心主要由AI Core构成,负责执行标量、向量和张量相关的计算密集型算子。AI Core采用了达芬奇架构,其基本结构如图3-2所示,从控制上可以看成是一个相对简化的现代微处理器的基本架构。它包括了三种基础计算资源:矩阵计算单元(Cube Unit)、向量计算单元(Vector Unit)和标量计算单元(Scalar Unit)。这三种计算单元分别对应了张量、向量和标量三种常见的计算模式,在实际的计算过程中各司其职,形成了三条独立的执行流水线,在系统软件的统一调度下互相配合达到优化的计算效率。此外在矩阵计算单元和向量计算单元内部还提供了不同精度、不同类型的计算模式。AI Core中的矩阵计算单元目前可以支持INT8、INT4和FP16的计算;向量计算单元目前可以支持FP16和FP32的计算。

为了配合AI Core中数据的传输和搬运,围绕着三种计算资源还分布式的设置了一系列的片上缓冲区,比如用来放置整体图像特征数据、网络参数以及中间结果的输入缓冲区(Input Buffer,IB)和输出缓冲区(Output Buffer,OB),以及提供一些临时变量的高速寄存器单元,这些寄存器单元位于各个计算单元中。这些存储资源的设计架构和组织方式不尽相同,但目的都是为了更好的适应不同计算模式下格式、精度和数据排布的需求。这些存储资源和相关联的计算资源相连,或者和总线接口单元(Bus Interface Unit,BIU)相连从而可以获得外部总线上的数据。

在AI Core中,输入缓冲区之后设置了一个存储转换单元(Memory Transfer Unit,MTE)。这是达芬奇架构的特色之一,主要的目的是为了以极高的效率实现数据格式的转换。比如前面提到GPU要通过矩阵计算来实现卷积,首先要通过Im2Col的方法把输入的网络和特征数据重新以一定的格式排列起来。这一步在GPU当中是通过软件来实现的,效率比较低下。达芬奇架构采用了一个专用的存储转换单元来完成这一过程,将这一步完全固化在硬件电路中,可以在很短的时间之内完成整个转置过程。由于类似转置的计算在深度神经网络中出现的极为频繁,这样定制化电路模块的设计可以提升AI Core的执行效率,从而能够实现不间断的卷积计算。

AI Core中的控制单元主要包括系统控制模块、标量指令处理队列、指令发射模块、矩阵运算队列、向量运算队列、存储转换队列和事件同步模块。系统控制模块负责指挥和协调AI Core的整体运行模式,配置参数和实现功耗控制等。标量指令处理队列主要实现控制指令的译码。当指令被译码并通过指令发射模块顺次发射出去后,根据指令的不同类型,将会分别被发送到矩阵运算队列、向量运算队列和存储转换队列。三个队列中的指令依据先进先出的方式分别输出到矩阵计算单元、向量计算单元和存储转换单元进行相应的计算。不同的指令阵列和计算资源构成了独立的流水线,可以并行执行以提高指令执行效率。如果指令执行过程中出现依赖关系或者有强制的时间先后顺序要求,则可以通过事件同步模块来调整和维护指令的执行顺序。事件同步模块完全由软件控制,在软件编写的过程中可以通过插入同步符的方式来指定每一条流水线的执行时序从而达到调整指令执行顺序的目的。

在AI Core中,存储单元为各个计算单元提供转置过并符合要求的数据,计算单元返回运算的结果给存储单元,控制单元为计算单元和存储单元提供指令控制,三者相互协调合作完成计算任务。

更多信息,请关注昇腾开发者社区

作者:Torrenza

解密昇腾AI处理器--DaVinci架构(总览)相关推荐

  1. 解密昇腾AI处理器--DaVinci架构(存储系统)

    AI Core的片上存储单元和相应的数据通路构成了存储系统.众所周知,几乎所有的深度学习算法都是数据密集型的应用.对于昇腾AI芯片来说,合理设计的数据存储和传输结构对于最终系统运行的性能至关重要.不合 ...

  2. 解密昇腾AI处理器--DaVinci架构(控制单元)

    在达芬奇架构下,控制单元为整个计算过程提供了指令控制,相当于AI Core的司令部,负责整个AI Core的运行,起到了至关重要的作用.控制单元的主要组成部分为系统控制模块.指令缓存.标量指令处理队列 ...

  3. 解密昇腾AI处理器--DaVinci架构(计算单元)

    计算单元是AI Core中提供强大算力的核心单元,相当于AI Core的主力军.AI Core计算单元主要包含矩阵计算单元.向量计算单元.标量计算单元和累加器,矩阵计算单元和累加器主要完成与矩阵相关的 ...

  4. 解密昇腾AI处理器--Ascend310简介

    Ascend310 AI处理器规格 Ascend310 AI处理器逻辑架构 昇腾AI处理器本质上是一个片上系统(System on Chip,SoC),主要可以应用在和图像.视频.语音.文字处理相关的 ...

  5. 【华为云技术分享】昇腾AI处理器软件栈--总览

    昇腾AI软件栈提供了计算资源.性能调优的运行框架以及功能多样的配套工具,是一套完整的解决方案,可以使昇腾AI处理器发挥出极佳的性能. 昇腾AI软件栈可以分为神经网络相关软件模块.工具链以及其它软件模块 ...

  6. 华为昇腾 AI 处理器架构大揭秘! | 华为昇腾师资培训沙龙武汉场

    「无 AI,不科技」.在AI 产业逐步落地成熟的今天,AI 人才的争夺战已打响,甚至有不少网友预测,未来AI 开发将成为人人必备的技能之一.不过,现实来看,无论是 AI 三驾马车中的数据.算力.算法, ...

  7. 【读一本书】《昇腾AI处理器架构与编程》--神经网络基本知识学习(1)

    今天我们要讲的主题是 -- 神经网络基础知识. 1 聊聊为啥写这个系列 我最开始玩公众号的前因,其实在第一篇博客里就提过了,主要是为了督促自己学习并记录.分享自己的想法.因此断断续续地写了20+pyt ...

  8. 【读一本书】《昇腾AI处理器架构与编程》--神经网络基础知识(2)

    1 卷积神经网络:输入层 之前提到多层感知机的参数太多,导致训练耗时长并且对图像处理也不具有优势,因此大神们 就提出了多层神经网络,其中最经典的是卷积神经网络(Convolution Neural N ...

  9. 昇腾AI处理器软件栈--数字视觉预处理(DVPP)

    数字视觉预处理模块作为昇腾AI软件栈中的编解码和图像转换模块,为神经网络发挥着预处理辅助功能.当来自系统内存和网络的视频或图像数据进入昇腾AI处理器的计算资源中运算之前,由于Davinci架构对输入数 ...

最新文章

  1. 业余快速学习虚幻引擎教程
  2. 三相四线怎样查漏电_制冷机组三相四线与三相五线有什么区别?
  3. 如何向mysql导入数据库(。sql文件)
  4. java 获取sqlsession_获取Java的MyBatis框架项目中的SqlSession的方法
  5. 上元之夜丨《大数据》与您共度佳节!
  6. SpringCloud Alibaba-Nacos 的使用
  7. 2021年最新执子之手唯美表白HTML网站源码
  8. 编译:ffmpeg,精简ffmpeg.exe
  9. 免扣(抠)PNG格式图片,让你告别抠图之痛!
  10. CNN更新换代!性能提升算力减半,还即插即用
  11. 2020年书法落款_快来排排2020鼠年书法落款时间表,收!
  12. hbase权限管理(访问控制标签ACL)
  13. 整理几款实用javascript富文本编辑器
  14. react ssr方法
  15. 软件测试方法之正交试验测试方法
  16. 发送网页内容到onenote_如何直接在网页上做笔记并保存到 Onenote?
  17. MyBatis学习笔记三——映射配置文件
  18. java qua_Qua Vadis Eclipse? 第一部分
  19. cgb2107-day08
  20. Stochastic Gradient Hamiltonian Monte Carlo论文笔记

热门文章

  1. 机器人动力学知识参考资料
  2. ROS笔记(9) launch文件
  3. 怎么用纸做圆形的盒子_如何培养孩子逻辑思维能力?抓住0-8岁关键期,聪明的家长这样做...
  4. 【Python3爬虫】快就完事了--使用Celery加速你的爬虫
  5. BZOJ4448:[SCO2015]情报传递
  6. nginx(五)nginx与php的安装配置
  7. J2SE7规范_2013.2_类型_命名
  8. Oracle中查看所有表和字段
  9. classes目录绝对路径
  10. 单片机c语言出租车计时程序,基于单片机出租车计价器课题设计c语言编写(样例3)...