一文看懂人工智能芯片的产业生态及竞争格局
2018-05-16
近日,国内人工智能芯片公司寒武纪科技(Cambricon)获得了一亿美元A轮融资,是目前国内人工智能芯片领域初创公司所获得的最高融资记录,如果要说这桩融资对人工智能领域的最直接意义,或许是让人工智能芯片逐渐走入了更多人的视野。
深度学习不仅在传统的语音识别、图像识别、搜索/推荐引擎、计算广告等领域证明了其划时代的价值,也引爆了整个人工智能生态向更大的领域延伸。由于深度学习的训练(training)和推断(inference)均需要大量的计算,人工智能界正在面临前所未有的算力挑战,而其始作俑者,是摩尔定律的失效。
由于结构所限,CPU性能近年来未能呈现如摩尔定律预测的定期翻倍,于是具有数量众多计算单元和超长流水线、具备强大并行计算能力与浮点计算能力的GPU,成为了深度学习模型训练的标配。GPU可以大幅加速深度学习模型的训练速度,相比CPU能提供更快的处理速度、更少的服务器投入和更低的功耗,并成为深度学习训练层面的事实工具标准。
但是,随着人工智能产业链的火速延伸,GPU并不能满足所有场景(如手机)上的深度学习计算任务, GPU并不是深度学习算力痛点的唯一解。算力的刚需,吸引了众多巨头和初创公司纷纷进入人工智能芯片领域,并形成了一个自下而上的生态体系,本文希望通过不太长的篇幅,系统呈现这个缤纷而有趣的人工智能芯片生态。
人工智能芯片分类
一项深度学习工程的搭建,可分为训练(training)和推断(inference)两个环节:训练环境通常需要通过大量的数据输入,或采取增强学习等非监督学习方法,训练出一个复杂的深度神经网络模型。训练过程由于涉及海量的训练数据(大数据)和复杂的深度神经网络结构,需要的计算规模非常庞大,通常需要GPU集群训练几天甚至数周的时间,在训练环节GPU目前暂时扮演着难以轻易替代的角色。
推断(inference)环节指利用训练好的模型,使用新的数据去“推断”出各种结论,如视频监控设备通过后台的深度神经网络模型,判断一张抓拍到的人脸是否属于黑名单。虽然推断环节的计算量相比训练环节少,但仍然涉及大量的矩阵运算。在推断环节,除了使用CPU或GPU进行运算外,FPGA以及ASIC均能发挥重大作用。
FPGA(可编程门阵列,Field Programmable Gate Array)是一种集成大量基本门电路及存储器的芯片,可通过烧入FPGA配置文件来来定义这些门电路及存储器间的连线,从而实现特定的功能。而且烧入的内容是可配置的,通过配置特定的文件可将FPGA转变为不同的处理器,就如一块可重复刷写的白板一样。因此FPGA可灵活支持各类深度学习的计算任务,性能上根据百度的一项研究显示,对于大量的矩阵运算GPU远好于FPGA,但是当处理小计算量大批次的实际计算时FPGA性能优于GPU,另外FPGA有低延迟的特点,非常适合在推断环节支撑海量的用户实时计算请求(如语音云识别)。
ASIC(专用集成电路,Application Specific Integrated Circuit)则是不可配置的高度定制专用芯片。特点是需要大量的研发投入,如果不能保证出货量其单颗成本难以下降,而且芯片的功能一旦流片后则无更改余地,若市场深度学习方向一旦改变,ASIC前期投入将无法回收,意味着ASIC具有较大的市场风险。但ASIC作为专用芯片性能高于FPGA,如能实现高出货量,其单颗成本可做到远低于FPGA。
在深度学习的训练和推断环节,常用到的芯片及特征如下图所示:
从市场角度而言,目前人工智能芯片的需求可归纳为三个类别:首先是面向于各大人工智能企业及实验室研发阶段的训练环节市场;其次是数据中心推断(inference on cloud),无论是亚马逊Alexa还是出门问问等主流人工智能应用,均需要通过云端提供服务,即推断环节放在云端而非用户设备上;第三种是面向智能手机、智能安防摄像头、机器人/无人机、自动驾驶、VR等设备的设备端推断(inference on device)市场,设备端推断市场需要高度定制化、低功耗的人工智能芯片产品。如传闻华为即将在Mate 10的麒麟970中搭载寒武纪IP,旨在为手机端实现较强的深度学习本地端计算能力,从而支撑以往需要云端计算的人工智能应用。
我们围绕上述的分类标准,从市场及芯片特性两个角度出发,可勾画出一个人工智能芯片的生态体系,整个生态体系分为训练层、云端推断层和设备端推断层:
Training层芯片生态
毫无疑问在深度学习的Training阶段,GPU成为了目前一项事实的工具标准。由于AMD今年来在通用计算以及生态圈构建方面都长期缺位,导致了在深度学习GPU加速市场NVIDIA一家独大的局面。根据NVIDIA今年Q2年报显示,NVIDIA的Q2收入为达到22.3亿美元,毛利率更是达到了惊人的58.4%,其中数据中心(主要为面向深度学习的Tesla加速服务器)Q2收入4.16亿美元,同比上升达175.5%。
面对深度学习Training这块目前被NVIDIA赚得盆满钵满的市场,众多巨头纷纷对此发起了挑战。Google今年5月份发布了TPU 2.0,TPU是Google研发的一款针对深度学习加速的ASIC芯片,第一代TPU仅能用于推断(即不可用于训练模型),并在AlphaGo人机大战中提供了巨大的算力支撑。而目前Google发布的TPU 2.0除了推断以外,还能高效支持训练环节的深度网络加速。根据Google披露,Google在自身的深度学习翻译模型的实践中,如果在32块顶级GPU上并行训练,需要一整天的训练时间,而在TPU2.0上,八分之一个TPU Pod(TPU集群,每64个TPU组成一个Pod)就能在6个小时内完成同样的训练任务。
目前Google并没急于推进TPU芯片的商业化。Google在TPU芯片的整体规划是,基于自家开源、目前在深度学习框架领域排名第一的TensorFlow,结合Google云服务推出TensorFlow Cloud,通过TensorFlow加TPU云加速的模式为AI开发者提供服务,Google或许并不会考虑直接出售TPU芯片。如果一旦Google将来能为AI开发者提供相比购买GPU更低成本的TPU云加速服务,借助TensorFlow生态毫无疑问会对NVIDIA构成重大威胁。
当然TPU作为一种ASIC芯片方案,意味着其巨大的研发投入和市场风险,而其背后的潜在市场也是巨大的:一个横跨训练和云端推断的庞大云服务,但目前恐怕只有Google才有如此巨大的决心和资源禀赋,使用ASIC芯片去构筑这一布局——如果将来TPU云服务无法获得巨大的市场份额从而降低单颗TPU的成本,Google将难以在这一市场盈利。但市场的培育除了芯片本身显然是不足够的,还包括让众多熟悉GPU加速的研究/开发者转到TPU云计算平台的转换成本,这意味着Google要做大量的生态系统培育工作。
除了Google外,昔日的GPU王者AMD目前也奋起直追,发布了三款基于Radeon Instinct的深度学习加速器方案,希望在GPU深度学习加速市场分回一点份额,当然AMD是否能针对NVIDIA的同类产品获得相对优势尚为未知之数。
对于现任老大NVIDIA而言,目前当务之急无疑是建立护城河保卫其市场份额,总结起来是三方面的核心举措。一方面在产品研发上,NVIDIA耗费了高达30亿美元的研发投入,推出了基于Volta、首款速度超越100TFlops的处理器Tesla,主打工业级超大规模深度网络加速;另外一方面是加强人工智能软件堆栈体系的生态培育,即提供易用、完善的GPU深度学习平台,不断完善CUDA、 cuDNN等套件以及深度学习框架、深度学习类库来保持NVIDIA体系GPU加速方案的粘性。第三是推出NVIDIA GPU Cloud云计算平台,除了提供GPU云加速服务外,NVIDIA以NVDocker方式提供全面集成和优化的深度学习框架容器库,以其便利性进一步吸引中小AI开发者使用其平台。
核心驱动能力:对于深度学习训练这个人工智能生态最为关键的一环,我们可以看到竞争的核心已经不是单纯的芯片本身,而是基于芯片加速背后的整个生态圈,提供足够友好、易用的工具环境让开发者迅速获取到深度学习加速算力,从而降低深度学习模型研发+训练加速的整体TCO和研发周期。一言蔽之,这个领域是巨头玩家的战场,普通的初创公司进入这个领域几乎没有任何的机会,接下来的核心看点,是Google究竟是否能凭借TensorFlow+Google Cloud+TPU 2.0生态取得对NVIDIA的相对优势,以市场份额的量变引起质变。毕竟相比主打通用计算的NVIDIA GPU,TPU的ASIC方案当出货量突破一定阈值后,其单颗价格和功耗比均能构成无法忽视的竞争优势。当然,这取决于两个前提条件:一是深度学习主流框架在今后几年不发生重大变化,比如深度学习变得不再高度依赖矩阵运算,否则一颗写死的ASIC将失去几乎一切价值。二是Google能构筑出足够好用的生态,让众多AI研究/开发者从CUDA+GPU转向Google,打破业界对NVIDIA的路径依赖,而这点才是真正艰难的道路。
Inference On Cloud层芯片生态
当一项深度学习应用,如基于深度神经网络的机器翻译服务,经过数周甚至长达数月的GPU集群并行训练后获得了足够性能,接下来将投入面向终端用户的消费级服务应用中。由于一般而言训练出来的深度神经网络模型往往非常复杂,其Inference(推断)仍然是计算密集型和存储密集型的,这使得它难以被部署到资源有限的终端用户设备(如智能手机)上。正如Google不期望用户会安装一个大小超过300M的机器翻译APP应用到手机上,并且每次翻译推断(应用训练好的神经网络模型计算出翻译的结果)的手机本地计算时间长达数分钟甚至耗尽手机电量仍然未完成计算。这时候,云端推断(Inference On Cloud)在人工智能应用部署架构上变得非常必要。
虽然单次推断的计算量远远无法和训练相比,但如果假设有1000万人同时使用这项机器翻译服务,其推断的计算量总和足以对云服务器带来巨大压力,而随着人工智能应用的普及,这点无疑会变成常态以及业界的另一个痛点。由于海量的推断请求仍然是计算密集型任务,CPU在推断环节再次成为瓶颈。但在云端推断环节,GPU不再是最优的选择,取而代之的是,目前3A(阿里云、Amazon、微软Azure)都纷纷探索云服务器+FPGA芯片模式替代传统CPU以支撑推断环节在云端的技术密集型任务。
亚马逊 AWS 在去年推出了基于 FPGA 的云服务器 EC2 F1;微软早在2015年就通过Catapult 项目在数据中心实验CPU+FPGA方案;而百度则选择与FPGA巨头Xilinx(赛思灵)合作,在百度云服务器中部署KintexFPGA,用于深度学习推断,而阿里云、腾讯云均有类似围绕FPGA的布局,具体如下表所示。当然值得一提的是,FPGA芯片厂商也出现了一家中国企业的身影——清华系背景、定位于深度学习FPGA方案的深鉴科技,目前深鉴已经获得了Xilinx的战略性投资。
云计算巨头纷纷布局云计算+FPGA芯片,首先因为FPGA作为一种可编程芯片,非常适合部署于提供虚拟化服务的云计算平台之中。FPGA的灵活性,可赋予云服务商根据市场需求调整FPGA加速服务供给的能力。比如一批深度学习加速的FPGA实例,可根据市场需求导向,通过改变芯片内容变更为如加解密实例等其他应用,以确保数据中心中FPGA的巨大投资不会因为市场风向变化而陷入风险之中。另外,由于FPGA的体系结构特点,非常适合用于低延迟的流式计算密集型任务处理,意味着FPGA芯片做面向与海量用户高并发的云端推断,相比GPU具备更低计算延迟的优势,能够提供更佳的消费者体验。
在云端推断的芯片生态中,不得不提的最重要力量是PC时代的王者英特尔。面对摩尔定律失效的CPU产品线,英特尔痛定思痛,将PC时代积累的现金流,通过多桩大手笔的并购迅速补充人工智能时代的核心资源能力。首先以 167 亿美元的代价收购 FPGA界排名第二的Altera,整合Altera多年FPGA技术以及英特尔自身的生产线,推出CPU + FPGA 异构计算产品主攻深度学习的云端推断市场。另外,去年通过收购拥有为深度学习优化的硬件和软件堆栈的Nervana,补全了深度学习领域的软件服务能力。当然,不得不提的是英特尔还收购了领先的ADAS服务商Mobileye以及计算机视觉处理芯片厂商Movidius,将人工智能芯片的触角延伸到了设备端市场,这点将在本文余下部分讲述。
相比Training市场中NVIDIA一家独大,云端推断芯片领域目前可谓风起云涌,一方面英特尔希望通过深耕CPU+FPGA解决方案,成为云端推断领域的NVIDIA,打一次漂亮的翻身仗。另外由于云端推断市场当前的需求并未进入真正的高速爆发期,多数人工智能应用当前仍处于试验性阶段,尚未在消费级市场形成巨大需求,各云计算服务商似乎有意凭借自身云服务优势,在这个爆发点来临之前布局自己的云端FPGA应用生态,做到肥水不流外人(英特尔)田,另外一个不可忽视的因素,是Google的TPU生态对云端推断的市场份额同样有巨大的野心,也许这将会是一场彻头彻尾的大混战。
Inference On Device层芯片生态
随着人工智能应用生态的爆发,将会出现越来越多不能单纯依赖云端推断的设备。例如,自动驾驶汽车的推断,不能交由云端完成,否则如果出现网络延时则是灾难性后果;或者大型城市动辄百万级数量的高清摄像头,其人脸识别推断如果全交由云端完成,高清录像的网络传输带宽将让整个城市的移动网络不堪重负。未来在相当一部分人工智能应用场景中,要求终端设备本身需要具备足够的推断计算能力,而显然当前ARM等架构芯片的计算能力,并不能满足这些终端设备的本地深度神经网络推断,业界需要全新的低功耗异构芯片,赋予设备足够的算力去应对未来越发增多的人工智能应用场景。
有哪些设备需要具备Inference On Device能力?主流场景包括智能手机、ADAS、CV设备、VR设备、语音交互设备以及机器人。
智能手机——智能手机中嵌入深度神经网络加速芯片,或许将成为业界的一个新趋势,当然这个趋势要等到有足够基于深度学习的杀手级APP出现才能得以确认。传闻中华为即将在Mate 10的麒麟970中搭载寒武纪IP,为Mate 10带来较强的深度学习本地端推断能力,让各类基于深度神经网络的摄影/图像处理应用能够为用户提供更加的体验。另外,高通同样有意在日后的芯片中加入骁龙神经处理引擎,用于本地端推断,同时ARM也推出了针对深度学习优化的DynamIQ技术。对于高通等SoC厂商,在其成熟的芯片方案中加入深度学习加速器IP并不是什么难事,智能手机未来人工智能芯片的生态基本可以断定仍会掌握在传统SoC商手中。
ADAS(高级辅助驾驶系统)——ADAS作为最吸引大众眼球的人工智能应用之一,需要处理海量由激光雷达、毫米波雷达、摄像头等传感器采集的海量实时数据。作为ADAS的中枢大脑,ADAS芯片市场的主要玩家包括今年被英特尔收购的Mobileye、去年被高通以470亿美元惊人价格收购的NXP,以及汽车电子的领军企业英飞凌。随着NVIDIA推出自家基于 GPU的ADAS解决方案Drive PX2,NVIDIA也加入到战团之中。
CV(计算机视觉,Computer Vision)设备——计算机视觉领域全球领先的芯片提供商是Movidius,目前已被英特尔收购,大疆无人机、海康威视和大华股份的智能监控摄像头均使用了Movidius的Myriad系列芯片。需要深度使用计算机视觉技术的设备,如上述提及的智能摄像头、无人机,以及行车记录仪、人脸识别迎宾机器人、智能手写板等设备,往往都具有本地端推断的刚需,如刚才提及的这些设备如果仅能在联网下工作,无疑将带来糟糕的体验。。而计算机视觉技术目前看来将会成为人工智能应用的沃土之一,计算机视觉芯片将拥有广阔的市场前景。目前国内做计算机视觉技术的公司以初创公司为主,如商汤科技、阿里系旷视、腾讯优图,以及云从、依图等公司。在这些公司中,未来有可能随着其自身计算机视觉技术的积累渐深,部分公司将会自然而然转入CV芯片的研发中,正如Movidius也正是从计算机视觉技术到芯片商一路走来的路径。
VR设备、语音交互设备以及机器人——由于篇幅关系,这几个领域放在一起介绍。VR设备芯片的代表为微软为自身VR设备Hololens而研发的HPU芯片,这颗由台积电代工的芯片能同时处理来自5个摄像头、一个深度传感器以及运动传感器的数据,并具备计算机视觉的矩阵运算和CNN运算的加速功能。语音交互设备芯片方面,国内有启英泰伦以及云知声两家公司,其提供的芯片方案均内置了为语音识别而优化的深度神经网络加速方案,实现设备的语音离线识别。机器人方面,无论是家居机器人还是商用服务机器人均需要专用软件+芯片的人工智能解决方案,这方面典型公司有由前百度深度学习实验室负责人余凯创办的地平线机器人,当然地平线机器人除此之外,还提供ADAS、智能家居等其他嵌入式人工智能解决方案。
在Inference On Device领域,我们看到的是一个缤纷的生态。因为无论是ADAS还是各类CV、VR等设备领域,人工智能应用仍远未成熟,各人工智能技术服务商在深耕各自领域的同时,逐渐由人工智能软件演进到软件+芯片解决方案是自然而然的路径,因此形成了丰富的芯片产品方案。但我们同时观察到的是,NVIDIA、英特尔等巨头逐渐也将触手延伸到了Inference On Device领域,意图形成端到端的综合人工智能解决方案体系,实现各层次资源的联动。
雷锋网按:本文为专栏投稿文章,作者胡嘉琪。