GPU/FPGA/ASIC 三种芯片有什么不同
扫描二维码
随时随地手机看文章
根据赛迪咨询发布报告,2016年全球人工智能市场规模达到293亿美元。我们预计2020年全球人工智能市场规模将达到1200亿美元,复合增长率约为20%。人工智能芯片是人工智能市场中重要一环,根据英伟达,AMD,赛灵思,谷歌等相关公司数据,我们测算2016年人工智能芯片市场规达到23.88亿美元,约占全球人工智能市场规模8.15%,而到2020年人工智能芯片市场规模将达到146.16亿美元,约占全球人工智能市场规模12.18%。人工智能芯片市场空间极其广阔。
芯片承载算法,是竞争的制高点
人工智能的基础是算法,深度学习是目前最主流的人工智能算法。深度学习又叫深度神经网络(DNN:Deep Neural Networks),从之前的人工神经网络(ANN:Artificial Neural Networks)模型发展而来。这种模型一般采用计算机科学中的图模型来直观表达,深度学习的“深度”便指的是图模型的层数以及每一层的节点数量。神经网络复杂度不断提升,从最早单一的神经元,到2012年提出的AlexNet(8个网络层),再到2015年提出的ResNET(150个网络层),层次间的复杂度呈几何倍数递增,对应的是对处理器运算能力需求的爆炸式增长。深度学习带来计算量急剧增加,对计算硬件带来更高要求。
深度学习算法分“训练”和“推断”两个过程。简单来讲,人工智能需要通过以大数据为基础,通过“训练”得到各种参数,把这些参数传递给“推断”部分,得到最终结果。
“训练”和“推断”所需要的神经网络运算类型不同。神经网络分为前向计算(包括矩阵相乘、卷积、循环层)和后向更新(主要是梯度运算)两类,两者都包含大量并行运算。“训练”所需的运算包括“前向计算+后向更新”;“推断”则主要是“前向计算”。一般而言训练过程相比于推断过程计算量更大。一般来说,云端人工智能硬件负责“训练+推断”,终端人工智能硬件只负责“推断”。
“训练”需大数据支撑并保持较高灵活性,一般在“云端”(即服务器端)进行。人工智能训练过程中,顶层上需要有一个海量的数据集,并选定某种深度学习模型。每个模型都有一些内部参数需要灵活调整,以便学习数据。而这种参数调整实际上可以归结为优化问题,在调整这些参数时,就相当于在优化特定的约束条件,这就是所谓的“训练”。云端服务器收集用户大数据后,依靠其强大的计算资源和专属硬件,实现训练过程,提取出相应的训练参数。由于深度学习训练过程需要海量数据集及庞大计算量,因此对服务器也提出了更高的要求。未来云端AI服务器平台需具备相当数据级别、流程化的并行性、多线程、高内存带宽等特性。
“推断”过程可在云端(服务器端)进行,也可以在终端(产品端)进行。等待模型训练完成后,将训练完成的模型(主要是各种通过训练得到的参数)用于各种应用场景(如图像识别、语音识别、文本翻译等)。“应用”过程主要包含大量的乘累加矩阵运算,并行计算量很大,但和“训练”过程比参数相对固化,不需要大数据支撑,除在服务器端实现外,也可以在终端实现。“推断”所需参数可由云端“训练”完毕后,定期下载更新到终端。
传统CPU算力不足,新架构芯片支撑AI成必须。核心芯片决定计算平台的基础架构和发展生态,由于AI所需的深度学习需要很高的内在并行度、大量浮点计算能力以及矩阵运算,基于CPU的传统计算架构无法充分满足人工智能高性能并行计算(HPC)的需求,因此需要发展适合人工智能架构的专属芯片。
专属硬件加速是新架构芯片发展主流。目前处理器芯片面向人工智能硬件优化升级有两种发展路径:(1)延续传统计算架构,加速硬件计算能力:以GPU、FPGA、ASIC(TPU、NPU等)芯片为代表,采用这些专属芯片作为辅助,配合CPU的控制,专门进行人工智能相关的各种运算;(2)彻底颠覆传统计算架构,采用模拟人脑神经元结构来提升计算能力,以IBM TrueNorth芯片为代表,由于技术和底层硬件的限制,第二种路径尚处于前期研发阶段,目前不具备大规模商业应用的可能性。从技术成熟度和商业可行性两个角度,我们判断使用AI专属硬件进行加速运算是今后五年及以上的市场主流。
云端终端双场景,三种专属芯片各显其能
我们把人工智能硬件应用场景归纳为云端场景和终端场景两大类。云端主要指服务器端,包括各种共有云、私有云、数据中心等业务范畴;终端主要指包括安防、车载、手机、音箱、机器人等各种应用在内的移动终端。由于算法效率和底层硬件选择密切相关,“云端”(服务器端)和“终端”(产品端)场景对硬件的需求也不同。
除CPU外,人工智能目前主流使用三种专用核心芯片,分别是GPU,FPGA,ASIC。
GPU:先发制人的“十项全能”选手,云端终端均拔头筹。GPU(Graphics Processing Unit)又称图形处理器,之前是专门用作图像运算工作的微处理器。相比CPU,GPU由于更适合执行复杂的数学和几何计算(尤其是并行运算),刚好与包含大量的并行运算的人工智能深度学习算法相匹配,因此在人工智能时代刚好被赋予了新的使命,成为人工智能硬件首选,在云端和终端各种场景均率先落地。目前在云端作为AI“训练”的主力芯片,在终端的安防、汽车等领域,GPU也率先落地,是目前应用范围最广、灵活度最高的AI硬件。
FPGA:“变形金刚”,算法未定型前的阶段性最佳选择。FPGA(Field-Programmable Gate Array)即现场可编程门阵列,是一种用户可根据自身需求进行重复编程的“万能芯片”。编程完毕后功能相当于ASIC(专用集成电路),具备效率高、功耗低的特点,但同时由于要保证编程的灵活性,电路上会有大量冗余,因此成本上不能像ASIC做到最优,并且工作频率不能太高(一般主频低于500MHz)。FPGA相比GPU具有低功耗优势,同时相比ASIC具有开发周期快,更加灵活编程等特点。FPGA于“应用爆发”与“ASIC量产”夹缝中寻求发展,是效率和灵活性的较好折衷,“和时间赛跑”,在算法未定型之前具较大优势。在现阶段云端数据中心业务中,FPGA以其灵活性和可深度优化的特点,有望继GPU之后在该市场爆发;在目前的终端智能安防领域,目前也有厂商采用FPGA方案实现AI硬件加速。[!--empirenews.page--]
ASIC:“专精职业选手”,专一决定效率,AI芯片未来最佳选择。ASIC(Application Specific Integrated Circuit)即专用集成电路,本文中特指专门为AI应用设计、专属架构的处理器芯片。近年来涌现的类似TPU、NPU、VPU、BPU等令人眼花缭乱的各种芯片,本质上都属于ASIC。无论是从性能、面积、功耗等各方面,AISC都优于GPU和FPGA,长期来看无论在云端和终端,ASIC都代表AI芯片的未来。但在AI算法尚处于蓬勃发展、快速迭代的今天,ASIC存在开发周期较长、需要底层硬件编程、灵活性较低等劣势,因此发展速度不及GPU和FPGA。
本报告我们分别仔细分析云端和终端两种应用场景下,这三种专属AI芯片的应用现状、发展前景及可能变革。
云端场景:GPU生态领先,未来多芯片互补共存
核心结论:GPU、TPU等适合并行运算的处理器未来成为支撑人工智能运算的主力器件,既存在竞争又长期共存,一定程度可相互配合;FPGA有望在数据中心业务承担较多角色,在云端主要作为有效补充存在;CPU会“变小”,依旧作为控制中心。未来芯片的发展前景取决于生态,有望统一在主流的几个软件框架下,形成云端CPU+GPU/TPU+FPGA(可选)的多芯片协同场景。
(1)依托大数据,科技巨头不同技术路径布局AI云平台
基于云平台,各大科技巨头大力布局人工智能。云计算分为三层,分别是Infrastructure(基础设施)-as-a-Service(IaaS),Platform(平台)-as-a-Service(Paas),Software(软件)-as-a-Service(Saas)。基础设施在最下端,平台在中间,软件在顶端。IaaS公司提供场外服务器,存储和网络硬件。大数据为人工智能提供信息来源,云计算为人工智能提供平台,人工智能关键技术是在云计算和大数据日益成熟的背景下取得了突破性进展。目前各大科技巨头看好未来人工智能走向云端的发展态势,纷纷在自有云平台基础上搭载人工智能系统,以期利用沉淀在云端的大数据挖掘价值。
(2)千亿美元云服务市场,AI芯片发展潜力巨大
千亿美元云服务市场,云计算硬件市场规模巨大。云计算的市场规模在逐渐扩大。据Gartner的统计,2015年以IaaS、PaaS和SaaS为代表的典型云服务市场规模达到522.4亿美元,增速20.6%,预计2020年将达到1435.3亿美元,年复合增长率达22%。其中IaaS公司到2020年市场空间达到615亿美元,占整个云计算市场达43%,云计算硬件市场空间巨大,而云计算和人工智能各种加速算法关系密切,未来的云计算硬件离不开AI芯片加速。
云端AI芯片发展潜力巨大。根据英伟达与AMD财务数据,我们预计GPU到2020年在数据中心业务中将达到约50亿美元市场规模。同时根据赛灵思与阿尔特拉等FPGA厂商,我们预计2020年FPAG数据中心业务将达到20亿美元。加上即将爆发的ASIC云端市场空间,我们预计到2020年云端AI芯片市场规模将达到105.68亿美元,AI芯片在云端会成为云计算的重要组成部分,发展潜力巨大。
(3)云端芯片现状总结:GPU领先,FPGA随后,ASIC萌芽
AI芯片在云端基于大数据,核心负责“训练”。云端的特征就是“大数据+云计算”,用户依靠大数据可进行充分的数据分析和数据挖掘、提取各类数据特征,与人工智能算法充分结合进行云计算,从而衍生出服务器端各种AI+应用。AI芯片是负责加速人工智能各种复杂算法的硬件。由于相关计算量巨大,CPU架构被证明不能满足需要处理大量并行计算的人工智能算法,需要更适合并行计算的芯片,所以GPU、FPGA、TPU等各种芯片应运而生。AI芯片在云端可同时承担人工智能的“训练”和“推断”过程。
云端芯片现状:GPU占据云端人工智能主导市场,以TPU为代表的ASIC目前只运用在巨头的闭环生态,FPGA在数据中心业务中发展较快。
GPU应用开发周期短,成本相对低,技术体系成熟,目前全球各大公司云计算中心如谷歌、微软、亚马逊、阿里巴巴等主流公司均采用GPU进行AI计算。
谷歌除大量使用GPU外,努力发展自己的AI专属的ASIC芯片。今年5月推出的TPU与GPU相比耗电量降低60%,芯片面积下降40%,能更好的满足其庞大的AI算力要求,但由于目前人工智能算法迭代较快,目前TPU只供谷歌自身使用,后续随着TensorFlow的成熟,TPU也有外供可能,但通用性还有很长路要走。
百度等厂商目前在数据中心业务中也积极采用FPGA进行云端加速。FPGA可以看做从GPU到ASIC重点过渡方案。相对于GPU可深入到硬件级优化,相比ASIC在目前算法不断迭代演进情况下更具灵活性,且开发时间更短。AI领域专用架构芯片(ASIC)已经被证明可能具有更好的性能和功耗,有望成为未来人工智能硬件的主流方向。
(4)云端GPU:云端AI芯片主流,先发优势明显
发展现状:GPU天然适合并行计算,是目前云端AI应用最广的芯片
GPU目前云端应用范围最广。目前大量涉足人工智能的企业都采用GPU进行加速。根据英伟达官方资料,与英伟达合作开发深度学习项目的公司2016年超过19000家,对比2014年数量1500 家。目前百度、Google、Facebook 和微软等IT巨头都采用英伟达的GPU对其人工智能项目进行加速,GPU目前在云端AI深度学习场景应用最为广泛, 由于其良好的编程环境带来的先发优势,预计未来仍将持续强势。
GPU芯片架构脱胎图像处理,并行计算能力强大。GPU(Graphics Processing Unit),又称视觉处理器,是之前应用在个人电脑、工作站、游戏机、移动设备(如平板电脑、智能手机等)等芯片内部,专门用作图像运算工作的微处理器。与CPU类似可以编程,但相比CPU更适合执行复杂的数学和几何计算,尤其是并行运算。内部具有高并行结构(highly paralle lstructure),在处理图形数据和复杂算法方面拥有比CPU更高的效率。
GPU较CPU结构差异明显,更适合并行计算。对比GPU和CPU在结构上的差异,CPU大部分面积为控制器和寄存器,GPU拥有更多的ALU(Arithmetic Logic Unit,逻辑运算单元)用于数据处理,而非数据高速缓存和流控制,这样的结构适合对密集型数据进行并行处理。CPU执行计算任务时,一个时刻只处理一个数据,不存在真正意义上的并行,而GPU具有多个处理器核,同一时刻可并行处理多个数据。
[!--empirenews.page--]
与CPU相比,GPU在AI领域的性能具备绝对优势。深度学习在神经网络训练中,需要很高的内在并行度、大量的浮点计算能力以及矩阵运算,而GPU可以提供这些能力,并且在相同的精度下,相对传统CPU的方式,拥有更快的处理速度、更少的服务器投入和更低的功耗。在2017年5月11日的加州圣何塞GPU技术大会上,NVIDIA就已经发布了Tesla V100。这个目前性能最强的GPU运算架构Volta采用台积电12nm FFN制程并整合210亿颗电晶体,在处理深度学习的性能上等同于250颗CPU。