麒麟990 5G芯片的NPU如何做到算力暴涨?华为自研达芬奇架构详解

2019-09-09 11:10IT之家 - 汐元

5G时代正一步一个脚印地走向你我,而随着5G商用部署的规模日益全面,技术日益成熟,应用场景也将越来越广泛,连带着的,也将令更多的技术获得更广阔的应用空间,例如AI。事实上,AI也是未来的大势所趋,正因看到了这个趋势,智能手机厂商们也早早地在手机终端中开始布局和应用AI。在9月6日,华为于德国柏林IFA 2019展会上召开的麒麟芯片新品发布会上,正式推出了全新的麒麟990系列芯片。而在麒麟990系列芯片中,AI恰好是一大看点。

相信大家还记得,华为在2017年推出的麒麟970芯片是全球首款集成NPU神经网络单元的智能手机AI计算平台,而在2018年推出的麒麟980芯片上又全球首次集成了双核NPU,而在今年的麒麟990 5G上,AI能力再次实现了升级,它采用了基于华为自研达芬奇架构的全新大核+微核架构的NPU。

麒麟990 5G,全新架构的NPU,全面升级的AI能力

全新架构的NPU让麒麟990 5G保持了行业领先的AI计算能力,同时赋能更多更具实时性的AI体验。根据华为的介绍,麒麟990 5G在AIBenchMark上的跑分达到了麒麟980的476%。

不仅如此,在AI生态方面,麒麟990 5G全新的NPU可以支持超过300个AI算子数量,而在视觉计算神经网络模型下,麒麟990 5G可以支持90%的开源模型。

麒麟990 5G集成的全新NPU在架构方面也作了革新,也就是我们刚才所说的大核+微核的架构。

其中两颗大核心拥有强大的性能,而另一颗微核心则拥有极致的能效,在双大核的加持下,麒麟990 5G拥有业界最强AI算力,与业界其他旗舰AI芯片相比,性能优势高达6倍,能效优势高达8倍。

关于新的微核心,华为表示如果只用它来工作的话,手机一天的耗电量将不到5%,可见其的确拥有很低的功耗。至于采用大核+微核架构的原因,可以类比在CPU上的大小核架构,也就是在日常生活工作中,很多任务AI运算任务是不需要大核心的,微核心足以满足,就好像货车拉货,通常大的货物可以用大货车来拉,小货物可以用小货车来拉,这样在手机芯片上就可以很大程度的减少不必要的功耗。华为方面也举例说明,在人脸检测的应用场景下,使用微核工作的能效相比大核工作可以提升24倍,令人惊讶。

而除了以上这些特性,麒麟990 5G芯片全新的NPU之所以能够在AI算力和应用体验上独步江湖,更重要的原因,还是其基于华为自研的达芬奇架构。

达芬奇架构详解,它这样造就麒麟990 5G的AI革新

文章开头我们提到,5G将驱动AI在未来获得广阔的发展趋势,除了智能手机,万物互联,万物智能,无疑是未来的一个重要趋势。华为去年也发布了《GIV2025打开智能世界产业版图》白皮书,其中指出到八年后的2025年,全球物联数量达1000亿,企业对AI的采用率将达86%,创造23万亿美金数字经济;同时个人智能终端数将达400亿,个人智能助理普及率达90%,智能服务机器人将步入12%家庭。也就是说,这会是一个AI智能终端数量极度膨胀,种类极度丰富的未来。正是基于对这种未来的预测,华为才会推出致力于多平台多场景协同的统一AI架构——达芬奇架构。

那么达芬奇架构具体是怎样的呢?

达芬奇架构是立足于AI运算芯片的,所以首先我们要从AI运算的性质说起。众所周知,AI的发展离不开三要素:算法、算力、大数据。海量的数据经过强大的算法才能形成巨大的算力。而AI运算,或者说深度学习运算和普通CPU、GPU的运算不同,它有大量的卷积、残差网络、全连接等特殊计算需要处理,例如图像处理时需要用到卷积神经网络运算,处理自然语言、语音时主要用到循环神经网络运算,这些运算,本质上都是向量和矩阵运算,主要是加法和乘法(MAC),有时候也会有一些除法和指数运算。

所以我们整理一下,AI运算的数据对象主要包括标量(独立自然数字)、向量(一组一维有序数)、矩阵(一组二维有序数)、张量(一组n维有序数),其实前三个都可以理解为张量,只是维数不同的区别。

学过高等数学的小伙伴相信都知道,当数据维度增加时,运算的复杂度是指数级增加的,所以AI运算都是超大计算量的运算类型,这对硬件的性能以及软件架构有着很高的要求,换句话说,也就是需要专门的硬件和专门的软件架构。

达芬奇架构的核心设计原则就是要以最小的代价去处理这些复杂的张量运算,从而实现最低的能耗。

达芬奇架构具体怎么做呢?

我们不妨先通过它的核心架构图来过一遍流程:

在上面这张图中,AI运算的数据通过Buffer L0A、L0B被传送到3D Cube矩阵乘法单元,数据经过矩阵运算后,结果输出到Buffer L0C,存放在这里的数据还需要输送到Vector向量计算单元完成向量计算,类似DSP,主要是池化(pooling)/padding、BN运算、激活,加法等处理,如果得到最终的结果,会传输给Unified Buffer。

另外还有一个Scalar标量运算单元,负责标量运算,这里主要是前面Cube、Vector等指令的地址和参数计算以及基本的算术运算,同时还负责整个程序的循环控制和分支判断等工作,它的最终结果也会输出到Unified Buffer。

这基本上就是达芬奇架构系统运算的核心过程,它有一个很重要的特点,就是以3D Cube的矩阵运算为基础,引入Vector向量计算单元作灵活的调整。因为在AI运算中,大量的运算会是矩阵乘法,例如常用的卷积神经网络运算就是通过矩阵乘法来计算的,所以,华为达芬奇架构针对矩阵运算进行加速,可以大幅提高单位面积下的AI算力。而对于之后的向量、激活等运算,可能比较灵活,所以以单独的模块进行灵活处理,这样就增加了运算系统整体的灵活性,可以大大提高运算的效率。

而3D Cube是怎样加速矩阵运算的呢?它的基本思路是以矩阵处理阵列的立体形式来处理MAC中的乘加运算,通俗来讲就是同时从三个面输入计算的数据,并且同时拥有16*16*16也就是4096个计算单元,也就是说当需要进行4096次运算时,2D结构需要64行*64列才能计算,3D Cube只需要16*16*16的结构就能算出,从而大大减小运算周期、降低时延,提高利用率。所以3D Cube也被华为称为“达芬奇魔方”。

这可以说是达芬奇架构的核心创新点了。

正是基于这种创新,我们才能看到前面所说的麒麟990的全新NPU在AI性能方面的诸多优势。

其实大部分小伙伴应该已经了解,达芬奇架构在不久前的麒麟810芯片中已经首发亮相,不过在麒麟990芯片中,达芬奇架构的整体性能相较麒麟810是有所升级的,升级在哪里呢?简单通俗来说,就是麒麟990的3D Cube的立体阵列可以达到16*16*16,而麒麟810则相对小一些。

另外值得注意的就是,在华为的产品阵列下,达芬奇架构下的系列新品并不仅仅是用于麒麟系列的,Max,Mini,Lite,Tiny和Nano五个系列,可以理解为超大号、大号、中号、小号、超小号。像超大号是用于像昇腾910这样的边缘计算、云计算领域的,大号也是如此,而麒麟系列是被用在中号。

所以我们就能看到,在达芬奇架构的系列芯片下,AI运算性能覆盖非常全面,大到云计算、服务器,小到我们身边像智能门铃这样超低功耗物联网设备,都能覆盖。IT之家小编从华为处了解到,达芬奇架构下的AI系列芯片的AI算力可以相差7个数量级,也就是10的7次方的差距。这也就体现了前文小编所说的,达芬奇架构能够真正做到未来智能物联时代的跨平台全场景AI运算。

回归应用,华为Mate30系列的AI功能令人期待

最后,我们还是要将目光回归到麒麟990 5G芯片身上,在达芬奇架构的全新NPU神经网络运算单元加持下,麒麟990 5G的AI运算能力上升到一个新的台阶,当然,最关键的,就是利用这些AI算力,麒麟990 5G能够满足更多场景下的AI运算需求,换言之,也就是能够实现更多的AI功能——这肯定是消费者最为关心的,一切还是要回归到应用层面。在发布会上,其实我们已经看到了华为方面演示的麒麟990 5G的一些创新AI应用,例如实时视频的多实例分割,简单说就是能够将视频画面中的每一个人物主体单独识别出来,实现多人物视频拍摄替换背景,甚至可以选择画面中需要保留的人物,让视频应用充满更多想象。

相信在即将发布的华为Mate30系列手机中,我们会看到更多创新性且实用的AI功能,这些功能,并非创意驱动,而是实实在在的技术驱动,将成为华为Mate30系列在产品差异化层面的技术壁垒。

运用强大的AI能力,华为Mate30系列可能会有哪些创意性的应用,我们拭目以待。

广告声明:文内含有的对外跳转链接(包括不限于超链接、二维码、口令等形式),用于传递更多信息,节省甄选时间,结果仅供参考,IT之家所有文章均包含本声明。

文章价值:
人打分
有价值还可以无价值
置顶评论
    热门评论
      全部评论
      一大波评论正在路上
        取消发送
        软媒旗下人气应用

        如点击保存海报无效,请长按图片进行保存分享