人工智能芯片的竞争:GPU 正红,ASIC 拥抱未来

1. AI 加速需求超过 CPU 计算能力摩尔定律供给

人工智能的三大支撑是硬件、算法和数据,其中硬件指的是运行 AI 算法的芯片与相对 应的计算平台1。在硬件方面,目前主要是使用 GPU 并行计算神经网络,同时,FPGA 和 ASIC 也具有未来异军突起潜能。目前 AI 芯片按照使用场景可以分为:云端(服务器端) 和终端(移动端)芯片。云端主要指公有云、私有云、数据中心等需要用到的神经网络专 用服务器,终端指手机、车载、安防、音响、机器人等移动应用终端。有的厂商同时具备 云端和终端芯片的设计能力。

机器学习不断演进,深度学习出现。人工智能是应用范畴的词汇,机器学习是目前最 有效实现人工智能的方法。深度学习是机器学习的子类,也是现有机器学习方法中,最奏 效的一类。

QQ20171103-190222@2x

深度学习的人工神经网络算法与传统计算模式不同。它能够从输入的大量数据中自发 的总结出规律,从而举一反三,泛化至从未见过的案例中。因此,它不需要人为地提取所 需解决问题的特征或者总结规律来进行编程,是通过大量样本数据训练建立了输入数据和 输出数据之间的映射关系,其最直接的应用是在分类识别方面。例如训练样本的输入是语 音数据,训练后的神经网络实现的功能就是语音识别,如果训练样本输入是人脸图像数据, 训练后实现的功能就是人脸识别。

传统计算机软件是程序员根据所需要实现的功能原理编程,输入至计算机运行即可, 其计算过程主要体现在执行指令这个环节。而深度学习的人工神经网络算法包含了两个计 算过程:

1. 训练:用已有的样本数据去训练人工神经网络。

2. 执行:用训练好的人工神经网络去运行其他数据。

QQ20171103-190306@2x

CPU 基于低延时的设计,有强单次逻辑处理能力,但面对有限功耗的大量数据处理能 力有限。中央处理器 CPU 需要很强的处理不同类型数据的计算能力以及处理分支与跳转的 逻辑判断能力,这些都使得 CPU 的内部结构异常复杂。

深度学习模型需要通过大量的数据训练才能获得理想的效果。骤然爆发的数据洪流满 足了深度学习算法对于训练数据量的要求,但是算法的实现还需要相应处理器极高的运算 速度作为支撑。当前流行的包括 X86 和 ARM 在内的传统 CPU 处理器架构往往需要数百甚 至上千条指令才能完成一个神经元的处理,但对于并不需要太多的程序指令,却需要海量 数据运算的深度学习的计算需求,这种结构就显得非常笨拙。尤其是在当前功耗限制下无 法通过提升 CPU 主频来加快指令执行速度,这种矛盾愈发不可调和,深度学习需要一种替 代硬件来满足海量数据的运算需求。

QQ20171103-190345@2x

除了 CPU 以外,AI 使用的主流芯片种类有: GPU、FGPA、ASIC。

QQ20171103-190413@2x

2. GPU 将最早受益于安防等需求爆发

GPU:图形加速起家,较成熟生态系统,最先被引入深度学习。GPU(Graphics Processing Unit)称为图形处理器,它是显卡的“心脏”,与 CPU 类似,只不过是一种 专门进行图像运算工作的微处理器。GPU 是专为执行复杂的数学和几何计算而设计的,这 些计算是图形渲染所必需的。GPU 在浮点运算、并行计算等部分计算方面可以提供数十倍 乃至于上百倍于 CPU 的性能。英伟达公司从 2006 年下半年已经开始陆续推出相关的硬件 产品以及软件开发工具,目前是人工智能硬件市场的主导。GPU 对海量数据并行运算的能 力与深度学习需求不谋而合,因此,被最先引入深度学习。2011 年吴恩达教授率先将其应 用于谷歌大脑中便取得惊人效果,结果表明,12 颗英伟达的 GPU 可以提供相当于 2000 颗 CPU 的深度学习性能。

在 CPU 上约有 20%的晶体管是用作计算的,而 GPU 上有 80%的晶体管用作计算。

QQ20171103-190447@2x QQ20171103-190455@2x

GPU 天然具有三个方面局限性。GPU 作为图像处理器,设计初衷是为了应对图像处理 中需要大规模并行计算。因此,其在应用于深度学习算法时,有三个方面的局限性:

1. 应用过程中无法充分发挥并行计算优势。深度学习包含训练和应用两个计算环节, GPU 在深度学习算法训练上非常高效,但在应用时一次性只能对于一张输入图像进行处理, 并行度的优势不能完全发挥。

2. 硬件结构固定不具备可编程性。深度学习算法还未完全稳定,若深度学习算法发生 大的变化,GPU 无法像 FPGA 一样可以灵活的配置硬件结构

3. 运行深度学习算法能效远低于 FPGA。学术界和产业界研究已经证明,GPU 计算方 式与深度学习算法并非完全匹配,性能峰值无法被完全利用。运行深度学习算法中实现同 样的性能,GPU 所需功耗远大于 FPGA。例如国内初创企业深鉴科技基于 FPGA 平台的人 工智能芯片在同样开发周期内相对 GPU 能效有一个数量级的提升。

3. FPGA:能效居中的中间方案

FPGA:能效中等、灵活度高、成本较高的 AI 白板。FPGA(Field-Programmable Gate Array)称为现场可编程门阵列,用户可以根据自身的需求进行重复编程。FPGA 比 GPU 具有更低的功耗,比 ASIC 具有更短的开发时间和更低的成本。自 Xilinx 在 1984 年 创造出 FPGA 以来,在通信、医疗、工控和安防等领域占有一席之地,在过去几年也有极 高的增长率。而进入了最近两年,由于云计算、高性能计算和人工智能的繁荣,拥有先天 优势的 FPGA 的关注度更是到达了前所未有的高度。

目前来看,FPGA 在两个领域的应用前景十分巨大:工业互联网领域、工业机器人设备 领域。

 作为未来制造业发展的方向,工业大数据、云计算平台、MES系统等都是支持工业 智能化的重要平台,它们需要完成大数据量的复杂处理,FPGA 在其中可以发挥重要作用。

 在多轴向运作的精密控制、实时同步的连接以及设备多功能整合等方面,兼具弹性 和整合性的 FPGA,更能展现设计优势。如汽车 ADAS 需要对实时高清图像进行及时的分 析识别与处理;在人工智能方面,深度学习神经网络也需要进行大量并行运算。

就目前的市场而言,英特尔、IBM、德州仪器、摩托罗拉、飞利浦、东芝、三星等巨 头纷纷涉足 FPGA,但最成功的是 Xilinx 与 Altera。这两家公司共占有近 90%的市场份额, 专利达到 6000 余项。Intel 在 2015 年以 161 亿美元收购了 Altera,也是看中 FPGA 专用 计算能力在人工智能领域的发展。从行业巨头巨头的动作可以看出,由于 FPGA 在计算能 力和灵活性上大大弥补了 CPU 的短板,未来在深度学习领域,CPU+FPGA 的组合将成为 重要的发展方向。

FPGA 与 GPU、CPU 相比,具有性能高、能耗低、可硬件编程的特点:

 性能:虽然FPGA的频率一般比CPU低,但是可以用FPGA实现并行度很大的硬 件计算器。比如一般 CPU 每次只能处理 4 到 8 个指令,在 FPGA 上使用数据并行的方法可 以每次处理 256 个或者更多的指令,因此 FPGA 的数据吞吐量远超 CPU。

 能耗:CPU的解码器通常会占总能耗的50%,而在GPU中,即使其解码器的部分 相对较小,也会消耗 10%-20%的能源。相比之下,由于 FPGA 内部结构没有解码器,加 之 FPGA 的主频比 CPU 及 GPU 低很多,通常 CPU 和 GPU 的主频在 1-3GHz 之间,而 FPGA 的主频在 500MHz 以下,因此 FPGA 的能耗要远低于 CPU 及 GPU。

 可编程:FPGA 支持硬件编程。FPGA 能够使用户较为方便的设计出所需的硬件逻 辑,而且可以进行静态重复编程和动态系统重配置,使系统的硬件功能可以向软件一样通 过编程来修改,实现灵活而方便的更新和开发,大大提高系统设计的灵活性和通用性。

QQ20171103-190541@2x

尽管 FPGA 倍受看好,甚至新一代百度大脑也是基于 FPGA 平台研发,微软、IBM 等 公司都有专门的 FPGA 团队为服务器加速,但其毕竟不是专门为了适用深度学习算法而研 发,实际仍然存在不少局限:

1. 基本单元的计算能力有限。为了实现可重构特性,FPGA 内部有大量极细粒度的基 本单元,但是每个单元的计算能力(主要依靠 LUT 查找表)都远远低于 CPU 和 GPU 中的 ALU 模块。

2. 速度和功耗有待提升。相对专用定制芯片 ASIC,FPGA 在处理速度和功耗方面仍然 存在不小差距。

3. FPGA 价格相对较为昂贵。在规模放量的情况下单块 FPGA 的成本要远高与 ASIC, 因此 FPGA 更适用于企业级用户,尤其是重配置、性能需求较高的军工和工业电子领域。

4. ASIC:能效顶级、拥抱未来

ASIC:功能特定的最优功耗 AI 芯片。ASIC(Application Specific Integrated Circuit) 是一种为专门目的而设计的集成电路。专为特定目的而设计,无法重新编程,效能高功耗 低,但价格昂贵。Google 的 TPU 就属于 ASIC,因 Google 规模够大,相关的一次性工程 费用可以透过省下的功耗成本加以补贴。

科技巨头纷纷在 ASIC 深度学习芯片上发力。传统的神经网络算法在通用芯片(CPU 和 GPU)上效率不高,功耗比较大,因此从芯片的设计角度来说,通用型往往意味着更高的成 本。于是出现了特定的算法加速器,来加速包括卷积神经网络、递归神经网络在内的各种 神经网络算法,专用芯片的最大优势在于其成本和功耗降低。专用深度学习芯片将大幅提 升人工智能算法运行效率,推动人工智能产业加速发展。

QQ20171103-190623@2x

QQ20171103-190637@2x QQ20171103-190653@2x

ASIC 的另一个未来发展是类脑芯片。类脑芯片是基于神经形态工程、借鉴人脑信息处 理方式,适于实时处理非结构化信息、具有学习能力的超低功耗芯片,更接近人工智能目 标,力图在基本架构上模仿人脑的原理,用神经元和突触的方式替代传统“冯•诺依曼”架 构体系,使芯片能进行异步、并行、低速和分布式处理的能力,同时具备自主感知、识别 和学习能力。IBM 的 NorthTrue 即属于类脑芯片。目前类脑芯片尚处于初期,距离商业化 还存在一段距离,这也是各国正在积极布局的地方。

QQ20171103-190742@2x

性能上看,ASIC 全面领先 GPU/FPGA。CPU/ GPU/ NPU/TPU/ XPU 的论文表明, ASIC 无论面积、峰值运算、功耗都优于 GPU、FPGA,DIANNAO 系列总体能耗更能达到 百倍级 GPU。从应用场景来看寒武纪 DIANNAO 系列芯片 (DIANNAO/DADIANNAO/SHIDIANNAO)应用场景全面。

QQ20171103-190810@2x

我们得出以下观点:

 GPU 在训练层应用广泛,ASIC 在执行层表现较好。根据 Google TPU 论文,训练 层神经网络以浮点计算为主,同时已经形成完整生态系统2。所以 GPU 较适合。在应用层面,无论 TPU、NPU 能耗均可达到 30-80 倍 K80GPU 水平(优化后可达到 70-200 倍)

 GPU、TPU 和 NPU,适合的人工智能操作也不同。GPU 的计算能力最强,适合所 有操作;TPU 主要从事多层神经网络(MLP)、长短期记忆网络(LSTM),因为谷歌认 为这是其最实用的 AI 操作(谷歌称“多层感知(MLP)占 Google AI 开发工作的 61%。虽 然大部份的架构师一直在加速 CNN 设计,但这部份只占 5%的工作负载”);NPU 主要 优化了卷积(Conv)和池化(Pool)

 不同种类的芯片适用于不同的场景。GPU 和 CPU 适合消费和企业级;FPGA 更适 用于企业用户,尤其是对芯片的可重配置需求较高的军工和工业电子领域,非常适合在云 端数据中心部署;ASIC 如能达到量产,成本相对 FPGA 方案较低,能耗更更适用于消费级 市场。ASIC 具体来看,TPU 适合搜索/翻译/相册等;DIANNAO 系列覆盖所有神经网络应 用。

5. 寒武纪终端闪耀、云端推进
目前 AI 芯片按照使用场景可以分为:云端(服务器端)和终端(移动端)芯片。场景、生态、能耗决定产业演进曲线。
QQ20171103-190949@2x

云端 AI 芯片类似于超级计算机。一方面要支持尽可能多的网络结构以保证算法的正确 率和泛化能力;另一方面必须支持高精度浮点数运算,峰值性能至少要达到 Tflops(每秒 执行 10^12 次浮点数运算)级别,所以功耗非常大;而且为了能够提升性能必须支持阵列 式结构(即可以把多块芯片组成一个计算阵列以加速运算)。

终端 AI 芯片更偏重能耗。终端 AI 芯片在设计思路上与云端芯片有着本质的区别,因 为移动应用首先要控制功耗,参考 ARM 在移动端战胜 X86 架构历史。必须保证很高的计算能效;为了达到这个目标,终端芯片必须选择折中,允许用计算精度换取功耗,因此可 以使用一些定点数运算以及网络压缩的办法来加速运算。可以用 “蒙代尔不可能三角”帮 助理解,即在资本流动、货币政策的有效性、汇率制度三者之间存在折中, 不可兼得。

QQ20171103-191031@2x

先发优势与浮点计算峰值决定 GPU 目前在云端处于主导地位。云的一大特点就是数据 量大,CPU 的架构不能满足需要处理大量并行计算的 AI 算法,GPU、FPGA 和 ASIC 应运 而生。GPU 占据云端 AI 芯片主要市场,FPGA 在数据中加速发展较快,ASIC 目前只是应 用在巨头的闭环生态中。由于最早建立 GPU 运算平台 CUDA,并支持各类深度学习框架, 最受益 GPU 的厂商莫属于英伟达。根据英伟达披露,与英伟达合作开发深度学习项目的公 司从 2014 年的 1549 家上升到 2016 年的 19439 家,阿里、亚马逊和微软等巨头均采用 英伟达的 GPU 对云平台加速。

QQ20171103-191107@2x

产品持续迭代,英伟达垄断 GPU 市场。英伟达占据全球 GPU 超过 70%的市场份额, GPU 产品占据公司 2016 年 84%的收入来源。英伟达 GPU 的产品包括游戏显卡 GeForce、 用于深度学习的 Tesla 和智能驾驶的 Tegra。2017 年 5 月,英伟达推出 Tesla V100,比 上一代产品 P100 增加了与深度学习相关的 Tensor 单元,Tensor 的性能可以达到 120 TFLOPS(对比 TPU2 为 45 TFLOPS)。产品的持续迭代使英伟达即使面对 FPGA 和 ASIC 的加剧竞争,GPU 在 AI 芯片仍将占据强有力的地位。

QQ20171103-191133@2x QQ20171103-191143@2x

能耗优势,ASIC 亦拥抱云端未来。不同于 GPU 和 FPGA 的灵活性,定制化的 ASIC

一旦制造完成将不能更改,所以初期成本高、开发周期长的使得进入门槛高。目前,大多 是具备 AI 算法又擅长芯片研发的巨头参与,如 Google 的 TPU。因为 ASIC 是定制化的, 所以在性能和功耗上都要优于 GPU 和 FPGA,TPU1 是传统 GPU 性能的 14-16 倍,NPU 是 GPU 的 118 倍(数据见表 1)。同时规模效应会使得 ASIC 的成本降低,所以 ASIC 将 是未来 AI 芯片的核心。

寒武纪在 ASIC 全面领先,指令集是杀手锏创新。寒武纪于 2016 年推出国际首个神经 网络通用指令集 DianNaoYu(电脑语),ISCA2016 接收,分数第一。2016 年国际计算 机体系结构年会中,约有 1/6 的论文都引用寒武纪开展神经网络处理器研究。根据相关新 闻,智能 IP 指令集可授权集成到手机、安防、可穿戴设备等终端芯片中,客户包括国内顶尖 SoC 厂商,目前已经开始投入市场。而 2016 年全年就已拿到 1 个亿元订单。在未来发 展中,指令集专利优势将是竞争核心。

终端应用逐步增强,NPU 已形成事实上落地。由于网络传输的时延和安全性,云端的 应用场景中将会部分转移到终端,而转移到终端的是推断部分。基于大数据的训练过程需 要大量的服务器处理,所以该部分仍将在云端运行。智能终端通常采用的是 CPU 和 AI 算 法的方式,未来的终端场景需要应对的是大数据量(如安防)、实时性(如无人驾驶)、 低功耗(如手机、AR/VR),所以未来需要的是专属芯片。

  •   AI 芯片在智能安防领域已经落地,海康和大华两大安防巨头均采用英伟达的 Jetson TX1 的 GPU 实现。
  •   智能驾驶以ADAS芯片为核心,各巨头纷纷布局:英伟达发布专注于无人驾驶的 芯片 Xavier;高通发布智能汽车骁龙 820A 芯片
  •   手机是最重要的移动终端产品:苹果的 iPhone X 采用的 A11 就是基于神经网络 的芯片“Bionic 神经引擎”,其 Face ID 的面部数据都由该芯片处理。华为于 2017 年 9 月发布了全球首款移动端 AI 芯片麒麟 970,并应用在 Mate 10 手机中,这 是华为和寒武纪深度合作,集成了专用于神经网络的 NPU。根据华为公布的测试 数据,在处理相同的 AI 应用任务时,麒麟 970 的 HiAI 异构计算架构拥有大约 50 倍能效和 25 倍性能优势。9 月 4 日,有媒体披露了中科院发给华为的贺信3,称 寒武纪公司研制并具有自主知识产权的“寒武纪 1A 深度学习处理器”,在人工 智能应用上达到了 4 核 CPU25 倍以上的性能和 50 倍以上的能效。此次,麒麟 970 芯片集成寒武纪 1A 处理器作为其核心人工智能处理单元,实现了手机上本 地、实时、高效的智能处理。

QQ20171103-191250@2x

沪公网安备 31010702002009号