下冰雹 · 2023年10月11日 · 黑龙江

AI加速器关键参数和设计目标

在过去几年,有许多关于DNN加速器效率的研究。因此,讨论应该考虑的关键参数指标是很重要的,当比较和评估不同设计和技术的优缺点时,同时这些应该被归入设计的考量。而效率通常只与每瓦每秒的操作次数有关,如flops/w。但是实际上是更多的指标组成的,包括accuracy,throughput,latency,energy consumption,power consumption,cost,flexibility以及scalability等。报告这些指标的综合情况很重要,目的是从一个完整的视角考虑权衡问题,并给出设计或者架构意见。

在这一章中,讨论了:

  1. 每个指标的重要性;
  2. 分解影响每个指标的因素。在可行的情况下,提出方程,描述因素与指标之间的关系;
  3. 描述如何将这些指标合并到DNN硬件和DNN模型两个设计方向上;
  4. 弄清楚要表达哪些指标的哪些内容,以便进行适当的评估。

最后会提供一个case研究,说明如何将这些指标结合在一起,对给定方法进行整体评估

3.1 Accuracy

对于一个给定的任务,使用精度表明其结果的质量。DNN可以在广泛的任务中实现SOTA,这也是推动当今DNN普及和广泛使用的关键原因之一。用于测量精度的范围取决于任务。例如,对于图像分类,精度是被正确分类的图像的百分比。对于目标检测,精度是平均精度mAP,这与真阳性率和假阳性率之间的权衡有关。

影响精度的因素包括任务和数据集的难度。例如在imagenet上的分类要比在MNIST上困难的多,目标检测或语义分割要比分类任务难度大的多。因此,在MNIST上表现好的模型不一定在image net上同样表现的好。

在困难的数据集上实现高精度的结果通常需要更加复杂的网络设计。但是复杂的模型可能会影响硬件的处理效率。

因此,精度应该放在任务和数据集的难度上下文中进行解释,使用经过充分研究、广泛使用的网络模型、任务和数据集来评估硬件,可以更好的解释精度度量的重要性,近几年受通用计算benchmark SPEC的影响,一些行业和学术组织已经建立了一套广泛的DNN模型,称为MLPerf,作为网络模型来评估性能,并能够公平比较各种软件框架、硬件加速器,以及用于DNN训练和推理的云平台。这个套件包括用于各种任务的各种类型的网络模型,包括图像分类、目标识别、翻译、语音到文本、推荐系统、语义分析和强化学习等。

3.2 Throughput and latency

Throughput 用于指示在给定时间内可以处理的数据量或者可以完成的任务的执行次数。高吞吐量通常对应用程序至关重要。例如视频实时处理需要每秒30帧的速度。对于数据分析,高吞吐量意味着在给定的时间内可以分析更多的时间。随着视觉数据量呈指数级的增长,高通量大数据分析变得越来越重要,尤其是在需要根据分析采取行动的情况下。吞吐量通常报告为每秒的操作数,在推理的情况下,吞吐量以每秒推理数的形式报告,或者每次推理的耗时的形式报告。

Latency是输入数据进入系统和生成结果之间的耗时。低延迟对于实时交互应用程序是必要的,如增强现实,自主导航和机器人等,latency通常以s为单位报告。

Throughout和latency通常是被认为是有相互关系的。然而,他们实际上是截然不同的。一个主要的例子就是分patch输入数据(例如多个图像或帧分批在一起输入),以增加吞吐量,这样就分摊了开销,比如load权重的开销。但是批处理也增加了latency,对实时应用是不可接受的(例如,在每秒30帧和一批100帧的情况下,一些帧将经历至少3.3秒的延迟)。因此,根据方法的不同,同时实现低延迟和高吞吐量有时是不一致的,两者都应该报告。

有几个因素会影响throughput和latency。对于throughput,每秒钟的推理数量为

image.png

其中,operation per second 取决于硬件加速器和DNN网络模型,operation per inference取决于DNN 模型。

当考虑由多个处理单元(processing element, PE)组成的系统时,一个PE对应于一个执行单个MAC操作的简单或原始核,每秒的操作数可以进一步分解为

image.png

其中,第一项反映了单个PE的峰值吞吐量,第二项反映了并行数量,第三项反映了由于无法有效利用PE而导致的性能下降。

由于DNN的主要操作是MAC,将互换使用操作数OP和MAC数。

一个增长PE peak throughput的方法是增加每秒cycle的数量,即提高时钟频率,通过在微架构层面减少关键路径或者每次OP的cycle数,这些可能会受到MAC设计的影响。(例如,非pipeline multi-cycle MAC 每次OP会需要更多的cycle)。

虽然上述方法增加了单个PE的吞吐量,但是可以通过增加PE的数量来增加总吞吐量,从而增加可以并行执行的MAC操作的最大数量。PE的数量由PE的面积密度和系统的面积成本决定。如果系统的面积成本是固定的,那么增加PE的数量需要增加PE的面积密度(即,减少每个PE的面积)或者用片上存储面积换取更多的PE。然而,减少片上存储会影响PEs的利用率,这一点我们将在下面讨论。

增加PE的密度也可以通过减少与向MAC传送操作数相关的逻辑来实现。这可以通过用一个逻辑控制多个MAC来实现。这类似于基于指令的系统中的情况,例如GPU和GPU,它们通过使用大型集合指令(例如,单指令、多数据(SIMD)/向量指令;单指令、多线程(SIMT)/张量指令),其中单个指令可以用于启动多个操作。

当所有PE都在执行计算(100%利用率)时,PE的数量和单个PE的峰值吞吐量仅表示理论上的最大吞吐量(即峰值性能)。实际上,可实现的吞吐量取决于这些PE的实际利用率,它受以下几个因素的影响:

image.png

第一项反映了将工作负载分配给PE的能力,而第二项反映了有效地显示那些活动的PE正在处理工作负载。

被激活的PE的数量是接收workload的PE的数量;因此,希望将工作负载分配给尽可能多的PE。分配工作负载的能力取决于架构的灵活性,例如片上网络,以支持DNN模型中的layer shape。

在片上网络的约束条件下,活动pe的数量也由映射过程对pe的具体分配决定。映射过程涉及到每个MAC操作(包括适当操作数的交付)在空间和时间上的放置和调度到pe上。映射可以被认为是dnn硬件的编译器。片上网络和映射的设计将在第5章和第6章讨论。

PE的利用率很大程度上取决于工作是否及时地交付给PE,这样在等待数据到达的过程中,PE就不会处于空闲状态。这可能会受到(片上和片外)内存和网络的带宽和延迟的影响。Bandwidth的需求可能会受到DNN模型中data reuse的影响,大量的数据重用可以被存储层次和数据流利用。

数据流决定了操作的顺序以及数据存储和重用的位置。使用更大的batch size也可以增加数据重用量,这就是增加batch size可以增加吞吐量的原因之一。第5章和第6章将讨论数据传输和内存带宽方面的挑战。PEs的利用率还会受到PEs之间分配工作不平衡的影响,这可能发生在利用稀疏性(即避免与零乘法相关的不必要工作)时;workload较少的PE会被闲置,因此利用了较低。

pe的数量和pe的利用率之间也存在相互作用。例如,减少PE需要等待数据传输进来的一种方法是将一些数据存储在PE附近或内部。然而,这需要增加SRAM的面积,进而增加芯片面积成本,在面积固定的情况下就会减少pe的数量。因此,设计的关键是考虑分配多少计算单元的面积(增加PEs的数量)与片上存储(增加PEs的利用率)。

这些因素的影响可以使用Eyexam来捕获,这是一种分析DNN处理器性能极限的系统方法,它是DNN模型和加速器设计的特定特性的函数。Eyexam包括并扩展了著名的roofline模型[119]。如图3.1所示,roofline模型将平均带宽需求和峰值计算能力与性能联系起来。第六章描述了Eyexam。

image.png

虽然公式(3.1)中每次推理的操作数取决于DNN模型,但每秒的操作数同时取决于DNN模型和硬件。例如,设计具有高效layer shape的DNN模型(也指高效的网络体系结构),如第9章所述,可以减少DNN模型中的MAC操作数以及每次推理的操作次数。然而,这样的DNN模型可能会导致广泛的layer shape,其中一些可能会对PEs利用率较差,从而减少每秒的整体操作,如公式(3.2)所示。

对每秒操作数的更深入考虑是,并非所有操作创建时都相等,因此每个操作的cycle数可能不是一个常量。例如,如果我们认为任何东西乘以0都是0,那么一些MAC操作是无效的(即,它们不会改变累积的值)。无效操作的数量是DNN模型和输入数据的函数。这些无效的MAC操作可能需要更少的周期,甚至根本不需要周期。相反,我们只需要处理有效的(或非零的)MAC操作,其中两个输入都是非零的;这被称为利用稀疏性,将在第8章讨论。

只处理有效的MAC操作会增加每个周期的(总)操作数,从而增加每秒的(总)操作数。理想情况下,硬件会跳过所有无效的操作;然而在实践中,设计硬件跳过所有无效操作可能具有挑战性,并会增加硬件的复杂性和开销,如第8章所述。例如,设计一种只识别其中一个操作数(例如权重)中的0的硬件,而不是同时识别两个操作数中的0,可能会更容易。因此,无效的操作可以进一步分为被硬件利用的操作(即跳过)和未被硬件利用的操作(即未跳过)。因此,硬件实际执行的操作数量是有效操作加上未被利用的无效操作。

公式3.4描述了operation per cycle可以被分解为以下几个部分:

image.png

  1. 每个周期的有效操作加上未利用的无效操作的数量,对于给定的硬件加速器设计,这在一定程度上是恒定的;
  2. 有效操作比有效操作和未被利用的无效操作的比率,表示硬件利用无效操作的能力(理想情况下,未被利用的无效操作应为0,该比率应为1);
  3. 总的运算有效OP数量与稀疏性有关,取决于DNN模型;

随着稀疏性的增加(即(总)操作中有效的操作数减少),每个周期的操作数增加,进而增加每秒的操作数,如式(3.2)所示:

然而,利用稀疏性需要额外的硬件来识别何时输入为0,以避免执行不必要的MAC操作。额外的硬件可以增加关键路径,从而减少每秒的周期,还可以降低PE的面积密度,从而减少给定区域的PE数量。这两个因素都可以减少每秒的操作数,如式(3.2)所示。因此,额外硬件的复杂性可能导致在减少未利用的无效操作数量和增加关键路径或减少pe数量之间进行权衡。

设计支持降低精度的硬件和DNN模型(即每个操作数和每个操作的位数更少)(这将在第 7 章中讨论)也可以增加每秒的操作数。每个操作数位数更少意味着执行操作所需要的内存带宽减少,这可以提高PE的利用率,因为它们不太可能缺乏数据。此外,每个PE的面积可以减少,这可以增加给定区域的PE数量。这两个因素都可以增加每秒的操作次数,如公式 (3.2) 所示。但需要注意的是,如果需要支持多个精度级别,则需要额外的硬件,这会再次增加关键路径并降低PE的面积密度,这也会减少每秒的操作数,如式(3.2)所示。

在本节中讨论了影响每秒推理数量的多个因素。表3.1对影响因素进行了分类,包括由硬件、DNN模型或两者共同影响。

image.png
表3.1 影响每秒推理次数的因素分类

综上所述,仅DNN模型中的MAC操作数量不足以评估吞吐量和延迟。虽然DNN模型可以根据网络架构(即layer shape)以及权重和激活的稀疏性影响每次推理的MAC操作数量,DNN模型对吞吐量和延迟的总体影响取决于硬件在不显著减少PE的利用率、PE的数量或每秒周期的情况下增加对识别这些方法的支持的能力。这就是为什么MAC操作的数量不一定是吞吐量和延迟的良好代理(例如,图3.2),并且在环路中设计硬件的高效DNN模型通常更有效。第9章讨论了在环路中设计DNN模型的硬件技术。

image.png
图3.2:在Pixel手机上测量的各种DNN model中的MAC操作次数与latency。显然,MAC操作的数量并不能很好地预测延迟。(图自[120]。)

类似地,硬件中的PE数量及其峰值吞吐量不足以评估吞吐量和延迟。DNN model在硬件上的实际运行耗时很重要,可以说明其他因素的影响,如公式(3.2)中所强调的PE利用率。理想情况下,这种评估需要在确定的DNN model下进行,例如MLPerf基准测试套件中的一些model。此外,patch size应该与吞吐量一起报告,以便评估latency。

3.3 Energy efficiency and power consumption

Energy efficiency用于表示在给定的能源单位下,可以处理的数据量或可以完成的任务执行次数。在电池容量有限的嵌入式设备(如智能手机、智能传感器、机器人和可穿戴设备)中处理边缘DNN model时,高能效非常重要。由于延迟、隐私或通信带宽限制,对于某些应用,边缘处理可能优于云。能源效率通常被报告为每焦耳的操作次数(inference/J)。在推理时,能源效率被报告为inference/J,或者相反地被报告为J/inference。

Power用来表示单位时间消耗的能量。功耗增加将会导致散热增加;因此,最大功率消耗由通常称为热设计功率(TDP)的设计标准决定,热设计功率是冷却系统被设计消耗的功率。在云上处理DNN时,由于数据中心冷却成本的限制,功率存在上限,因此功耗指标非常重要;同样手机和穿戴设备等也有严格的功率限制,因为用户通常对发热非常敏感,并且由于这些电子产品的体积重量限制,也不会有类似风扇一类的散热装置。功耗通常以W或J/s为单位。

功耗和能效限制了吞吐量,如下所示:

image.png
因此,如果可以通过增加inference/J来提高能量效率,我们就可以增加inference/s,从而增加系统的吞吐量。

有几个因素会影响能源效率。Inference/J可以分解为:

image.png
其中每焦耳的运算次数由硬件和DNN模型决定,而每次推理的运算次数由DNN模型决定。

对于影响每次操作的能量(即J/operation)的硬件,存在各种设计考虑。每个操作的能量可以分解为data input和data output所需的能量,以及执行MAC计算所需的能量。

image.png
对于每个组件,J/operation计算如下(数据搬运和MAC操作):

image.png
其中,c是总开关电容,VDD是电源电压,α是开关活动,表示电容充电的频率

能耗的多少主要由数据搬运量决定,因为数据移动的电容往往比MAC计算的电容高得多。此外,data与PE之间的传输距离越远,开关电容就越大,这包括从存储数据的存储器中走出来的距离以及存储器和PE之间穿过网络的距离。因此,更大的存储器和更长的互连(例如,片外)往往比更小、更近的存储器消耗更多的能量,因为所使用的长导线的电容。

为了降低数据移动的能耗,我们可以利用数据重用,其中数据从远处的大存储器(例如片外DRAM)移动一次,然后从本地较小的存储器(例如PE内的片上buffer或便笺式存储器)重新用于多次操作。优化数据移动是设计DNN加速器的主要考虑因素;第五章讨论了数据流的设计,它定义了处理顺序,以增加内存层次结构中的数据重用。此外,先进的器件和内存技术可用于降低计算和内存之间的切换电容,如第10章所述。

这就提出了报告energy efficiency和power consumption的适当范围问题。包括整个系统(风扇和电源)超出了本书的范围。相反,忽略片外存储器访问,这可能在芯片设计之间变化很大,很容易导致对系统效率的误解。因此,如果没有指定特定的存储器技术,不仅要报告芯片的能效和功耗,还要报告片外存储器(例如,DRAM)的能效和能耗或片外访问(例如,DRAM访问)的量。对于后者,可以根据每次推理从芯片外读取和写入的数据总量来报告。

减少MAC operation/J本身可以通过减少电路级或微架构级的开关活动或电容来实现。也可以通过降低精度(例如,减少MAC操作的位宽)来实现,如图3.3所示,这些会在第7章进行讨论。需要注意的是,需要考虑对模型accuracy的影响。

对于基于指令的系统,如cpu和gpu,也可以通过减少指令簿记开销来实现。例如,使用大型聚合指令(例如单指令多数据(SIMD)/向量指令;单指令多线程(SIMT)/张量指令),一条指令可以用来发起多个操作。

与3.2节中讨论的吞吐量指标类似,每次推理的操作数取决于DNN模型,然而,operation/J可能是硬件利用稀疏性以避免执行无效MAC操作能力的函数。方程(3.9)显示了如何将operation/J运算分解:

  1. 每焦耳的有效OP数加上未被利用的无效OP数,对于给定的硬件架构设计,这个数值保持不变;
  2. 有效OP比上有效OP+未利用的无效OP的比率,指硬件利用无效操作的能力(理想情况下,未利用的无效操作应为0,该比率应为1);
  3. (总)操作中有效操作的数量,与稀疏性的数量有关,并取决于DNN模型。

image.png

对于可以利用稀疏性的硬件,增加稀疏性的数量(即减少(总)操作中的有效操作数)会增加每焦耳的操作数,这随后会增加每焦耳的推理量,如式(3.6)所示。虽然利用稀疏性可以增加每焦耳的(总)操作数,但增加的硬件会减少每焦耳的有效操作数和未利用的无效操作数。为了实现净收益,每焦耳的有效操作的减少加上未开发的无效操作必须被(总)操作中有效操作的减少所抵消。

总之这里想强调的是,DNN模型中的MAC操作数量和权重不足以评估能量效率。从能量的角度来看,所有的MAC操作或权重都是不同的。MAC操作数和权重大小不能反映数据被访问情况以及数据被重用了多少,不能很好的反应能耗,这两者都对每焦耳的操作数有很大的影响。而在回路中使用硬件设计高效的DNN模型往往可以更有效的降低功耗。第9章讨论硬件在回路的DNN模型设计技术。

为了评估整个系统的能效和功耗,在没有指定特定存储技术的情况下,不仅要清楚芯片的能效和功耗,还要知道片外内存(如DRAM)的能效和功耗,或者片外访问次数(如DRAM访问次数);对于后者,可以根据每次推理在芯片外读取和写入的总数据量来表示。与吞吐量和延迟一样,评估应该在明确指定的、理想情况下应用广泛的DNN模型上进行。

3.4 Hardware cost

为了评估给定体系结构或技术的可取性,还必须考虑设计的硬件成本。硬件成本用来表示构建一个系统的hardware cost。从行业和研究的角度来看,这对于决定一个系统在商业财务上是否可行非常重要。从行业的角度来看,成本约束与数量和市场有关;例如,嵌入式处理器比云中的处理器有更严格的成本限制。

影响成本的关键因素之一是die size和Fab process(如45纳米CMOS),这限制了片上存储和计算量(如DNN PEs数量、cpu和gpu的核心数量、fpga的数字信号处理(DSP)引擎数量等)。在不指定特定工艺的情况下,可以用片上存储器(如全局缓冲区的存储容量)和计算量(如PEs的数量)作为die size估计的主要指标。

另一个重要因素是芯片外接口的数量,它决定了封装和印刷电路板(PCB)设计的成本和复杂性(例如,连接到芯片外DRAM的高带宽内存(HBM)[122],连接到其他gpu的NVLink等),以及收发器是否需要额外的芯片面积来处理高速信号完整性。接口通常以Gbps为单位,有时包括I/O端口的数量,可以用作封装和PCB成本的主要指标。

芯片面积和外部接口造成的成本之间也存在相互作用。例如,增加片上存储会增加芯片面积,减少片外带宽。因此,应该清楚这两个指标,以便对系统总成本做出评估。

当然,降低成本并不是唯一的目标。设计目标总是在给定成本下实现最大化吞吐量或能源效率。具体来说,最大化inference/s/cost(例如,$)或inference/J/cost。这些与PE利用率也有关。为了降低成本,设计的目标是利用每个PE来增加inference/s,因为每个PE会增加芯片的面积成本;类似地,由于片上内存的每一个字节也会增加成本,设计的目标应该是有效地利用所有片上存储来减少片外带宽,或者增加roofline模型所表示的每次片外内存访问的操作次数(见图1.1)。

3.5 Flexibility

DNN加速器的优点还在于其灵活性。灵活性是指DNN处理器可以支持的DNN模型的范围,以及软件环境(如mapper)的能力,以最大限度地利用硬件的能力来实现任何所需的DNN模型。鉴于DNN研究和部署的快速发展,DNN处理器支持广泛的DNN模型和任务变得越来越重要。

可以将支持定义为两层:第一层要求硬件只需要能够在功能上支持不同的DNN模型(即DNN模型可以在硬件上运行)。第二层要求硬件还应在不同的DNN模型上保持效率(即高吞吐量和能量效率)。

为了保持效率,硬件不应该依赖于DNN模型的某些属性来实现更高的效率,因为这些属性是无法保证的。例如,一个刚好满足DNN模型大小(即weight+params)的加速器,在模型变得更大时,可能会表现得非常差,而DNN模型的大小会随着时间的推移不断变化,如2.4.1节所述;一个更灵活的处理器是可以有效地处理广泛的DNN模型,甚至是那些超过on chip memory的模型。

DNN加速器的灵活性程度是要与加速器成本进行权衡的。要更灵活的支持广泛的workload或实现更好的吞吐量/能效,通常需要添加额外的硬件。通常情况下,领域专用设计可以提高效率;因此,设计目标是减少支持灵活性的开销(例如,面积成本和能耗),同时在广泛的DNN模型中保持效率。因此,评估灵活性需要确保额外的硬件是跨多个工作负载的净收益。

考虑到DNN模型的许多技术和属性,灵活性变得越来越重要,因为这增加了可执行任务的多样性。这些技术和属性包括具有不同网络体系结构的DNN model(即不同的layer shape,影响所需的内存占用和计算量,以及数据重用),这些会在第9章阐述;不同的精度级别,量化支持(即跨layer和数据类型的bits不同),会在第7章阐述;以及不同程度的稀疏性(即数据中的0个数),会在第8章阐述。除了MAC操作(例如激活函数)之外,还有不同类型的DNN层和算子需要支持。

实际上,从这些技术中获得performance或efficiency优势总是需要额外硬件支持的,架构比较简单的加速器设计可能无法完全利用这些模型特性。同样重要的是,额外硬件的开销不能超过这些技术带来的优势。因此提倡硬件和DNN模型进行协同设计。

迄今为止,利用 DNN 硬件的灵活性一直依赖于类似于静态每层编译器的映射过程。随着该领域转向动态变化的 DNN 模型,映射过程将需要在运行时动态适应 DNN 模型或输入数据的变化,同时仍然最大限度地利用硬件的灵活性来提高效率。

总之,为了评估DNN处理器的灵活性,它的效率(例如inference/s,inference/J)应该在广泛的DNN模型上进行评估,比如借助MLPerf benchmark进行测试;然而,可能需要额外的工作负载来表示高效的技术,如高效的网络架构、降低的精度和稀疏性。工作负载应该与所需的应用程序匹配。理想情况下,由于可以有许多可能的组合,因此定义在给定平台上可以有效支持的DNN模型的范围和限制也将是有益的(例如,每个滤波器或DNN模型的最大权重数量、最小稀疏量、所需的稀疏结构、精度水平(如8位、4位、2位或1位,层和激活函数类型等)。

3.6 Scalability

由于DNN的发展和新兴技术的广泛使用,可扩展性变得越来越重要,这些技术不仅用于扩大芯片的尺寸,还用于构建具有多个芯片(通常称为chiplet)[123]甚至晶圆级芯片[124]的系统。可扩展性是指当增加资源数量(例如PE数量和OCM) 以实现更高的吞吐量和能效。这种评估是在假定系统不必进行大的重新设计的情况下进行的(例如只需要复制一些组件),因为大的设计改动在时间和成本方面可能更加昂贵。理想情况下的可伸缩设计既可以用于低成本的嵌入式设备,也可以用于云计算等高性能计算场景,只需扩展资源实现这些需求。

理想情况下吞吐量会随着PE数量的增加呈线性和成比例的增长。同样,更多的片上存储也会提高能源效率,但是这些可能是非线性的提升(例如,增加OCM使整个DNN模型适合芯片,将导致能源效率的大幅提高)。在实践中这些设计是具有挑战性的,因为需要考虑PE的利用率,以及数据搬运成本。

通过考虑inference/s/cost(例如,$)或inference/J/cost如何随规模变化,可扩展性可以与成本效率联系起来。例如,如果吞吐量随PE的数量线性增加,那么inference/s/cost将是恒定的。随着PE数量的增加,PE之间数据共享也会增加,inference/s/cost也可能会超线性地提高。

总之,为了了解DNN加速器设计的可扩展性,随着PE数量和存储容量的增加,报告其性能和效率指标是很重要的。可能还要包括片间互连等扩展的设计。

3.7 Interplay between different metrics

为了更好的评估和权衡各项设计,需要考虑所有的指标。例如,如果没有特定数据集和accuracy要求,运行一个简单的DNN model,就声称做到了低功耗、高吞吐量和低成本,但可能无法用于有实际意义的任务;或者在不报告片外带宽的情况下,构建了一个只使用乘法器的处理器,宣称低成本、高吞吐量、高精度和低芯片功耗。但是当评估系统功耗时,会有大量的片外内存访问。最后,还需要报告测试设置,包括结果是测量的还是从模拟中获得的,以及测试了多少张图像。

总之对于给定的应用场景,加速器是否满足需求的评估过程可以参考如下:

  1. 是否可以达到给定任务的准确性
  2. 延迟和吞吐量如何,这决定了它是否能以足够快的速度实时运行
  3. 能量和功耗情况,这会限制使用的设备及场景;
  4. Die size,主要由芯片面积和外部接口需求决定,这与成本要求相关;
  5. 灵活性,可以支持多广泛的任务模型

可伸缩性,决定了相同的设计工作是否可以在多个领域进行部署(例如,在云上和端侧),以及系统是否可以有效地利用DNN模型大小进行伸缩。

作者:Damon
文章来源:知乎

推荐阅读

ICCV 2023 | DeformToon3D:玩转3D人脸风格化
操作系统级ChatGPT爆火,实测让电脑自己整理桌面,Mac/Windows/Linux都支持
从roofline模型看CPU矩阵乘法优化
ICCV 2023|小红书 4 篇入选论文亮点解读,「开集视频目标分割」获得 Oral

更多嵌入式AI干货请关注嵌入式AI专栏。欢迎添加极术小姐姐微信(id:aijishu20)加入技术交流群,请备注研究方向。

推荐阅读
关注数
17322
内容数
1240
嵌入式端AI,包括AI算法在推理框架Tengine,MNN,NCNN,PaddlePaddle及相关芯片上的实现。欢迎加入微信交流群,微信号:aijishu20(备注:嵌入式)
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息