王晨,邓昌义,李嘉伟,李郁佳
(国家工业信息安全发展研究中心,北京 100043)
随着人工智能热潮迅速席卷全球,作为人工智能时代技术核心的“人工智能芯片”变得炙手可热,人工智能芯片遍布数据中心、移动终端、安防、自动驾驶以及智能家居等众多领域。2019年全球人工智能芯片市场规模为110亿美元[1],预计2025年将达到726亿美元。对于如何衡量和评价人工智能芯片的性能,全球范围内尚未建立完善的基准测评体系。缺少成熟的人工智能芯片测评体系,成为制约人工智能芯片的发展的一个重要原因。
人工智能芯片按照应用场景可分为云端(服务器侧)和移动端(边缘侧)两类。按照芯片功能可分为训练和推理两类。按照技术架构可分为通用处理器、专用处理器和可重构处理器三类。
通用处理器是基于冯·诺依曼体系结构的,常见的有CPU、GPU 和DSP。CPU具有很强的通用性,能够提供复杂的控制流,但对于人工智能芯片而言,深度神经网络算法的运行过程几乎不需要控制,数据流才是计算的主要部分,因此 CPU 的并行计算处理能力并不高。与CPU相比,GPU的处理器架构拥有数量庞大的算数逻辑单元(ALU),使得其在大规模并行计算过程中能够充分发挥优势,在模拟大型人工神经网络时,GPU架构更具有优势。
图1 CPU 与GPU 架构图
专用处理器是指专用集成电路(ASIC),ASIC是定制的专用人工智能芯片,它针对特定的计算网络结构采用了硬件电路实现的方式。在网络模型算法和应用需求固定的情况下,算法的“硬件化”带来了高性能、低功耗等突出优点,但缺点也十分明显。一方面,ASIC芯片的开发需要很高的成本和较长的研发周期,另一方面,ASIC芯片一旦开始批量生产,就无法改变硬件架构。
可重构处理器是基于可配置处理单元的处理器,借助处理器自身实时动态配置来改变存储器与处理单元之间的连接,从而实现软硬件协同设计。深度神经网络具有结构多样、数据量大、计算量大等特点,可重构处理器允许硬件架构和功能随软件变化而变化,既具备通用处理器的灵活性,又具备专用处理器的低功耗和高性能,可以满足人工智能芯片“软件定义芯片”这一特性,符合人工智能芯片未来发展趋势。
对于不同应用场景的人工智能芯片,衡量和评价的指标完全不同。用于云端服务器的人工智能芯片追求低延时和低功耗,更加关注精度、处理能力、内存容量和带宽;而边缘设备则需要功耗低、面积小、响应时间短、成本低、安全性高的人工智能芯片。人工智能芯片的性能衡量指标[2]应该覆盖以下8类。
(1)时延:时延指标对于边缘侧人工智能芯片非常重要,5G边缘计算和自动驾驶领域均对人工智能芯片提出了低时延高性能的要求。
(2)功耗:功耗不仅包括了芯片中计算单元的功率消耗,还包括了片上和片外存储器的功耗。
(3)芯片成本/面积:芯片成本/面积指标对于边缘侧人工智能芯片十分重要。人工智能芯片的成本包括了芯片的硬件成本、设计成本和部署运维成本。
(4)精度:识别或分类精度,反映了实际需求任务上的算法精度,体现了这个人工智能芯片的输出质量,精度指标直接影响了推断的准确度。
(5)吞吐量:吞吐量对用于训练和推理的云端人工智能芯片来说,是最重要的衡量指标。吞吐量表示单位时间能够有效处理的数据量,除了用每秒操作数来定义外,也有的定义为每秒完成多少个完整的卷积,或者每秒完成多少个完整的推理。
(6)热管理:随着单位面积内的晶体管数量不断增加,芯片工作时的温度急剧升高,为了达到足够的散热效果,需要有考虑周全的芯片热管理方案,可以考虑暗硅、微型水管、制冷机、风扇叶片、碳纳米管等芯片冷却技术[3]。
(7)可扩展性:可扩展性是指人工智能芯片具有可以通过扩展处理单元及存储器来提高计算性能的架构,可扩展性决定了是否可以用相同的设计方案部署在多个领域(如在云端和边缘侧)。
(8)灵活性:灵活性指的是这个人工智能芯片对不同应用场景的适应程度,即该芯片所使用的架构和算法对于不同的深度学习模型和任务的适用性。
人工智能芯片的测评方法有两条路线,分别是基于架构层面的测评方法和基于应用层面的基准测试。基准测试不仅可以真实反映人工智能芯片的使用情况、引入评估和选型的标准,还可以对人工智能芯片的架构定义和优化指引方向。
由于人工智能芯片衡量和评价指标的复杂性,人工智能各种各样的应用、算法、体系结构、电路和器件均对建立这一基准提出了巨大的挑战。基准测试的技术难点主要在于以下三方面[4]:①具有普适性的最佳测评指标难以建立。基于通用芯片设计领域的经验可以得知,很难找到普适的最佳器件、架构或算法。②其他操作对人工智能芯片测试结果造成的影响。除了基本的计算,一个公平的基准测试必须考虑到诸如输入、输出和存储器访问等其他操作带来的性能损失和功耗。③基准测评体系对算法迭代的包容性。在人工智能领域,不论是理论研究还是应用需求,都在不断引入新的算法,基准测评体系必须考虑到算法迭代跟进的问题。
从架构层面来说,目前国内外对于人工智能芯片架构级测评方法还比较少。国内外的测评方法主要有麻省理工学院及英伟达开发的专门的架构层面人工智能芯片评价工具Accelergy和Timeloop。Accelergy主要用于评估架构级的能耗,对基于处理单元的数量、存储器容量、片上连接网络的连接数量及长度等参数进行评估。Timeloop是一个DNN的映射工具及性能仿真器,根据输入的架构描述,评估出这个人工智能芯片的运算执行情况。通过架构级人工智能芯片的测评,可以实现不同架构的芯片之间进行公平的比较。
从应用层面来说,国内外对于人工智能芯片的基准测试方法较为丰富。目前主流的基准测评方法如表1所示。
对于人工智能芯片的测评,虽然基于应用层面的基准测试方法更为丰富,但是这类测评主要是靠运行一些常见的神经网络或者其中使用较多的基本运算来进行评价,具有一定的局限性。以Fathom和DeepBench为例:Fathom虽然提出了一套比较完整的方法来对网络模型进行比较,但是Fathom并没有对反卷积、下采样等其他类型的神经网络进行分析,且提供的测评指标只有延迟时间,不适合用于深度学习神经网络芯片的全面评估。DeepBench的局限在于其只使用基本运算来作为测评的工具,但实际上神经网络中层与层之间是需要进行数据传输的,相互联系紧密,把神经网络分解成单独的基本运算来作为测试集,不能反映出深度学习神经网络芯片在整个神经网络结构上的性能。
表1 国内外基准测试方法
从测评角度来看,人工智能芯片要兼顾在架构级、算法级、电路级在各种工作负载时都能保持最佳性能和能效是非常困难的,因此,人工智能芯片的最优设计方法是跨越这三个层级进行“跨层”设计,这样可以对各种参数和主表进行总体的权衡。
未来,人工智能芯片的测评研究应该针对以下三方面开展:
(1)架构层面的测评研究:针对建立公正、全面的深度学习神经网络芯片基准测评体系目标而言,不应局限在建立测试集对人工智能芯片运行神经网络的能力进行测试,更应在芯片架构层面对人工智能芯片开展基准测试。可以通过收集一组架构级功能单元,确定定量和定性的优值(Figures of Merits,FoM),开发测量 FoM 的统一方法[4],定义具有可量化参数的通用功能单元,建立架构层面人工智能芯片的基准测评体系。
(2)灵活的基准测评方法研究:针对不同场景下的使用需求,可以对人工智能芯片的八大评价指标采用多目标优化的方式,建立灵活的基准测评体系,为芯片供应商和需求商提供灵活的针对特殊场景的人工智能芯片选型参考。
(3)基于新兴器件的测评研究:当前大部分的人工智能芯片是基于传统的硅基CMOS电路设计和制造的,此类芯片由于受到冯·诺依曼架构、暗硅等现象的影响,发展上受到很大限制。随着新兴器件的日益成熟,人工智能芯片的测评研究也应着眼于未来,积极开展针对基于模拟计算和存内计算、以非易失性存储器为基本架构的人工智能芯片的基准测评研究。
建立完善的人工智能芯片测评体系对于中国人工智能芯片市场竞争力的提升有着举足轻重的作用,这迫切需要算法研究人员、架构师、电路设计人员和器件专家联合发力,共同开展人工智能芯片基准测评研究。本文从行业发展需求出发,深入分析了国内外人工智能芯片测评研究的发展现状,剖析了现有测评方法存在的不足,在此基础上提出了人工智能芯片测评研究未来的趋势,为人工智能芯片开发和测试人员提供一定的参考。