花粉俱乐部  logo 花粉俱乐部  因为热爱
搜索 |
[极客讨论]

麒麟990 5G芯片的NPU如何做到算力暴涨(四)

[复制帖子标题和链接]

691

huafans01327389996  已臻大成  发表于 2019-9-9 15:50:54 来自:荣耀Note10 更大更快更Cool

最新回复 2019-9-13 22:41:30

达芬奇架构的核心设计原则就是要以最小的代价去处理这些复杂的张量运算,从而实现最低的能耗。
达芬奇架构具体怎么做呢?
我们不妨先通过它的核心架构图来过一遍流程: 114731_714589702_6_728_352.jpg 在上面这张图中,AI运算的数据通过Buffer L0A、L0B被传送到3D Cube矩阵乘法单元,数据经过矩阵运算后,结果输出到Buffer L0C,存放在这里的数据还需要输送到Vector向量计算单元完成向量计算,类似DSP,主要是池化(pooling)/padding、BN运算、激活,加法等处理,如果得到最终的结果,会传输给Unified Buffer。
另外还有一个Scalar标量运算单元,负责标量运算,这里主要是前面Cube、Vector等指令的地址和参数计算以及基本的算术运算,同时还负责整个程序的循环控制和分支判断等工作,它的最终结果也会输出到Unified Buffer。 114731_714589702_7_728_242.jpg 这基本上就是达芬奇架构系统运算的核心过程,它有一个很重要的特点,就是以3D Cube的矩阵运算为基础,引入Vector向量计算单元作灵活的调整。因为在AI运算中,大量的运算会是矩阵乘法,例如常用的卷积神经网络运算就是通过矩阵乘法来计算的,所以,华为达芬奇架构针对矩阵运算进行加速,可以大幅提高单位面积下的AI算力。而对于之后的向量、激活等运算,可能比较灵活,所以以单独的模块进行灵活处理,这样就增加了运算系统整体的灵活性,可以大大提高运算的效率。

而3D Cube是怎样加速矩阵运算的呢?它的基本思路是以矩阵处理阵列的立体形式来处理MAC中的乘加运算,通俗来讲就是同时从三个面输入计算的数据,并且同时拥有16*16*16也就是4096个计算单元,也就是说当需要进行4096次运算时,2D结构需要64行*64列才能计算,3D Cube只需要16*16*16的结构就能算出,从而大大减小运算周期、降低时延,提高利用率。所以3D Cube也被华为称为“达芬奇魔方”。
huafans01327389996  已臻大成  发表于 2019-9-13 22:41:30 来自:荣耀Note10 更大更快更Cool
欢迎各位花粉朋友们踊跃留言,加强沟通交流切磋,以便增进互动,大家有什么观点或者看法,请在评论区留言即可。
您需要登录后才可以回帖 登录 | 立即注册

用户组申请
版规
最新精华
  • 随手拍九月合辑(夜景篇)
  • 随手拍九月合集之人文篇
  • 随手拍九月合辑之风光篇
  • 随手拍九月合集之微距篇

工具下载

  • 花粉客户端官方

    Make it Possible

粤ICP备19015064号-4|备案主体编号:44201919072182| 粤公网安备 44190002003939号

Copyright © 2012-2019 华为终端有限公司 版权所有

快速回复 返回顶部 返回列表