
1、GPU
GPU(Graphics Processing Unit),即图形处理器,是一种由大量核心组成的大规模并行计算架构,专为同时处理多重任务而设计。GPU是专门处理图像计算的,包括各种特效的显示,更加针对图像的渲染等计算算法。这些算法与深度学习的算法还是有比较大的区别。当然,GPU非常适合做并行计算,也可以用来给AI加速。
GPU因良好的矩阵计算能力和并行计算优势,最早被用于AI计算,在数据中心中获得大量应用。GPU采用并行架构,超过80%部分为运算单元,具备较高性能运算速度。相比较下,CPU仅有20%为运算单元,更多的是逻辑单元,因此CPU擅长逻辑控制与串行运算,而GPU擅长大规模并行运算。GPU最早作为深度学习算法的芯片被引入人工智能领域,因其良好的浮点计算能力适用于矩阵计算,且相比CPU具有明显的数据吞吐量和并行计算优势。
2011年谷歌大脑率先应用GPU芯片,当时12颗英伟达的GPU可以提供约等于2000颗CPU的深度学习性能,展示了其惊人的运算能力。目前GPU已经成为人工智能领域最普遍最成熟的智能芯片,应用于数据中心加速和部分智能终端领域,在深度学习的训练阶段其性能更是无所匹敌。在深度学习上游训练端(主要用在云计算数据中心里),GPU是当仁不让的第一选择。目前GPU的市场格局以英伟达为主(超过70%),AMD为辅,预计未来几年内GPU仍然是深度学习训练市场的第一选择。另外,GPU无法单独工作,必须由CPU进行控制调用才能工作。CPU可单独作用,处理复杂的逻辑运算和不同的数据类型,当需要大量的处理类型统一的数据时,则可调用GPU进行并行计算。(GPU卡)
2、FPGA
FPGA(Field-Programmable Gate Array),即现场可编程门阵列,作为专用集成电路领域中的一种半定制电路出现。FPGA利用门电路直接运算,速度快,而用户可以自由定义这些门电路和存储器之间的布线,改变执行方案,以期得到最佳效果。FPGA可以采用OpenCL等更高效的编程语言,降低了硬件编程的难度,还可以集成重要的控制功能,整合系统模块,提高了应用的灵活性,与GPU相比,FPGA具备更强的平均计算能力和更低的功耗。
FPGA适用于多指令,单数据流的分析,与GPU相反,因此常用于推理阶段。FPGA是用硬件实现软件算法,因此在实现复杂算法方面有一定的难度,缺点是价格比较高。FPGA因其在灵活性和效率上的优势,适用于虚拟化云平台和推理阶段,在2015年后异军突起。2015年Intel收购FPGA市场第二大企业Altera,开始了FPGA在人工智能领域的应用热潮。因为FPGA灵活性较好、处理简单指令重复计算比较强,用在云计算架构形成CPU+FPGA的混合异构中相比GPU更加的低功效和高性能,适用于高密度计算,在深度学习的推理阶段有着更高的效率和更低的成本,使得全球科技巨头纷纷布局云端FPGA生态。
国外包括亚马逊、微软都推出了基于FPGA的云计算服务,而国内包括腾讯云、阿里云均在2017年推出了基于FPGA的服务,百度大脑也使用了FPGA芯片。中国刚刚被Xilinx收购的深鉴科技也是基于FPGA来设计深度学习的加速器架构,可以灵活扩展用于服务器端和嵌入式端。
3、ASIC
ASIC(Application Specific Integrated Circuits),即专用集成电路,是一种为专用目的设计的,面向特定用户需求的定制芯片,在大规模量产的情况下具备性能更强、体积更小、功耗更低、成本更低、可靠性更髙等优点。ASIC与GPU和FPGA不同,GPU和FPGA除了是一种技术路线之外,还是实实在在的确定的产品,而ASIC就是一种技术路线或者方案,其呈现出的最终形态与功能也是多种多样的。近年来越来越多的公司开始采用ASIC芯片进行深度学习算法加速,其中表现最为突出的是Google的TPU。
TPU比同时期的GPU或CPU平均提速1530倍,能效比提升3080倍。相比FPGA,ASIC芯片具备更低的能耗与更高的计算效率。但是ASIC研发周期较长、商业应用风险较大等不足也使得只有大企业或背靠大企业的团队愿意投入到它的完整开发中。AlphaGo就使用TPU,同时TPU也支持着Google的Cloud TPU平台和基于此的机器学习超级计算机。此外,国内企业寒武纪开发的Cambricon系列芯片受到广泛关注。华为的麒麟980处理器所搭载的NPU就是寒武纪的处理器。