网站设计属于什么分类号,房屋在线设计工具,wordpress4.5.3 教程,做国外直播网站第 II 部分 用于处理 DNN 的硬件设计
第 3 章 关键指标和设计目标
在过去的几年里#xff0c;对 DNN 的高效处理进行了大量研究。因此#xff0c;讨论在比较和评估不同设计和拟议技术的优缺点时应考虑的关键指标非常重要#xff0c;这些指标应纳入设计考虑中。虽然效率通常…第 II 部分 用于处理 DNN 的硬件设计
第 3 章 关键指标和设计目标
在过去的几年里对 DNN 的高效处理进行了大量研究。因此讨论在比较和评估不同设计和拟议技术的优缺点时应考虑的关键指标非常重要这些指标应纳入设计考虑中。虽然效率通常仅与每瓦每秒的操作次数相关例如每秒每瓦特的浮点运算数为 FLOPS/W 或每秒每瓦万亿次操作数为 TOPS/W但它实际上由更多指标组成包括准确性、吞吐量、延迟、能耗、功耗、成本、灵活性和可扩展性。报告一组全面的这些指标非常重要以便全面了解设计或技术所做的权衡。
在本章中我们将 • 讨论这些指标中的每一个的重要性; • 细分影响每个量度的因素。如果可行提出描述因素和指标之间关系的方程; • 描述如何将这些指标纳入DNN 硬件和DNN 模型即工作负载的设计考虑因素中 • 指定应为给定量度报告的内容以便进行适当的评估。
最后我们将提供一个案例研究说明如何将所有这些指标整合在一起以对给定的方法进行整体评估。但首先我们将讨论每个指标。
3.1 准确性
准确性用于指示给定任务的结果质量。DNN 可以在各种任务上实现最先进的准确性这是推动当今 DNN 普及和广泛使用的关键原因之一。用于测量准确性的单位取决于任务。例如对于图像分类准确率报告为正确分类图像的百分比而对于对象检测准确率报告为平均平均精度均值 mAP这与真阳性率和假阳性率之间的权衡有关。 影响准确性的因素包括任务和数据集的难度1。例如ImageNet 上的分类比 MNIST 上的分类要困难得多对象检测或语义分割比分类更难。因此在 MNIST 上表现良好的 DNN 模型不一定在 ImageNet 上表现良好。 在困难的任务或数据集上实现高精度通常需要更复杂的 DNN 模型例如更多的 MAC操作和更不同的权重、层形状的多样性增加等这可能会影响硬件处理 DNN 模型的效率。 因此应根据任务和数据集的难度来解释准确性2。 使用经过充分研究、广泛使用的 DNN 模型、任务和数据集来评估硬件可以更好地解释准确性指标的重要性。最近在通用计算 [114] 的 SPEC 基准影响的推动下一些行业和学术组织将一套广泛的 DNN 模型称为 MLPerf放在一起作为一组经过充分研究的通用 DNN 模型以评估性能并实现各种软件框架、硬件加速器和云平台的公平比较以便对 DNN 进行训练和推理 [115]3。该套件包括各种类型的 DNN例如 CNN、RNN 等适用于各种任务包括图像分类、对象识别、翻译、语音转文本、推荐、情感分析和强化学习。
1理想情况下稳健性和公平性应与准确性一起考虑因为这些因素之间也存在相互作用;然而这些都是正在进行的研究领域超出了本书的范围。 2打个比方在高中考试中 10 个答案中答对 9 个与在大学考试中答对 10 个答案中的 9 个不同。人们必须超越分数考虑考试的难度。 3早期的 DNN 基准测试工作包括 DeepBench [116] 和 Fathom [117]现在已经被 MLPerf 归入其中。
3.2 吞吐量和延迟
吞吐量用于指示在给定时间段内可以处理的数据量或可以完成的任务执行次数。高吞吐量通常对应用程序至关重要。例如以每秒 30 帧的速度处理视频对于提供实时性能是必要的。对于数据分析高吞吐量意味着可以在给定的时间内分析更多的数据。随着视觉数据量呈指数级增长高吞吐量大数据分析变得越来越重要尤其是在需要根据分析采取行动时例如安全或恐怖主义预防;医疗诊断或药物发现。吞吐量通常报告为每秒的操作数。在推理的情况下吞吐量以每秒推理数报告或以每次推理的秒数表示运行时间。 延迟延时 Latency是输入数据到达系统与生成结果之间的时间。低延迟对于实时交互式应用程序如增强现实、自主导航和机器人技术是必要的。延迟通常以秒为单位报告。 吞吐量和延迟通常被认为是可以直接相互派生的。然而它们实际上是非常不同的。一个典型的例子是众所周知的对输入数据进行批处理的方法例如将多个图像或帧一起批处理以进行处理以提高吞吐量因为它会分摊开销例如加载权重;但是批处理也会增加延迟例如在每秒 30 帧和 100 帧的批处理中某些帧将经历至少 3.3 秒的延迟这对于实时应用程序如高速导航来说是不可接受的因为高速导航会减少可用于航向校正的时间。因此根据方法的不同同时实现低延迟和高吞吐量有时可能会有所不同并且两者都应该报告4。 有几个因素会影响吞吐量和延迟。在吞吐量方面每秒的推理次数受以下因素影响 i n f e r e n c e s s e c o n d o p e r a t i o n s s e c o n d ∗ 1 o p e r a t i o n s i n f e r e n c e 3.1 \frac{inferences}{second}\frac{operations} {second} * \frac{1}{\frac{operations}{inference}} \quad 3.1 secondinferencessecondoperations∗inferenceoperations13.1 其中每秒的操作数由 DNN 硬件和 DNN 模型决定而每次推理的操作数由 DNN 模型决定。
当考虑由多个处理元件 PE 组成的系统时其中 PE 对应于执行单个 MAC作的简单或原始内核每秒的作数可以进一步分解如下
第一项反映单个 PE 的峰值吞吐量第二项反映并行量而最后一项反映由于架构无法有效利用 PE 而导致的退化。 由于处理 DNN 的主要作是 MAC因此我们将互换使用操作数和 MAC操作数。
4这里描述的现象也可以使用队列理论中的利特尔定律 [118] 来理解其中平均吞吐量和平均延迟之间的关系与飞行中的平均任务数有关定义如下: througnput ‾ tasks-in-flight ‾ latency ‾ \overline {\text{througnput}}\frac{\overline{\text {tasks-in-flight}}}{\overline{\text{latency}}} througnputlatencytasks-in-flight 以 DNN 为中心的利特尔定律版本的吞吐量以每秒推理数衡量延迟以秒为单位动态推理相当于飞行任务数以同时处理的批次中的图像数量来衡量。这有助于解释为什么增加动态推理数量以提高吞吐量可能会适得其反因为一些增加动态推理数量的技术例如批处理也会增加延迟。
可以通过增加每秒的周期数对应于更高的时钟频率来提高单个 PE 的峰值吞吐量方法是减少电路的关键路径或微架构级数或每个作的周期数这可能会受到 MAC 设计的影响例如非流水线多周期 MAC 每个作将有更多的周期。 虽然上述方法增加了单个 PE 的吞吐量但可以通过增加 PE 的数量来提高整体吞吐量从而增加可以并行执行的最大 MAC作数。PE 的数量由 PE 的面积密度和系统的面积成本决定。如果系统的面积成本是固定的那么增加 PE 的数量需要增加 PE 的面积密度即减少每个 PE 的面积或牺牲片上存储面积以换取更多的 PE。但是减少片上存储会影响 PE 的利用率我们接下来将对此进行讨论。 增加 PE 的密度也可以通过减少与向 MAC 提供作数相关的 logic 来实现。这可以通过用单个 logic控制多个 MACs 来实现。这类似于基于指令的系统如 CPU 和 GPU中的情况这些系统通过使用大型聚合指令例如单指令、多数据 SIMD/矢量指令;单指令、多线程 SIMT/张量指令来减少指令簿记开销其中单个指令可用于启动多个操作。 PE 的数量和单个 PE 的峰值吞吐量仅表示所有 PE 都执行计算100% 利用率时的理论最大吞吐量即峰值性能。实际上可实现的吞吐量取决于这些 PE 的实际利用率该利用率受以下几个因素的影响 第一个术语反映了将工作负载分配到 PE 的能力而第二个术语反映了这些活动 PE 处理工作负载的效率。 活动 PE 的数量是接收工作的 PE 的数量;因此最好将工作负载分配给尽可能多的 PE。分配工作负载的能力取决于架构的灵活性例如片上网络以支持 DNN 模型中的层形状。在片上网络的约束下活动 PE 的数量也由映射过程对 PE 的特定工作分配决定。映射过程涉及将每个 MAC作包括交付适当的作数在空间和时间上放置和调度到 Pe 上。可以将映射视为 DNN 硬件的编译器。片上网络和映射的设计将在第 5 章和第 6 章中讨论。 活动 PE 的利用率在很大程度上取决于及时向 PE 交付工作以便活动 PE 在等待数据到达时不会变为空闲状态。这可能会受到 片上和片外 内存和网络的带宽和延迟的影响。带宽要求可能会受到DNN 模型中数据可重用量以及内存层次结构和数据流可利用的数据重用量的影响。数据流确定作的顺序以及数据的存储和重用位置。还可以使用更大的批处理大小来增加数据重用量这也是增加批处理大小可以提高吞吐量的原因之一。第 5 章和第 6 章讨论了数据传输和内存带宽的挑战。活动 PE 的利用率也会受到跨 PE 分配的工作不平衡的影响这可能发生在利用稀疏性时即避免与乘以零相关的不必要工作;工作量较少的 PE 变为空闲状态因此利用率较低。
PE 的数量和 PE 的利用率之间也存在相互作用。例如降低 PE 需要等待数据的可能性的一种方法是在 PE 附近或内部本地存储一些数据。但是这需要增加分配给片上存储的芯片面积如果芯片面积固定这将减少 PE 的数量。因此一个关键的设计考虑因素是分配多少区域进行计算这会增加 PE 的数量与片上存储这会增加 PE 的利用率。 可以使用 Eyexam 捕获这些因素的影响Eyexam 是一种系统的方法用于理解 DNN 处理器的性能限制作为 DNN 模型和加速器设计的特定特征的函数。Eyexam包括并扩展了著名的车顶线模型[119]。如图 3.1 所示roofline 模型将平均带宽需求和峰值计算能力与性能相关联。Eyexam 在第 6 章中介绍。 虽然公式 3.1 中每次推理的作数取决于 DNN 模型但每秒作数取决于 DNN 模型和硬件。例如如第 9 章所述设计具有高效层形状也称为高效网络架构的 DNN 模型可以减少DNN 模型的MAC操作以及每次推理的操作。然而这种 DNN 模型可能会导致各种各样的层形状其中一些层的 PE 利用率可能很差因此会降低每秒的总操作量如公式 3.2 所示。 对每秒作数的更深入考虑是并非所有作都是平等的因此每个作的周期数可能不是恒定的。例如如果我们考虑任何乘以 0 都是零的事实那么某些 MAC作是无效的即它们不会改变累积值。无效作的数量是 DNN 模型和输入数据的函数。这些无效的 MAC作可能需要更少的周期或根本不需要周期。相反我们只需要处理有效或非零MAC作其中两个 inputs 都非零;这被称为利用稀疏性这将在第 8 章中讨论。 仅处理有效的 MAC作可以通过增加每个周期的总作数来增加每秒的总作数5。理想情况下硬件将跳过所有无效的作;然而在实践中设计硬件以跳过所有无效的作可能具有挑战性并导致硬件复杂性和开销增加如第 8 章所述。例如设计仅识别其中一个作数例如权重中的 0 而不是同时识别两者的硬件可能更容易。因此无效的作可以进一步分为那些被硬件利用的作即跳过和那些未被硬件利用的作即未跳过。因此硬件实际执行的作数是有效作数加上未利用的无效作数。 方程 3.4 显示了如何将每个周期的作分解为
每个周期的有效作数加上未开发的无效作数对于给定的硬件加速器设计这在某种程度上保持不变;有效作与有效作加上未开发的无效作的比率这是指硬件开发无效作的能力理想情况下未开发的无效作应为零并且该比率应为 1总作中的有效作数这与稀疏量有关取决于 DNN 模型。
随着稀疏量的增加即总作中的有效作数减少每个周期的作数增加随后每秒作数增加如公式 3.2 所示 5总作是指有效和无效的作。 但是利用稀疏性需要额外的硬件来识别输入何时为零以避免执行不必要的 MAC作。额外的硬件可以增加关键路径从而减少每秒的周期数还可以降低 PE 的区域密度从而减少给定区域的 PE 数量。这两个因素都会减少每秒作数如公式 3.2 所示。因此附加硬件的复杂性可能会导致在减少未开发的无效作数量与增加关键路径或减少 PE 数量之间进行权衡。 最后设计支持降低精度即每个作数和每个作的位数更少的硬件和 DNN 模型如第 7 章所述也可以增加每秒的作数。每个作数的位数较少意味着支持给定作所需的内存带宽会减少这可能会提高 PE 的利用率因为它们不太可能缺乏数据。此外可以减少每个 PE 的面积从而增加给定区域的 PE 数量。这两个因素都会增加每秒的作数如公式 3.2 所示。但请注意如果需要支持多个级别的精度则需要额外的硬件这可以再次增加关键路径并降低 PE 的面积密度这两者都可以减少每秒的作次数如公式 3.2 所示。 在本节中我们讨论了影响每秒推理次数的多个因素。表 3.1 对因素是由硬件、DNN 模型还是两者决定进行分类。 总之仅 DNN 模型中的 MAC作数量不足以评估吞吐量和延迟。虽然 DNN 模型可以根据网络架构即层形状以及权重和激活的稀疏性影响每次推理的 MAC作数量但对DNN 模型的吞吐量和延时的影响取决于硬件添加支持以识别这些方法的能力而不会显著降低 PE 的利用率、PE 数量或每秒周期数。这就是为什么 MAC作的数量不一定是吞吐量和延迟的良好代理例如图 3.2并且设计具有硬件在循环中的高效 DNN 模型通常更有效。第 9 章讨论了在循环中使用硬件设计 DNN 模型的技术。 同样硬件中的 PE 数量及其峰值吞吐量不足以评估吞吐量和延迟。如公式 3.2 所示报告硬件上 DNN 模型的实际运行时间以考虑其他影响例如 PE 利用率至关重要。理想情况下应在明确指定的 DNN 模型上执行此评估例如作为 MLPerf 基准测试套件一部分的模型。此外应将批处理大小与吞吐量一起报告以便评估延迟。
3.3 能源效率和功耗