人工智能的最近一次浪潮起源于 2011 年前后深度学习(Deep Learning)引起的大发展。在其背后,快速发展的 GPU 功不可没。近年来,人们逐渐认识到计算芯片对于人工智能的重要性,围绕 AI 任务进行专有加速的芯片越来越多,但无论是 AlphaGo 背后的谷歌 TPU 还是加入了全新 Tensor Core 结构的英伟达 Tesla V100,这些芯片都是为服务器端进行设计的,在移动端对于机器学习任务加速的 SoC 还未出现。9 月 2 日,在德国柏林举行的 IFA 2017 展会上,华为正式发布了全球首款移动端 AI 芯片麒麟 970,一举填补了这一空白。
在发布会后,机器之心获取了有关麒麟 970 的第一手资料,并进行了深度解读。这款年度最受关注手机芯片的性能如何?让我们先睹为快。
柏林 IFA 2017 展会,华为消费者业务 CEO 余承东
新一代芯片麒麟 970
麒麟 9 系列一直是定位于旗舰机上的智能手机芯片。华为认为,此前的两代产品和国外主要竞争对手在性能上已经可以做到各有胜负,而在 CPU 能耗方面,麒麟芯片还更具有一定优势。作为最新一代产品,麒麟 970 继承了此前的领先技术。新一代芯片采用了业界最先进的工艺,内置 4 个用于处理重负载任务的 Cortex A73 核心,4 个 Cortex A53 核心,GPU 则为全新一代具有 12 个核心的 Mali-G72 MP12,所有参数都达到了旗舰产品的级别。
华为麒麟 970
与此同时,麒麟 970 不出所料将制程提升到了 10nm 级。制程始终是芯片提升最主要的手段,芯片能力的提升有两个互相影响的方面:性能和功耗。只有工艺的提升才能让这两个方面同时受益。麒麟 970 采用了台积电(TSMC)的 10nm 工艺,是目前业界最为先进的芯片制造工艺。
另外,在通信方面,麒麟 970 支持全球最高的通信规格 LTE Cat.18/Cat.13,实现了业界最高的 1.2Gbps 峰值下载速率。
此次发布的麒麟 970 同时升级了自行研制的 ISP,并且放入了两颗,其针对特定场景进行了性能和效果优化,可帮助使用者拍出更自然、更美的照片。
在硬件参数的升级之外,麒麟 970 最引人关注的新特性就是全新设计的 HiAI 移动计算架构了。
华为第一次在移动设备层面上把神经网络模型的硬件计算加速能力融合进芯片中去。这也是业内第一次在手机芯片中出现了专门用于进行人工智能方面计算的处理单元,它早于苹果传言中即将推出的 Neural Engine。华为表示,新的计算架构以及计算单元对于机器学习任务处理性能(相对于手机 CPU)提升了数十倍,最高可达到传统处理器 25 倍速度,50 倍能效。这种性能提升可以让此前很多无法在移动端使用的机器学习应用走向工程化和实用化。
众所周知,当前的 CPU 负责通用任务计算,面向指令密集和逻辑控制运算;GPU 则是数据密集型,主要面向向量任务的图形处理计算。对于人工智能领域的应用,目前人们面临的主要任务是对于矩阵乘法的运算,这种任务使用 CPU 和 GPU 来做效率并不高。对于一个矩阵乘法,后两种结构需要更多个指令周期来完成。针对这类任务,如果希望能够在最短的时钟周期内完成更多的神经网络模型算子的运算,就需要专门的硬件来参与其中。
麒麟 970 HiAI 移动计算架构
在麒麟 970 芯片的设计过程中,华为与寒武纪进行了深度合作,双方团队在 AI 计算处理方面进行了联合开发与优化。麒麟 970 创新设计的 HiAI 移动计算架构,通过更高效灵活的异构计算来最大化发挥 CPU/GPU/ISP/DSP/NPU 的性能,同时首次集成专门用于神经网络任务处理的 NPU(Neural Network Processing Unit)计算单元,其加速性能和能效比大幅优于 CPU 和 GPU。
为芯片组加入人工智能计算单元,这个过程看起来很简单,实际上非常复杂。谷歌与英伟达此前曾经分别推出过各自的人工智能芯片形式,这种面向服务器级的芯片面积很大(英伟达 Volta 的 Tensor Core 面积有 800 平方毫米)。而目前,像麒麟这样的旗舰手机 Soc 的面积只有 10×10 毫米。显然,在桌面端的轻而易举的事情是无法在手机上去做的——我们不能仅仅依靠晶体管的堆砌来提高性能。另一方面,面向人工智能任务运算的芯片单元也无法与服务器级芯片使用相同的能耗。
面对在小面积上实现大算力的挑战,华为通过改进工艺让同样面积(10×10 毫米)下晶体管数量提升到了 55 亿个,为 AI 计算单元让出了空间,同时在很小的面积下提升了芯片的计算性能。
此外,据悉,开发人员为了让 NPU 工程化、实用化、真正做到能商用进行了大量的研究、调试与优化,与合作伙伴、学术界展开了无数次沟通交流。最终,新的芯片在运算速度与能效方面性能优异,大大超过了目前市场上所见到的芯片。
在结构上,新的计算单元需要与已有的其他计算单元互相配合。在研发过程中,华为应该花费了很长时间来让 NPU 适用于处理常见应用任务。此前,CPU 与 GPU 之间的资源共享也应该经历了相当长的一段时间,而 NPU 也面临着同样的挑战。相信在未来,NPU 与其他组件的整合程度也会不断提升。
API 与深度学习框架
目前,人工智能技术还没有发展到全面步入应用的程度,大多数研究者致力于研究深度学习框架和算法的优化。在研发芯片时,华为的工程师们发现目前 AI 的应用方向非常分散。面对这样的挑战,麒麟 970 提供了 HiAI 移动计算平台,可以把所有的计算资源统一调配管理,面向上层可以向很多应用提供接入方式。
对于麒麟 970 的 HiAI 移动计算平台而言,AI 应用开发者可以直接调用 HiAI 计算加速库以及接口,获得 HiAI 异构平台的计算加速。同时也可以基于谷歌安卓 NN API 调用 HiAI 硬件平台加速能力来执行自己的任务,它们同样可以被华为的新一代 NPU 加速。据悉,谷歌今年底推出的安卓 NN API 也将率先获得麒麟 970 的支持。
华为不久后还会提供更高层级的 API,把语音识别、自然语言处理和图像识别的基础 AI 功能以特定 API 形式提供给开发者使用。在华为设想的图景中,未来各类应用都可以接入搭载 AI 芯片的设备,并享受硬件优势带来的性能提升。
据相关人士表示,在麒麟 970 芯片发布之后,相应的 API 也将在近期内发布。
在人工智能芯片计划中,搭载 NPU 的智能芯片将支持多种深度学习框架,并在未来支持多框架下的算子。实际上,人工智能芯片优化的级别是算子级的。目前,麒麟 970 支持的框架有 TensorFlow 和 Caffe。在不久后,麒麟 970 支持的框架还将包括 Caffe2 和 TensorFlow Lite。
虽然麒麟 970 才刚刚发布,但目前已经出现被这款芯片优化的应用了——在华为手机的前端 DNN 降噪算法中,它可以通过深度学习 DNN 算法,有效抑制非稳态噪音,增强语音信号,可以提高其语音识别在恶劣环境下的识别率。特别是在开车的时候,如果车速非常快(比如达到 120 千米/小时),车内的噪音很大,通常情况下手机的语音识别成功率会非常低,而华为开发的技术则是专门针对这样的痛点场景去改善和优化。未来,华为会在语音和图像领域中开放常用的各种算法接口。
麒麟 970 芯片能够使用的各种 AI 应用会越来越丰富,华为表示,他们也正在与很多其它公司合作,共同开发出更多的应用来,让消费者切身体验到 On Device AI 性能瓶颈突破后所带来的巨大改变
搭载麒麟 970 的手机:华为Mate 10系列
在了解完芯片之后,我们最为关心的可能就是搭载这块芯片的手机型号了。根据发布会现场的信息,搭载麒麟 970芯片的手机为即将于 10 月 16 日发布的华为Mate 10 系列。
云+人工智能,目前是各大科技巨头极为重视的一个方向,华为也在着力布局人工智能云服务。云服务的优势在于数据存储,但机器学习应用将计算与存储任务交给云端时会产生如延迟、稳定性、安全性、隐私性等这样的弊端。在部署到手机端之后,结合终端计算优势,芯片和云服务各自负责不同的任务,弥补了云的缺陷。
华为认为,所有延迟、敏感类的应用都是需要在设备端进行处理的。另外,在网络连接不通的情况下,人们也需要依赖设备本地的处理能力。在安全的层面上,使用本地运算意味着无需将数据传送到服务器中,这样可以减少数据泄露的机会。
在云服务器端,我们可以看到谷歌、英伟达等公司已经推出了针对人工智能任务优化的新型芯片。在移动设备领域,麒麟 970 第一次将人工智能硬件带进了手机。移动端计算能力的提升会使人工智能的应用走出瓶颈,带来更多、更丰富的用户体验。
在发现移动端设备计算芯片是目前 AI 技术的瓶颈之后,华为率先投身其中,希望以此拉动一部分开发者基于新硬件为消费者们提供更好的体验。希望这些行动可以加速人工智能技术的发展,让 AI 逐渐形成基础技术平台,催生更多不同类型的应用。
本文为机器之心原创,转载请联系本公众号获得授权。
✄------------------------------------------------
加入机器之心(全职记者/实习生):[email protected]
投稿或寻求报道:[email protected]
广告&商务合作:[email protected]