华为芮祥麟:让麒麟980成为未来移动AI的发动机
华为于8月底重磅发布的AI芯片麒麟980在几个方面做到了全球第一:全球首款商用7nm手机SoC芯片;全球首款Cortex-A76 Based CPU;全球首款双核NPU;全球首款Mali-G76 GPU;全球首款1.4Gbps Cat.21 Modem;全球首款支持2133MHz LPDDR4X的手机SoC芯片。
9月20日,在北京国家会议中心举办的AI World 2018世界人工智能峰会上,华为麒麟AI首席科学家芮祥麟博士发表了题为《麒麟980:移动AI的发动机》的演讲。
芮祥麟博士详细介绍了麒麟980芯片的设计和性能提升,以及麒麟980的融合能力开放架构中非常重要的HiAI Foundation。HiAI Foundation能力向搭载麒麟970,麒麟980的华为手机全部开放,具有强大的计算能力、多框架支持、更加丰富的算子和更加方便快捷的集成等优势。
在目前数据隐私保护情况下,很多事情实际上无法单独由云上的计算力完成,必须要在端侧完成。
这是非常复杂的多目标的优化问题,存在能耗、内存上的限制,而且在各种场景下有不同的需求。华为的一个主要目的就是能够在端侧开发出很好的芯片,能够将尽量多的处理能力在端侧完成,在最大程度上提升用户体验。
以下是芮祥麟博士的演讲内容:
芮祥麟:大家好,我是华为麒麟AI的首席科学家芮祥麟,很荣幸参加AI World 2018大会,跟大家一起分享一些成果。
从芯片的角度出发,我选择的题目是《Mobile AI发动机:麒麟980》。
在现在这个时刻讲这个题目,挑战很大。一年前,华为麒麟970 AI芯片是第一个开发出来,也是第一个产品化的。过去一段时间内,各大企业在AI芯片上的投入风起云涌,但我们相信,新一代麒麟980芯片仍然是领先群雄的。
我想先回顾一下去年推出麒麟970之后整个市场的反应,确实有质疑声,但绝大部分都是相当正面的评价,也有一些客户提出了比较好的建议。我们根据市场和合作伙伴的反馈,进一步对芯片进行改良和升级,就是今天给大家介绍的麒麟980。
麒麟980:六项世界第一,不同CPU配置满足动态需求
前一段时间已经有很多媒体报道,麒麟980在几个方面做到了世界第一:全球首款7纳米SoC芯片,全球首款基于Cortex A76 CPU定制开发,全球首款双核NPU,全球首款商用Mali G76 GPU,全球率先支持LTE Cat.21,峰值下载速率达到1.4Gbps,全球首款可以支持LPDDR4X颗粒,最高主频达到2133Mhz。
CPU是8核,不同大小的核适合各个不同的需求,NPU是双核的。其他包括Modem、DDR,还有ISP,整个设计工程相当复杂,这是大批一流专家共同努力的成果。
从麒麟920开始,到950、970、980,这是一个不断成长的过程,麒麟980集成了69亿晶体管,芯片面积持续缩小,晶体管密度持续提升。这样做是为了能够在非常有限的面积内降低能耗,提高计算力。
在芯片方面,CPU是由两个高性能的超大核,两个高能效的大核,加上四个高能效的小核一起协作。在应用方面,播放音乐只需打开CPU的小核,在社交应用场景用高能效的大核加上三个小核。进入重负载的游戏场景,就需要八个核都要用上。
针对不同的场景,比如音乐、导航、通话或拍照,我们动员了各个不同的核,这是一个基于能耗、响应速度、内存应用的复杂考量,是我们的工程师优化的结果。
可以看到,全球首款7纳米SoC芯片上,在各方面都有了很大提升,相比麒麟920,晶体管密度提高了6.8倍,性能方面提高了2.5倍,能效方面提高了4倍。
以图像识别速度为例,我们比友商1、友商2提高很多,基本上可以说快了3倍。在AI性能方面,跟友商的芯片比起来,用Resnet4或Inception V3测试参考,无论能效还是性能方面都有很大的提升。计算力方面,我们用三个场景来进行比较,物体识别、实时图像处理,实时分割。
麒麟970可以做轮廓、图片以及一些粗略的分割,但是在麒麟980可以做得更细致,对整个姿态、形状、细节能够做到很好的视频处理,在分割方面也更精准。
图中最底层是整个SoC布局,如何基于SoC布局提供更好的能力?在ISP方面,我们能够提供低延迟的视频处理流水线和高质量图象处理流水线,这些流水线可以执行一些基本的AI任务,在视频方面,可以进行人体关节检测识别,还有姿态识别。
图片方面的任务更多,文本识别、图像超分、图像降噪、RGB还原等。在视频方面,可以执行主体识别、区域分割、主体抠图,这些提供了一些基础的能力模块,能够高效支撑AR SLAM,做到视频流姿态提取、地图重建等。这些功能不只是我们自己用,也通过API开放给第三方。可以支持第三方的AR APP、视频APP和图片APP。
开放架构支持自定义算子,提升芯片集成调动能力
这张图上,最底层是SoC结构,有很好的传感器处理,DDK是我们的库,还有API,配合摄像头,可以提供Camera DDK,做到前光、暗光、高动态、高分辨率,在AR DDK方面提供 SLAM算子加速、人脸建模、跟踪能力等1000多个能力。我们有33个API,147个算子支持。
算子支持非常关键,各个框架的算子都很多,我们支持147个算子,而且支持更开放的能力,支持自定义算子,并将这些算子和硬件特性实现很好地适配。同样都叫算子,比如LSTM,当映射到芯片层面上时,如何能够最大化地发挥芯片的计算力,做到最大化地降低能耗、响应迅速,这些都是要仔细思考的问题。我们在算子层面的开放更快、更有弹性,适配性更强。
整个软件栈的最底层是我们的SoC,上面是驱动器,这里面有调度系统,可以发挥集成调度能力,以及CPU、GPU、DSP、NPU的综合能力。这有点像机器学习中所谓“集成学习”,也就是执行各种架构的芯片的集成调度能力。它支持谷歌的在线推理,也支持离线推理。
这两个模型各有优缺点。根据使用场景以及模型的复杂度的不同,我们做到二者都能够支持。当然,也会支持一些通用框架,比如Caffe、TensorFlow各个应用,提供端到端的开发工具链,即集成开发环境,同时支持很方便的编译器和显示工具。
每个不同结构的处理器都能够发挥作用,NPU专门针对张量计算。我们的核可以快速处理特殊指令集、特殊结构,能够很快地处理高维度的张量运算。如果把一个算法拆开,事实上到了芯片层面,就只剩下张量运算、矢量运算、标量运算。矢量运算多半用于图象处理以及大规模的并行处理,标量运算通常是处理一些控制指令集,逻辑控制,和一些通用的运算。
比如要估算模型的生命周期,实现从模型产生到模型格式的自动转换,就可以生成一个离线模型,它的执行效率会更高,运算速度更快,可以加载到NPU上面做各种运算。
跟CPU相比,以NPU为驱动的处理架构的整个性能提升了25倍,整个能效提高了50倍,甚至在整个NPU和CPU混合调度情况下,也能有非常好的收益。在算子的支持方面,我们至少在AI芯片的级别上还保持领先,经过一年的积累,整个算子的丰富度、复杂度,每颗算子的性能都提升了很多。
HiAI Foundation:让不懂机器学习的用户实现自己的应用
我们的HiAI开放架构已经走了一年,去年这个时候是麒麟970配合Mate10发布,经过一年的努力,我们对于整个生态,对于端侧AI框架需求有了更深的体验,我们会继续走下去。
我们的目标是:第一,希望能够设计出更好的芯片,增加算力。第二,希望能够对用户屏蔽设计方案的硬件复杂度,也就是说,使用很简单的接口,让不太懂机器学习的客户也能调用接口,实现他们自己的应用。
如果客户对机器学习有一定接触,可以利用我们的接口很快搭建出一个模型及其训练优化方案,这些都是我们希望能够通过HiAI平台实现的目标。
整个计算在手机上面可以做到姿态识别、对象跟踪,这些都不是在云上计算的,而是将整个模型搬到端侧来实现,模型大小适中,处理速度很快,我们为此也感到非常骄傲,我个人也参与过一些模型的构建。
最后说一说我们为什么如此专注开发AI芯片。在目前数据隐私保护形势下,很多事情无法单独由云上的计算力完成,必须要在端侧去完成。这是非常复杂的多目标的优化问题。
这往往要面对能耗和内存的双重限制,面对各种场景下的不同需求。比如在车载应用中要求响应速度很快,对各种图片和视频的处理精确度要求比较高,在声音方面,降噪的要求就非常高,如何能够利用GAN的方式去把声纹和内容分开,这中间往往牵扯到个人隐私。
我们的主要目的是要在端侧方面开发出高性能的芯片,将尽量多的处理过程在端侧完成,争取提供最好的用户体验。
谢谢大家!