计算单元是AI Core中提供强大算力的核心单元,相当于AI Core的主力军。AI Core计算单元主要包含矩阵计算单元、向量计算单元、标量计算单元和累加器,矩阵计算单元和累加器主要完成与矩阵相关的运算,向量计算单元负责执行向量运算,标量计算单元主要负责各类型的标量数据运算和程序的流程控制。

 矩阵计算单元

上图表示一个矩阵A和另一个矩阵B之间的乘法运算C=A*B,其中M表示矩阵A的行数,K表示矩阵A的列数以及矩阵B的行数,N表示矩阵B的列数。这个矩阵乘法在CPU如何实现?

for (m=0; m<M, m++)for (n=0; n<N, n++)for (k=0; k<K, k++)
C[m][n] += A[m][k]*B[k][n]

该程序需要用到3个循环进行一次完整的矩阵相乘计算,如果在一个单发射的CPU上执行至少需要MKN个时钟周期才能完成,当矩阵非常庞大时执行过程极为耗时。

由于常见的深度神经网络算法中大量的使用了矩阵计算,达芬奇架构中特意对矩阵计算进行了深度的优化并定制了相应的矩阵计算单元来支持高吞吐量的矩阵处理。通过精巧设计的定制电路和极致的后端优化手段,矩阵计算单元可以用一条指令完成两个16*16矩阵的相乘运算(标记为16^3,也是Cube这一名称的来历),等同于在极短时间内进行了16^3=4096个乘加运算,并且可以实现FP16的运算精度。如图3-7所示,矩阵计算单元在完成AB=C的矩阵运算时,会事先将矩阵A按行存放在输入缓冲区中,同时将矩阵B按列存放在输入缓冲区中,通过矩阵计算单元计算后得到的结果矩阵C按行存放在输出缓冲区中。在矩阵相乘运算中,如图3-7所示,矩阵C的第一元素由矩阵A的第一行的16个元素和矩阵B的第一列的16个元素由矩阵计算单元子电路进行16次乘法和15次加法运算得出。矩阵计算单元中存在256个矩阵计算子电路组成,可以由一条指令并行完成矩阵C的256个元素计算。

向量计算单元

AI Core中的向量计算单元主要负责完成和向量相关的运算,能够实现向量和标量,或双向量之间的计算,功能覆盖各种基本和多种定制的计算类型,主要包括FP32、FP16、INT32和INT8等数据类型的计算。

如上图所示,向量计算单元可以快速完成两个FP16类型的向量相加或者相乘。向量计算单元的源操作数和目的操作数通常都保存在输出缓冲器中。对向量计算单元而言,输入的数据可以不连续,这取决于输入数据的寻址模式。

向量计算单元可以作为矩阵计算单元和输出缓冲区之间的数据通路和桥梁。矩阵运算完成后的结果在向输出缓冲区传递的过程中,向量计算单元可以顺便完成在深度神经网络尤其是卷积神经网络计算中常用的ReLU激活函数、池化等功能并实现数据格式的转换。经过向量计算单元处理后的数据可以被写回到输出缓冲区或者矩阵计算单元中,以等待下一次运算。所有的这些操作都可以通过软件配合相应的向量单元指令来实现。向量计算单元提供了丰富的计算功能,也可以实现很多特殊的计算函数,从而和矩阵计算单元形成功能互补,全面完善了AI Core对非矩阵类型数据计算的能力。

标量计算单元

标量计算单元负责完成AI Core中与标量相关的运算。它相当于一个微型CPU,控制整个AI Core的运行。标量计算单元可以对程序中的循环进行控制,可以实现分支判断,其结果可以通过在事件同步模块中插入同步符的方式来控制AI Core中其它功能性单元的执行流水。它还为矩阵计算单元或向量计算单元提供数据地址和相关参数的计算,并且能够实现基本的算术运算。其它复杂度较高的标量运算则由专门的AI CPU通过算子完成。

在标量计算单元周围配备了多个通用寄存器(General Purpose Register,GPR)和专用寄存器(Special Purpose Register,SPR)。这些通用寄存器可以用于变量或地址的寄存,为算术逻辑运算提供源操作数和存储中间计算结果。专用寄存器的设计是为了支持指令集中一些指令的特殊功能,一般不可以直接访问,只有部分可以通过指令读写。

AI Core中具有代表性的专用寄存器包括Core ID(用于标识不同的AI Core),VA(向量地址寄存器)以及STATUS(AI Core运行状态寄存器)等。软件可以通过监视这些专用寄存器来控制和改变AI Core的运行状态和模式。

更多内容,请关注昇腾开发者社区

作者:Torrenza

解密昇腾AI处理器--DaVinci架构(计算单元)相关推荐

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

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

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

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

  3. 解密昇腾AI处理器--DaVinci架构(总览)

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

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

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

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

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

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

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

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

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

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

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

  9. 助力高校学子快速上手!昇腾AI处理器应用开发实践一览|华为昇腾师资培训沙龙北京场...

    如今,AI技术已渗透到各个行业,随着AI技术应用的蓬勃发展,相关专业的人才缺口也日益增大. 为了助力高校人工智能领域人才培养及学科建设,华为通过昇腾师资培训沙龙,面向广大高校教师提供昇腾全栈全场景AI ...

最新文章

  1. 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(13)-系统日志和异常的处理③
  2. oj上c语言编译错误,名字的漂亮度(华为OJ)C语言版本(提示格式错误,但是编译器没有报错,知道的网友提个意见)...
  3. Tomcat架构解析之3 Connector NIO
  4. 【推荐系统】一文梳理序列化推荐算法模型进展
  5. 从0开始架构一个IOS程序——03 — -分包用添加pch全局引用文件
  6. macos支持exfat吗_在Windows上使用VMware Workstation虚拟机安装macOS
  7. Android 系统(215)---Android O_GO后台启动服务改动
  8. 阿里巴巴是怎么处理大数据的?重磅揭秘!
  9. ysoserial exploit/JRMPClient
  10. codeforce 760 B Frodo and pillows 二分搜索
  11. 深度学习(自然语言处理)RNN、LSTM、TextCNN
  12. HTML的style属性(替代font等标签)
  13. 如果有一天你退步了,请记住下面5个网站,让你终身受益
  14. 基因组学(Geonomics)
  15. react 的样式写法
  16. ES7-ES11新特性汇总
  17. linux 移除用户所在的组,Linux用户及用户组添加和删除操作
  18. Argo-DCS数据传输笔记
  19. mingw64官方下载地址
  20. educoder实训平台----简历表页面的制作

热门文章

  1. 深度学习笔记(26) 卷积神经网络
  2. 查找目录下固定文件目录以及路径(自然排序)
  3. VS中生成、清理项目、调试、開始运行(不调试)、Debug 和 Release等之间的差别...
  4. Linux RPM、YUM、APT包管理工具
  5. BZOJ3211: 花神游历各国
  6. 浏览器加载渲染HTML、DOM、CSS、 JAVASCRIPT、IMAGE、FLASH、IFRAME、SRC属性等资源的顺序总结...
  7. Ajax返回值问题思考
  8. shell下后台挂起
  9. hive解绑邮箱_django使用QQ企业邮箱发送邮件
  10. CCF202012-1 期末预测之安全指数