无论云端训练还是边缘端推理,AI都需要高能效的算力支持,而AI芯片无疑是输送算力的硬件保障。传统的通用型CPU、GPU甚至FPGA难以满足特定应用场景的AI需求,基于特定域架构(DSA)的AI芯片和深度学习加速器(DLA)应运而生,这为专门开发AI芯片的初创公司带来了发展机会,并在全球范围催生了多家AI芯片独角兽公司。
然而,经过几年的喧闹后,AI应用场景的落地成为最大难题。AI芯片的设计不是简单的高性能微处理器硬件设计,而是涉及应用场景特定需求和算法的软硬件一体化设计。那么,AI芯片的技术发展未来在哪里?如何真正实现AI场景落地实施和商用呢?
软硬件全栈集成处理器
AI芯片是针对人工智能领域的专用芯片,主要支撑AI算法的运行,它是一种软硬件全栈集成的专用处理器。
人工智能与其它应用领域有很大的不同,主要体现在如下四个方面:
1.AI有着快速增长的市场需求。除了CPU和其他通用计算覆盖的市场外,AI芯片是新兴领域中需求量最大的计算处理芯片。
2.AI算法的计算量巨大。随着数据积累和更复杂算法的出现,对计算能力的需求也在快速提高。同时,实时计算进一步增加了对计算芯片响应能力的需求。
3.AI算法的并行计算特征。AI算法有大量的规则可以并行计算操作,例如像矩阵、卷积运算等这些操作里面存在大量可以并行处理的数学结构,我们可以用并行计算对其进行加速。
4.计算本身的可复用性。除了单纯的计算以外,数据计算结构上还有一个很大的特点,就是大量的数据复用是可以被挖掘的。有了数据复用,我们就可以设计更好的存储结构来优化芯片的处理效率。
基于深度学习的人工智能计算有自己独特的计算特征,且计算量、数据量、带宽都非常大。传统的计算架构不具备针对性,应对起来显得力不从心。而AI 芯片里的AI 处理器针对AI计算需求做出了针对性的加强补充,让其具备澎湃算力、超大带宽、丰裕存储,并可让其计算方式特别适合AI计算领域的算法需求。
上海燧原科技AI处理器研发资深总监冯闯认为,在深度学习计算中,从顶层的软件框架、算子、设备驱动到底层的硬件AI处理器,软件的垂直整合一直深入到AI处理器的核心指令定义及架构,贯彻了自上而下的设计思路。为了达到极致性能,有些高频操作是需要在计算设备端进行的,比如大量的数据流调度、数据整形、同步、计算图流程处理等。所以系统的软硬件边界上移,深度学习软件栈的大部分操作可以直接运行在计算设备之上,这样能够大幅减少主机和端侧的同步开销和数据搬运开销,从而提供更好的性能。
例如,燧原科技的通用AI训练芯片专为人工智能计算领域而设计,基于这种芯片的AI加速卡、燧原智能互联技术,以及“驭算”计算及编程平台可实现深度全栈集成,为编程人员提供针对性的加速AI计算。
AI领域对AI芯片的需求是硬件加速和内嵌于硬件的特定功能,以管理人工智能/机器学习(AI/ML)任务,同时需要一整套成熟的软件和工作流工具解决方案,以使开发人员和数据科学家能够专注于他们在应用方面的创新。AI处理器也需要有完整的软件栈,以便可以轻松地管理训练、测试、精度优化和部署。
此外,AI芯片也是一个计算平台,用来支撑城市管理、工业控制、自动驾驶和办公自动化等各个应用领域的计算。作为通用计算平台,AI芯片需要支持整个算力的生态,支持不同算法、不同软件应用的运行及部署,故而需要软件工具才能真正发挥出AI芯片的价值。
因此在设计AI芯片时,其内部架构会针对人工智能领域的各类算法和应用作专门优化,为常见的神经网络计算设计专用的硬件计算模块,以便高效支持视觉、语音、自然语言处理和传统机器学习等智能处理任务,使之更适合AI算法和AI应用。
除了硬件(处理器)本身,AI芯片的实际应用还涉及架构配套软件、开发工具等,需要考虑到主流的开发环境、用户使用习惯、不同操作系统、不同开发框架,保证软件易用性,以实现快速部署和系统集成。总之,AI芯片是一个软硬件一体的处理器,需要系统架构、软件工具和生态的支撑,才能更好的支持算法部署和应用场景落地。
指令集架构 VS. 数据流架构
AI芯片的设计架构有很多种,从底层计算机体系结构的角度来看,主要有指令集架构和数据流架构。指令集的发展相对较早,CPU、GPU及TPU的底层架构都是依托于冯诺依曼体系的指令集架构,其核心思路是将计算分为处理单元、控制单元、存储指令的指令存储器,以及存储数据的数据存储器。其中控制单元用于读取指令和数据,让处理单元完成整个计算过程。现代指令集架构引入了流水线处理、数据缓存、数据预取等多种架构创新,以不断降低由于数据和指令等待带来的计算资源闲置。但是,导致指令集架构计算空闲的核心问题并没有彻底解决,而且指令集架构不断提升的峰值算力也进一步加剧了指令集架构的闲置时间。
面向特定领域的应用,数据流架构开始发挥出高性能的优势。针对AI领域的算力平台需求,数据流架构依托数据流动方式来支持计算。据鲲云科技创始人兼CEO牛昕宇博士介绍,
数据流架构不依托指令集执行次序,其数据计算和数据流动重叠,可以压缩计算资源的每一个空闲时间,突破算力性能瓶颈。与此同时,数据流架构通过动态重构数据流流水线,能够通用支持主流人工智能算法,满足计算平台的通用性要求。比如,鲲云近期发布的星空X3加速卡采用的就是定制数据流技术,其AI芯片利用率最高可达到95.4%。基于数据流架构的AI芯片可以突破指令集架构芯片的利用率局限性,在同等峰值算力前提下可提供更高的实测性能。
CAISA 3.0架构图(来源:鲲云科技)
数据流架构的难点在于为不同的算法模型设计不同的流水通路,如果把AI运算的所有运算单元全都变成一个数据流流水线,会导致算法结构越大,流水线越深,直至超出芯片资源限制。所以规模商用的数据流架构中流水线通过支持数据流流水线的复用来解决这一问题。以CAISA架构为例,单个CAISA引擎所形成的流水线可支持单层或多层网络,并通过数据在引擎内循环流动支持算法网络中数百层甚至无上限的层级在CAISA引擎中运行。不会因为芯片面积对所支持的算法网络大小带来限制,同时又可以用数据流的计算方式支持网络计算,为算法模型提供更高效和更通用的AI算力支撑。
赛灵思(Xilinx)人工智能研发高级总监单羿则认为,无论哪种架构其实都是在引擎内部计算阵列和数据发射和存贮的组织方式,今天看来已经不是区分AI芯片架构的主要特征。AI芯片有一个非常通俗的理解,那就是大核还是小核。其区别在于,你是做一个或若干个大规模的单引擎,还是利用成百上千个小规模的引擎来提升计算的性能。
数据流架构的优势就是可以省掉不同的处理模块之间的缓冲,将多种运算单元进行级联处理。是不是可以把AI运算的所有运算单元全都变成一个数据流的架构?显然这是不现实的,因为深度神经网络层级是比较深的,很难把所有的运算都变成全数据流架构。根据赛灵思的工程设计经验,可以将一些层融合在一起变成数据流的架构,当作一个单元,进而复制到多层运算。
GPU、FPGA和ASIC(或DLA)的综合能效对比
当前主流的 AI 芯片主要有GPU、FPGA和ASIC(或深度学习专用加速器DLA)。图形处理器(GPU)基于多核的特性,由大量内核组成大规模并行计算架构,再配合GPU的软件生态支持人工智能开发。凭借丰富的软件生态系统和开发工具,再加上易于部署的特点,由英伟达主导的GPU在早期的人工智能计算中得到了大量采用,直到现在仍是最为普及的AI处理器。
据Imagination产品营销高级总监Andrew Grant称,GPU尤其适合AI训练或者运行计算工作负载。比如,Imagination的神经网络加速器(NNA)是专门针对乘累加(MAC)功能设计的,这对于神经网络工作负载而言是必不可少的。嵌入式GPU在运行神经网络任务方面比嵌入式CPU快10-20倍,且效率更高,而NNA可以比CPU快100-200倍,在性能方面又有10倍的提升。
FPGA(现场可编程门阵列)是一种半定制的电路硬件,其功能可以通过编程来修改,并行计算能力很强。可以针对不同的需求,在FPGA上实现多种硬件架构,在特定领域构建合适的加速单元来获得最优的处理效果。另外,FPGA在数据精度上是最灵活的,因为从比特级到4比特、8比特、半精度、全精度,这些都可以实现。尤其是在低比特的定点运算中,它会有更大的优势。
ASIC是面向特定应用需求而定制开发的芯片,通常具有更高的性能和更低的总体功耗。但是,ASIC不能适应快速变化的AI网络模型和新的数据格式,如果没有足够大的出货量可能难以抵消高昂的开发成本。在性能表现上,针对特定领域的ASIC芯片通常具有优势。如果出货量可观,其单颗成本可做到远低于FPGA和GPU。
像NNA或DLA这样的ASIC以超高效率运行AI任务为首要设计目标,要比其他替代方案快几个数量级,并且具有高能效比(TOPS/watt)。当以集群方式使用多个专用内核时,甚至可以提供高达500 TOPS的运算能力。随着AI应用场景的落地,专用的ASIC芯片量产成本低、性能高、功耗低的优势会逐渐凸显出来。
下表简单地比较了FPGA、GPU和ASIC架构的性能、功耗和灵活性。
AI部署模式正在发生转变,它们不仅被部署于数据中心,而且越来越多地被部署在功耗和散热要求比较严格的边缘设备上。现在,每瓦功耗所提供的性能(或称为性能/功耗比)通常比简单的性能指标(TOPS)更为重要。随着AI算法的不断演进,网络模型和数据格式也在不断演化发展。GPU、FPGA和ASIC各有优缺点,因此都会在各自适合的AI应用场景找到用武之地。
人工智能和5G爆发对AI芯片设计的影响
AI和5G的爆发将为边缘AI芯片的应用与发展带来正向促进作用。得益于5G商用的推动,边缘计算需求增长,越来越多边缘服务器部署,人工智能在边缘侧的应用趋势也不断增强。5G大带宽、低时延的特点打破了以往由于网络带宽和速率的局限,使得对响应高计算量、毫秒级低时延的场景落地更加现实,比如车联网、智能制造、医疗等。
此外,5G的到来使得边缘和数据中心之间的界限变得更加模糊,计算处理任务分配会更合理,边缘端和云端更有机地结合。而且5G传输的损耗和延迟变小,我们可以做更多的应用,对云端AI芯片的使用效率也有更大的提升。
AI已经越来越多地融入我们的工作和生活,也开始创造一些真实的价值,比如通过AI对新冠疫情进行有效地控制。地平线联合创始人兼技术副总裁黄畅在采访中表示,地平线一直在思考如何在边缘做Al芯片及解决方案,以及如何让AI广泛落地。地平线最近发布了新一代AIoT边缘AI芯片平台—旭日3,其AI计算能力能够适应先进的神经网络。基于自主研发的AI专用处理器架构BPU(Brain Processing Unit),旭日3芯片最大的亮点就是BPU优化,带来软硬协同的硬件架构。借助这一AI芯片平台,地平线将持续深化在AIoT领域的战略布局与行业场景渗透,发挥软硬结合优势,通过芯片工具链与全场景一站式解决方案赋能各个行业,更高效地落地AI应用,全面释放AI动能。
和5G的普及也将AI芯片的应用场景扩展到工业领域。Andrew Grant列举出5G在智能工厂的用例,基于“机器人集群”方式对工业机器人进行管理。在这种方式中,指令可以从集群中心发送给机器人,也可以利用半联邦学习(semi-federated learning)方法在机器人之间传送。在使用机器人和数字孪生技术的智能工厂,货物拣选、包装和运输的每个环节都将实现自动化,同时计算机视觉任务与神经网络相结合可以支持机器人去识别、拣选、分类和包装所有类型的产品。此外,可以将机器人部署在人类不想去的地方,比如不太适合人类的3D(Difficult困难、Dirty肮脏、Dangerous危险)环境。在当前的疫情下,我们已经看到机器人和机器车深入参与到很多健康保障应用场景中,我们将越来越多地看到AI被广泛部署在医院和医疗保健领域。
从数据中心到边缘设备,人工智能应用场景的激增将推动AI芯片的设计向前发展,以实现更高的能效比,并提供硬件可编程性来支持各种工作负载。由于散热和功耗的限制,能效比在边缘上至关重要,其重要性远高于在数据中心中的应用。
随着人工智能被越来越多地部署在边缘位置,并与5G提供的实时处理能力相结合,市场将需要一种全新的AI芯片架构,它必须具有低功耗和可编程性。此外,它需要提供延迟极低的处理能力,并且每种设计的应用批量比以前更小。针对这些应用需求,Achronix开发出现场可编程且能够适应变化工作负载的Speedster7t系列FPGA芯片。
据Achronix公司产品营销总监Bob Siller介绍,该FPGA芯片支持数据速率高达112Gbps的高速I/O,连接到高性能处理单元就可以满足边缘应用的低延迟和高确定性处理要求。此外,其内置的高性能机器学习处理器是带有本地内存的高速算术单元,用于存储AI算法所需的系数和权重。
5G和AI的发展都对算力提出了更高的需求,也对AI芯片架构和软件支持提出了越来越高的要求。更高性能、更低功耗、更小面积、更低成本永远都是芯片设计追求的目标。牛昕宇博士强调,峰值性能、功耗、芯片面积和成本这些指标除了与设计相关,更关键的影响因素是芯片采用的工艺。在同等芯片面积下,更先进的工艺明显有助于提升峰值性能和能效比,但这也同时会带来芯片开发成本的显著提升。鲲云科技采用了一条与众不同的技术路线,就是提升芯片的利用率。通过定制数据流架构把芯片利用率提升到95%甚至更高,在同样的工艺下可以给芯片带来更高的实测性能和更高的算力性价比。
AI芯片在云端和边缘端的发展瓶颈
在云端训练和云端推理计算领域,AI芯片发挥着巨大的加速作用。与此同时,它也面临着一些挑战。作为AI算力的主要应用场景,云端发展需要解决算力性价比与通用性问题。算力性价比决定了人工智能应用的部署成本,而算力通用性及软件生态决定着不同算法的迁移及开发成本。
提升算力性价比有两个方式,一方面可以通过提升芯片峰值算力获得,这需要大量资金投入不断迭代工艺制程;另一方面可以通过提升芯片利用率获得,在同等的峰值算力下发挥更高的实测性能。鲲云科技的牛昕宇博士认为,对于初创企业而言,通过底层架构创新大幅拉开芯片利用率差距,从而获得产品层面的竞争优势,是突破现有巨头竞争格局下算力瓶颈的一条有效道路。
云端计算芯片的算力提升时,功耗上升得非常快,容易遇到功耗墙。虽然芯片硬件规格上提供了澎湃算力,但是当被功耗墙频繁阻挡住时,客户所得算力也受限,因此能耗成为发挥芯片算力的瓶颈。燧原科技的冯闯认为,既要提高能耗比、又能够支持灵活多变的计算形式需求,这是AI芯片在发展过程中的很大挑战。
在云端训练方面,单个AI芯片因为散热问题而到了天花板,业界开始采用成百上千个GPU集群进行训练,但这又出现了多机多卡的通信效率问题。而在云端推理方面,面临的是单芯片的峰值算力问题。在功耗、访存带宽以及工艺限制情况下,效率怎样才能设计到最优?这就涉及到芯片的微架构改进,包括引擎内计算架构、并行的处理架构、层次化的存储能力等。
总之,对良好编程模型的支持、能耗比、算力性价比,以及灵活的计算形式支持,是针对云端AI训练的AI芯片发展路上必须要克服的瓶颈。
在边缘和终端这一侧,AI芯片所面临的挑战是它们会被部署在各种各样的应用环境中。芯片供应商通常会想方设法将成本和芯片面积最小化,其实他们更应该放眼未来,将灵活性和性能构建于自己的系统级芯片(SoC)中。此外,SoC外围的一些接口和模块需要和具体的场景相结合。例如,用在工业场景的芯片是很难用到自动驾驶的,而用在监控里的芯片跟前面两种又不一样。
即便在同一个垂直场景里,也需要考虑不同模块之间的任务负载均衡问题。赛灵思的单羿认为,FPGA因为有灵活可编程的优势,可以根据场景的持续需求调整这些模块之间的资源占用比例,从而达到全系统最优的效果。
ADAS/自动驾驶应用场景落地
AI芯片的落地意义在于依托于AI芯片,能形成有竞争力的人工智能解决方案。AI芯片的核心功能就是实现AI算法的计算加速,需要针对落地场景、算法精度、行业应用需求端到端打磨AI芯片及软件支持,深度融合AI芯片硬件及软件以支持人工智能方案落地。
在ADAS/自动驾驶应用场景下,AI芯片的核心价值就是实时处理行驶道路上的人、车、物等复杂环境的感知和决策。要处理来自不同传感器(激光雷达、摄像头、毫米波雷达等)所采集的多样化信息,AI芯片必须具有超高的算力和极致效能,因为这些信息的处理需要在非常高分辨率的情况下做大量计算,才能够把环境感知到足够准确。此外,这些感知和决策是和人的安全直接相关的,所以对精度和可靠性也有极高的要求。
到目前为止,在自动驾驶/ADAS场景中的AI和计算任务还都是在通用CPU/GPU上运行,而不是专用AI芯片。然而这一切将会改变,因为低功耗、高性能的嵌入式AI芯片将在ADAS所要执行的任务中带来出色表现,因为ADAS依赖于运行多个网络来高速、准确地提供数据驱动的决策。
正如地平线创始人兼CEO余凯的比喻,车载AI芯片其实就是智能化汽车的数字发动机,算力就好比智能汽车的脑容量,自动驾驶每往上提升一级,所需的芯片算力就要翻一个数量级。要实现完全自动驾驶,需要在四个轮子上搭载“天河二号”级别的计算能力。
以地平线已经大规模商用落地的车规级AI芯片——征程2为例,它基于软硬结合的创新设计理念,可提供4 TOPS等效算力,典型功耗仅2瓦;而且具有极高的算力有效性,每TOPS算力可达同等算力GPU的10倍以上。该芯片现已应用于智能辅助驾驶、高级别自动驾驶、高精建图与定位,以及智能座舱等智能驾驶场景。
AI芯片遇到的技术难题在于灵活开放地匹配多样化上层应用。现在整车企业需要掌握越来越多的自主软件迭代开发能力,这时候AI芯片本身的开放易用性,完善的算法模型库,以及灵活易用性就变得非常重要。现今汽车软件的开发工作如此巨大,软件堆栈异常复杂,没有一家公司能单独完成所有软件的开发,而且主机厂都有开发差异化、个性化应用的需求。只有合作才能满足高效的迭代算法能力,把芯片算力和整体系统性方案发挥到极致。
智能语音应用场景落地
智能语音识别和处理应用对AI芯片的要求是低延迟,以及能够管理长/短期记忆网络(LSTM)和循环神经网络(RNN)所需的反馈回路。这意味着基于时间来接收信息,然后对其进行处理并添加含义。解包/展开(unpack/unroll)能力、存储状态和反馈回路意味着这类神经网络通常在云端使用,而现在则越来越多地用于边缘处理。
图像视频更多是使用卷积型的网络算法,这类运算其实有大量的数据复用空间。但对于语音识别而言,更多的是用RNFPM模型,这类模型更像是传统的矩阵运算,它会对外部的存储和带宽要求高一些,而数据复用的机会实际上是比较少的。
在语音识别和处理的应用场景里,神经网络可能只占其中的一半,这时只用一个AI芯片是不够的,还需要关注前后处理的模块。此外,语音处理在数据精度上要求更苛刻,很难全部用8比特的定点来表达数据格式,获得足够高的准确率,所以在数据精度上像8比特、16比特甚至半精度的点都需要支持。
智能视觉应用场景落地
在智能视觉场景中,AI芯片可以非常好地与多种特定应用的算法协同工作。采用带有成熟软件和开发工具的AI芯片,应用开发人员在将应用算法部署到目标之前,就可以使用线下工具来对其进行优化。随着新零售、机器人、安防等应用的发展,业界也在开发软件工具来提供支持,以便可以将框架或新型神经网络方面的进展分解为多个构成要素并由AI芯片有效地运行。
如何实现软硬协同,将AI芯片与特定应用的算法相结合是一个比较有挑战性的问题。以赛灵思为例,他们自己的算法团队可以不断地利用公开的数据集以及客户需求,针对像数据中心、安防、自动驾驶、机器人以及医疗这些应用场景,去做一些模型训练。
以激光雷达为例,他们大概花了三个月进行密集开发,把点云的检测和分割,从算法训练到模型编译,到软件部署,再到硬件的设计,做了全流程端到端的实现。在这个过程中,他们发现之前为ADAS里面Camera所准备的GPU不能很好的满足激光雷达这个领域的应用。所以需要做很多硬件上甚至AI芯片架构上的修改,同时还要做一些软件算法和硬件相结合的协同设计才能获得比较理想的落地效果。
责编:Amy Guan
本文为《电子工程专辑》2020年10月 刊杂志文章,版权所有,禁止转载。点击申请免费杂志订阅