2019年6月,华为发布全新8系列手机SoC芯片麒麟810,首次采用华为自研达芬奇架构NPU,实现业界领先端侧AI算力,在业界公认的苏黎世联邦理工学院推出的AI Benchmark榜单中,搭载麒麟810的手机霸榜TOP3,堪称华为AI芯片的“秘密武器”,这其中华为自研的达芬奇架构举足轻重。
那么,达芬奇架构AI实力究竟怎么样?一起来深入了解下。
源起:为什么要做达芬奇架构?
华为预测,到2025年全球的智能终端数量将会达到400亿台,智能助理的普及率将达到90%,企业数据的使用率将达到86%。可以预见,在不久的将来,AI将作为一项通用技术极大地提高生产力,改变每个组织和每个行业。
基于这样的愿景,华为在2018全联接大会上提出全栈全场景AI战略。作为重要的技术基础,AI芯片在其中发挥着重要作用,而华为也基于AI芯片提供了完整的解决方案,加速使能AI产业化。
为了实现AI在多平台多场景之间的协同,华为创新设计达芬奇计算架构,在不同体积和功耗条件下提供强劲的AI算力。
初见:达芬奇架构的核心优势
达芬奇架构,是华为自研的面向AI计算特征的全新计算架构,具备高算力、高能效、灵活可裁剪的特性,是实现万物智能的重要基础。
具体来说,达芬奇架构采用3D Cube针对矩阵运算做加速,大幅提升单位功耗下的AI算力,每个AI Core可以在一个时钟周期内实现4096个MAC操作,相比传统的CPU和GPU实现数量级的提升。
同时,为了提升AI计算的完备性和不同场景的计算效率,达芬奇架构还集成了向量、标量、硬件加速器等多种计算单元。同时支持多种精度计算,支撑训练和推理两种场景的数据精度要求,实现AI的全场景需求覆盖。
深耕:达芬奇架构的AI硬实力
科普1:常见的AI运算类型有哪些?
在了解达芬奇架构的技术之前,我们先来弄清楚一下几种AI运算数据对象:
· 标量(Scalar):由单独一个数组成
· 向量(Vector):由一组一维有序数组成,每个数由一个索引(index)标识
· 矩阵(Matrix):由一组二维有序数组成,每个数由两个索引(index)标识
· 张量(Tensor):由一组n维有序数组成,每个数由n个索引(index)标识
其中,AI计算的核心是矩阵乘法运算,计算时由左矩阵的一行和右矩阵的一列相乘,每个元素相乘之后的和输出到结果矩阵。
在此计算过程中,标量(Scalar)、向量(Vector)、矩阵(Matrix)算力密度依次增加,对硬件的AI运算能力不断提出更高要求。
典型的神经网络模型计算量都非常大,这其中99%的计算都需要用到矩阵乘,也就是说,如果提高矩阵乘的运算效率,就能最大程度上提升AI算力——这也是达芬奇架构设计的核心:以最小的计算代价增加矩阵乘的算力,实现更高的AI能效。
科普2:各单元角色分工揭秘,Da Vinci Core是如何实现高效AI计算的?
在2018年全联接大会上,华为推出AI芯片Ascend 310(昇腾310),这是达芬奇架构的首次亮相。
其中,Da Vinci Core只是NPU的一个部分,Da Vinci Core内部还细分成很多单元,包括核心的3D Cube、Vector向量计算单元、Scalar标量计算单元等,它们各自负责不同的运算任务实现并行化计算模型,共同保障AI计算的高效处理。
· 3D Cube矩阵乘法单元:算力担当
刚才已经提到,矩阵乘是AI计算的核心,这部分运算由3D Cube完成,Buffer L0A、L0B、L0C则用于存储输入矩阵和输出矩阵数据,负责向Cube计算单元输送数据和存放计算结果。
· Vector向量计算单元:灵活的多面手
虽然Cube的算力很强大,但只能完成矩阵乘运算,还有很多计算类型要依靠Vector向量计算单元来完成。Vector的指令相对来说非常丰富,可以覆盖各种基本的计算类型和许多定制的计算类型。
· Scalar标量计算单元:流程控制的管家
Scalar标量运算单元主要负责AI Core的标量运算,功能上可以看作一个小CPU,完成整个程序的循环控制,分支判断,Cube、Vector等指令的地址和参数计算以及基本的算术运算等。
科普3:3D Cube计算方式的独特优势是什么?
不同于以往的标量、矢量运算模式,华为达芬奇架构以高性能3D Cube计算引擎为基础,针对矩阵运算进行加速,大幅提高单位面积下的AI算力,充分激发端侧AI的运算潜能。
以两个N*N的矩阵A*B乘法为例:如果是N个1D 的MAC,需要N^2(即N的2次方)的cycle数;如果是1个N^2的2D MAC阵列,需要N个Cycle;如果是1个N维3D的Cube,只需要1个Cycle。
图中计算单元的数量只是示意,实际可灵活设计
华为创新设计的达芬奇架构将大幅提升算力,16*16*16的3D Cube能够显著提升数据利用率,缩短运算周期,实现更快更强的AI运算。
这是什么意思呢?举例来说,同样是完成4096次运算,2D结构需要64行*64列才能计算,3D Cube只需要16*16*16的结构就能算出。其中,64*64结构带来的问题是:运算周期长、时延高、利用率低。
达芬奇架构的这一特性也完美体现在麒麟810上。作为首款采用达芬奇架构NPU的手机SoC芯片,麒麟810实现强劲的AI算力,在单位面积上实现最佳能效,FP16精度和INT8量化精度业界领先,搭载这款SoC芯片的华为Nova 5、Nova 5i Pro及荣耀9X手机已上市,为广大消费者提供多种精彩的AI应用体验。
同时,麒麟810再度赋能HiAI生态,支持自研中间算子格式IR开放,算子数量多达240+,处于业内领先水平。更多算子、开源框架的支持以及提供更加完备的工具链将助力开发者快速转换集成基于不同AI框架开发出的模型,极大地增强了华为HiAI移动计算平台的兼容性、易用性,提高开发者的效率,节约时间成本,加速更多AI应用的落地。
预见:达芬奇架构解锁AI无限可能
基于灵活可扩展的特性,达芬奇架构能够满足端侧、边缘侧及云端的应用场景,可用于小到几十毫瓦,大到几百瓦的训练场景,横跨全场景提供最优算力。
以Ascend芯片为例,Ascend-Nano可以用于耳机电话等IoT设备的使用场景;Ascend-Tiny和Ascend-Lite用于智能手机的AI运算处理;在笔记本电脑等算力需求更高的便携设备上,由Ascend-Mini提供算力支持;而边缘侧服务器上则需要由Multi-Ascend 310完成AI计算;至于超复杂的云端数据运算处理,则交由算力最高可达256 TFLOPS@FP16的Ascend-Max来完成。
正是由于达芬奇架构灵活可裁剪、高能效的特性,才能实现对上述多种复杂场景的AI运算处理。
同时,选择开发统一架构也是一个非常关键的决策。统一架构优势很明显,那就是对广大开发者非常利好。基于达芬奇架构的统一性,开发者在面对云端、边缘侧、端侧等全场景应用开发时,只需要进行一次算子开发和调试,就可以应用于不同平台,大幅降低了迁移成本。
不仅开发平台语言统一,训练和推理框架也是统一的,开发者可以将大量训练模型放在本地和云端服务器,再将轻量级的推理工作放在移动端设备上,获得一致的开发体验。
在算力和技术得到突破性提升后,AI将广泛应用于智慧城市、自动驾驶、智慧新零售、机器人、工业制造、云计算AI服务等场景。华为轮值董事长徐直军在2018华为全联接大会上表示,“全场景意味着可以实现智能无所不及,全栈意味着华为有能力为AI应用开发者提供强大的算力和应用开发平台;有能力提供大家用得起、用得好、用得放心的AI,实现普惠AI”。
未来,AI将应用更加广泛的领域,并逐渐覆盖至生活的方方面面。达芬奇架构作为AI运算的重要技术基础,将持续赋能AI应用探索,为各行各业的AI应用场景提供澎湃算力。
8月23日,采用达芬奇架构的又一款“巨无霸”——AI芯片Ascend 910,将正式商用发布,与之配套的新一代AI开源计算框架MindSpore也将同时亮相。
图片声明:本文图片均来源于华为