分享

AI芯片之智能边缘计算的崛起

 个人图书馆semi 2018-02-26

基础层、算法层与应用层是人工智能产业链的三个组成部分。人工智能(AI)正在作为基础技术,改变不同的行业,并具有极其广阔的应用市场。考虑到深度学习等AI算法开源的发展趋势,基础层的数据与芯片将在未来竞争中占据越来越重要的地位。作为人工智能发展支柱的AI芯片(特指专门针对AI算法做了特定设计的芯片)更是人工智能行业的核心竞争力。

基于深度神经网络(DNN)在各个应用中表现出的巨大优势,本文的AI仅限于深度学习。下文将从AI计算与AI芯片出发,分析不同种类AI芯片间的区别,探索应用于终端推断(Edge Inference,EI)的AI芯片,即AI-EI芯片,并给出AI-EI芯片硬件架构特性,讨论多家AI-EI芯片公司,最后给出AI-EI芯片发展趋势及投资逻辑。


一、AI计算及AI芯片

近几年,深度神经网络(DNN)在图像识别、自然语言处理等方向上取得了前所未有的成功,并推动相关行业的快速发展。但是,这些应用中使用的深度神经网络的参数量巨大,模型训练(training)与推断(inference)都需要大量的计算,传统计算芯片的算力无法满足DNN计算需求。具有高算力的AI芯片能够满足AI行业计算需求并得到了快速发展。

2016年AI芯片全球市场规模为23.88亿美元,有机构预计到2020年AI芯片全球市场规模将达到146.16亿美元(终端AI芯片的市场规模),发展空间巨大。另外,各国纷纷把AI芯片定为自己的战略发展方向。

与传统CPU不同的是,AI芯片具有大量的计算单元,能够适合大规模并行计算的需求。基于通用性与计算性能的不同,可以把AI芯片分为GPU、FPGA、ASIC三大类。深度神经网络的基本运算单元是“乘-加”(MAC)操作。每次MAC中存储器读写操作如图1所示。



图1:每个MAC的读写操作

在AI应用中,CPU与AI芯片的计算能力是由芯片所具备的MAC能力及如何发挥芯片的MAC能力两个因素决定。

    CPU是通用芯片,CPU的大部分面积都被控制单元与缓存单元所占,只有少量的计算单元。另外,CPU的指令执行过程包括取指令、指令译码与指令执行三部分。只有在指令执行的时候,计算单元才能发挥作用。因而,CPU在发挥芯片的MAC能力方面亦比较一般。为了提高指令执行效率,CPU采用指令流水处理方式。

    GPU有大量的计算单元,适合大规模并行计算。但是,GPU也是通用芯片,其指令执行过程也由取指令、指令译码与指令执行三部分组成。该特征是制约GPU计算能力的主要原因之一。

    FPGA,即,现场可编程逻辑门阵列,是一种更接近I/O的高性能、低功耗芯片。FPGA是算法即电路,软硬合一的芯片。基于硬件描述语言,可以把算法逻辑直接编译为晶体管电路组合。由于FPGA的硬件电路是由算法定制的,其不需要取指令与指令译码过程,因而,FPGA能够充分发挥芯片的计算能力。另外,FPGA可以重复编程,因而具备一定的灵活性。

    ASIC,即,专用集成电路。类似于FPGA,ASIC采用的也是算法即电路的逻辑,亦不需要取指令与指令执行过程。另外,ASIC是为了特定的需求而专门定制的芯片,因而,能够最大程度发挥芯片的计算能力。但是,不同于FPGA的可重复编程,ASIC的设计制造一旦完成,就无法再改变,其灵活性较差。

在评价一个芯片架构性好坏时,有多种指标可供参考。其中,能耗与峰值计算能力(芯片结构中每秒计算操作数的总和,用OPS表示)是两个重要的衡量指标。不同指标间会相互制衡,一个指标的增高可能是以牺牲其它指标为代价而获取的。因而,常采用归一化的指标单位能耗算力(OPS/W),即,能效,来衡量芯片计算性能。实质上看,上述的四种芯片是通用性与能效trade-off的结果。能效方面,ASIC>FPGA>GPU>CPU。通用性则反之。

对于AI芯片,从市场格局来看,NVIDIA是GPU行业的绝对龙头。对于FPGA,XILINX、ALTERA(现并入INTEL)、LATTICE、MICROSEMI四家占据全球99%的市场份额。其中,XILINX、ALTERA两家占据全球90%的市场份额。另外,FPGA四大巨头拥有6000多项行业专利,形成该行业极高的技术壁垒。对于ASIC芯片,目前还未形成巨头垄断的市场格局,但是对于不同垂直领域,其情况不同,我们将在下文中给出详细分析。



图2:AI芯片象限图

深度学习分为两个阶段:模型训练与智能推断,如图2所示。模型训练需要大量的训练样本,基于梯度下降法,模型优化收敛到局部最优点。深度学习的模型训练需要几小时到多天的迭代优化,因而,现阶段,模型训练都在云端完成(我们认为具备持续学习能力是智能终端未来发展的方向,因而这里并不认为训练一定只在云端完成)。模型训练好之后,则能够基于该模型与输入数据,计算得到输出,完成智能推断。相比于模型训练,推断的计算量要小很多,可以在云端与终端完成。

现阶段,由于终端设备的计算力普遍有限,模型训练与推断大都在云端服务器上完成。在云端模型训练中,NVIDIA的GPU占主导地位,多GPU并行架构是云端训练常用的基础架构方案。在云端识别中,基于功耗与运算速度的考量,单独基于GPU的方式并非最优方案,利用CPU、GPU、FPGA、ASIC各自的优势,采用异构计算(CPU+GPU+FPGA/ASIC)是目前主流方案。

在计算机视觉、语音识别等应用中,终端采集数据(特别是图像数据),然后上传到云端处理的云计算对网络带宽与数据中心存储都带来越来越大的挑战。另外,无人驾驶等应用对实时性与安全性要求极高。网络的时延与稳定性所带来的安全隐患是无人驾驶等应用所无法忍受的。在终端采集数据,并完成数据处理,提供智能终端推断的边缘计算(Edge computing),因其能够满足实时性、安全性的需求,且能节约带宽与存储,得到越来越多的关注。我们判断inference将越来越多的在终端设备上完成,即,智能将会下沉到终端设备,智能边缘计算将会崛起。



图3:2017-2020全球AI终端芯片市场规模预测

实时性是选择在终端完成推断最主要的原因之一。但是,由于深度神经网络参数量巨大,推断过程需要完成大量的计算,其对终端硬件的计算力提出了很高的要求。另外,电池供电的终端设备对功耗也有极高的要求,且大多数的终端产品价格敏感。即,执行DNN推断的终端芯片对算力、功耗、价格都有严格的限制。研究用于DNN推断的AI-EI芯片是目前AI芯片行业最热的方向。现阶段,已有大量的初创公司,针对不同领域及应用,提出多种AI-EI芯片硬件设计架构,下文将详细给出AI-EI芯片的架构思路及发展现状。
二、AI-EI芯片及其架构

基于深度神经网络的广泛应用,科技巨头及初创公司都根据DNN的特性进行有针对性的硬件处理器研发。其中包括Google的TPU、寒武纪的DianNao系列、Eyeriss的NPU等AI芯片。本节将总结并给出这些AI-EI芯片如何在不降低准确率的前提下实现运算吞吐量提升,并降低能耗。

由前文可知,深度神经网络的基本运算为MAC操作,且MAC操作很容易被并行化。在DNN硬件设计中,常使用时间架构(temporal architecture)与空间架构(spatial architecture)两种高度并行化的计算架构,来获取高计算性能。

时间架构(Temporalarchitecture)

通用芯片CPU与GPU常采用时间架构,并使用单指令多数据流(SIMD)或者单指令多线程(SIMT)来提高并行化处理性能。时间架构基于中央控制器统一控制所有的ALU。这些ALU只能从层次存储器中取数据,而不能相互通信。

时间架构中,通常使用各种计算变换,特别是对卷积操作的计算变换,来减小计算复杂度,从而提升吞吐量,常用的方法包括:

    Toeplitz矩阵方法:把卷积操作转换为矩阵乘操作

    FFT方法:经过FFT变换,把卷积运算变成矩阵乘操作

    Winograd方法:比较适合较小的滤波器的情况

空间架构(spatial architecture)

基于ASIC或者FPGA的AI-EI芯片常使用空间架构。相对于通用芯片,专用芯片应用在特定场景,其功能有限。简单且规则的硬件架构是降低设计成本的基础,亦是实现低成本专用芯片的先决条件。足够低的芯片成本才能对冲专用芯片功能的局限性。

空间架构采用数据流(Dataflow)处理方式。在空间架构中,ALU形成一条数据处理链,从而能够在ALU间直接地传送数据。该空间架构中,每个ALU都有自己的控制逻辑与本地存储(寄存器堆)。其中,有本地存储的ALU被定义为PE。

对于空间架构,硬件设计基于层次存储器中的低能耗内存,并增加数据重利用率(实质上,卷积是空间重用,这种重用可以获取空间的不变性),来减小能耗。另外,数据流(Dataflow)控制数据读、写及处理。总体上,空间架构基于层次存储器与数据流平衡I/O与运算问题,从而降低能耗并提升运算吞吐量。下文将在分析层次存储器与数据流的基础上,讨论不同的技术路线的AI-EI芯片。

访问内存所需时间要远远大于计算所需时间。由深度神经网络的推断部分运算可知,每个MAC都需要三次内存读与一次内存写操作。其中三次内存读操作分别为读取输入数据、权值数据与部分和数据(partial sum),一次内存写操作为更新部分和数据。层次存储器基于内部寄存器等存储单元来减小对外挂内存访问次数,降低I/O需求。层次存储器如图4所示,该层次存储器包括PE内部的寄存器(RF)、用于ALU间直接传输数据时存储数据的内存单元NoC及连接DRAM的全局缓存器Buffer。由图4可以看到,层次存储器中,不同类别的存储器读写操作所消耗的能量不同,这也是我们能够利用层次存储器及数据复用来降低能耗的原因。

[1] [2]

关键字:边缘计算

编辑:冀凯 引用地址:http://www./qrs/article_2017122142543.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多