查看原文
其他

【强基固本】DNN加速器性能分析

“强基固本,行稳致远”,科学研究离不开理论基础,人工智能学科更是需要数学、物理、神经科学等基础学科提供有力支撑,为了紧扣时代脉搏,我们推出“强基固本”专栏,讲解AI领域的基础知识,为你的科研学习提供助力,夯实理论基础,提升原始创新能力,敬请关注。

作者:知乎—何煜坤

地址:https://www.zhihu.com/people/he-yu-kun-10

本文旨在汇总当前业界对DNN加速器的主要性能指标,主要参考Eyeriss团队的How to Evaluate Deep Neural Network Processors论文中的指标分析和方法论,进行了简要的综述。首先对各类指标依次讨论定义和影响因素分析,之后介绍了两种性能分析方法,即Roofline分析模型和Timeloop性能分析系统,最后完成全文的总结。


01

Accuracy

定义

网络的准确率,表明完成给定任务的质量。

影响因素分析

考量性能分数时,必须结合给定任务的难度、数据集的丰富程度。一般在进行其他的加速器性能指标分析时,选用被广泛研究过的任务问题和对应的经典网络结构更具有说服力,同时也容易在业界进行横向比较。

02

Throughput

定义

在给定时间内可以处理的数据总量,或者一个任务能被执行的次数。

影响因素分析

 : effectual operations,有效的MAC操作。
 : unexploited ineffectual operations, 无效的一些MAC操作,例如不影响accumulate结果的乘法。
每项分析:
 :在硬件中是常数。
 :表明硬件中有效操作的比例。  理想情况下应当为0,整个这项退化为1。
 有效操作在所有操作中的比重,和网络的稀疏性、模型特性相关。随着稀疏性增加,  在operations中所占的比例降低。
Eyeriss团队给出了名为Eyexam的系统性能分析方法论,通过逐步施加约束条件,从理想系统(无限并行度、存储空间、带宽)逐步过渡到现实硬件系统,如下图所示:
Eyexam系统性能分析步骤
下图给出了Eyexam施加这7个步骤对模型产生的性能影响在Roofline模型中的表现:
Exexam实施步骤在Rooline模型中的体现


03

Power Consumption and Energy Efficiency

定义

在给定能量下可以处理的数据总量,或者一个任务能被执行的次数。

影响因素分析

每焦耳可以做的运算数量如下:
:由模型决定,即整体operations的数量。
:由硬件和模型共同决定,可参考如下的表达式。
每一次操作所消耗的焦耳:
 是翻转电容(switching capacitance)
 是供电电压。
 是翻转率(也即逻辑中 01 和 1 0 的翻转率),表明了电容的充放电频率。
需要注意:
能量效率和功耗的报告中,同时汇报off-chip的存储器的能耗(或者访问总次数)。
单条指令替代多条指令操作。
也可以用类似Throughput中的  和  来分析
每项分析:
 在硬件中为常数。
 表明硬件中有效操作的比例。理想情况下  应当为0,整个这项退化为1。
 有效操作在所有操作中的比重,和网络的稀疏性、模型特性相关。随着稀疏性增加,  在operations中所占的比例降低。
MAC不能作为完全energy efficiency的评估依据:没有体现数据访问、数据重复利用等处的功耗(往往影响巨大)。

04

Cost

定义

构建一个加速器系统的全部开销。

影响因素分析

宏观的开销包括:

加速器器件的开销。

维持运行的开销:包括冷却系统、供电费用等。

设计开发的开销:占据开销分析的主要部分,决定了设计是否具有商业可行性(能否盈利),需考虑更细致的因素,如市场的体量。

芯片面积:直接相关。

片外存储带宽:决定了片外存储的数量、复杂程度、器件工艺等开销相关因素。

分析方法:

开销和吞吐量/能效的tradeoff。

芯片面积和片外存储带宽间的tradeoff。

05

Flexibility

定义

DNN处理器可以支持的DNN模型范围,以及相应软件环境针对硬件最大程度地释放性能的能力。
支持一词的定义:
  • 可支持不同模型的功能

  • 不同模型中硬件仍要维持同一量级的性能(high throughput等)。

影响因素分析

  • 和性能之间的tradeoff

  • 和开销之间的tradeoff

  • 日益增加的重要性:减轻部署不同模型的重复开发负担

测试方法和相关指标:
  • 施加不同的模型,分别记录加速器的运行效率
  • 同一种模型的不同架构,例如不同量化精度和稀疏网络结构的使用。
  • 同一种网络层的不同配置参数,例如卷积核的尺寸。


06

Scalability

定义

设计可以通过尺寸缩放(增加资源用量)来获得更高的性能(latency and throughput),并且要求整个系统无需高度重设计。

影响因素分析

  • 理想情况下性能随着PE的数量线性等比例地缩放。
  • 问题尺寸不变,资源缩放可以带来性能缩放。
  • 问题尺寸变化,同样也要求缩放带来性能的控制。
  • 为了分析scalability,需要分别统计系统在不同PE和存储大小下的性能。


07

背景

定义

用于衡量网络中有效权重的占比。

影响因素分析

等同于标准稀疏操作的评价方式,同时需考虑架构是否支持稀疏操作的性能提升。


08

其他指标分析
这里再基于Eyeriss的Tutorial中的另一篇关于Benchmark Metrics的slice做的指标分析,指出了其他几个大的维度:
  • Metrics for DNN Algorithm
    • Accuracy:表现性能 。
    • Network Architecture:包括层数、卷积核尺寸和数量、特征图尺寸等 。
    • Number of Weights:非零权重 。
    • Number of MACs:非零乘法累加操作 。
  • Metrics for DNN Hardware
    • Energy Efficiency:pJ每非零计算。
    • External Memory Bandwidth:DRAM访问每非零计算。
    • Area Efficiency:芯片面积,需考虑片上存储.
    • MACs-based energy and DRAM accessing:考虑非零MACs相关的能量和内存访问情况,同样需考虑权重和激活函数稀疏性带来的影响。
  • 不同器件考量:
    • ASICs vs FPGA:采用不同指标分析,例如面积能效比、LUTs、DSP数量等。

09

分析模型1:Roofline Model性能瓶颈分析模型
经典的性能分析模型,确定处理器性能和片外存储访问效率的瓶颈关系。

定义

  • operational intensity: 计算强度,每字节DRAM搬移可进行的运算操作,定义为 。
  • 表示了三者的关系:浮点性能,计算强度,内存性能
  • X-axis:计算强度,单位GFlops/byte,对数轴。
  • Y-axis:可达到的最大性能,单位GFlops/sec,对数轴,其定义为: 

分析方法

  • 根据系统峰值计算性能,绘制水平区域(flat part)。
  • 根据内存带宽确定斜率,以及对应计算强度下的计算性能点,绘制45度倾斜区域(slanted part)。
  • 形成的封闭区域的下方即为整个系统可能处于的性能区域。
  • 优化方向确认:
    • 计算性能瓶颈:确定若干种可能的计算性能瓶颈和优化手段,依次绘制不同的水平区域,如原文中下图(a)所示。
    • 带宽瓶颈:确定若干种可能的带宽性能瓶颈和优化手段,依次绘制倾斜区域,如原文中图(b)所示。
    • 联合两种瓶颈,考察系统所处于的区域,如图(c)。当系统处于黄色区域(峰值计算性能瓶颈),因此仅考虑带宽优化,即向左上方移动;蓝色区域(带宽性能瓶颈),仅考虑采用更多计算性能优化手段,即向上移动;而无任何限制的绿色区域即可同时使用两种手段。
Roofline 模型瓶颈分析


10

分析模型2:Timeloop分析工具
Timeloop可在给定约束条件下的模型到部署的映射搜索,支持对当前多数DNN结构设计,并通过分析数据流和内存结构实现能耗和性能的优化搜索。其组成包括两个部分:模型:用于定义性能、面积、功耗等。映射器:用于根据给定的目标器件完成搜索和建立从模型到指令/架构部署的合适映射关系。
Timeloop 工具流程
Timeloop的输入如下:
  • 网络参数:输入输出维度、所需的操作类型。
  • 硬件架构描述:计算单元、硬件结构、内存的访问方式、带宽、内部拓扑连接结构等
  • 映射约束:使用了mapspace contraints的一种数据流约束概念来描述。
完成输入定义后,Timeloop分析步骤如下:
  • 数据分块:建立层级式的数据分块,用于描述数据块的访问和传输方式,并测量传输代价。
  • 硬件单元:根据步骤1中的数据分块模式导出硬件单元的访问模式和代价。
  • 能耗和面积:选择能耗和面积评估模型,并实施于当前的映射结构完成估算。


11

总结

如下总结DNN加速器设计中所需考虑的指标:
  • Accuracy: 网络的准确率,表明完成给定任务的质量。
  • Throughput:给定时间内处理的数据总量,和有效操作占比有关。
  • Power Consumption and Energy Efficiency:在给定能量下可以处理的数据总量,除有效操作外,需考虑内存访问、重复数据等产生的无效功耗。
  • Cost:构建一个加速器系统的全部开销,除器件本身外还需考虑宏观开销。
  • Flexibility:DNN处理器可以支持的DNN模型范围。
  • Scalability:支持简单地增加资源来获得更好的性能。
  • Sparse Operations:用于衡量网络中有效权重的占比。
两种分析模型:
  • Roofline Model:用于对处理器性能和片外存储访问效率的关系进行性能瓶颈分析。
  • Timeloop:可完成最优化模型结构搜索,并对功耗性能评价建模评估。


参考文献

[1]. V. Sze, Y.-H. Chen, T.-Y. Yang, J. S. Emer, "How to Evaluate Deep Neural Network Processors: TOPS/W (Alone) Considered Harmful," IEEE Solid-State Circuits Magazine, vol. 12, no. 3, pp. 28-41, Summer 2020
[2]. S. Williams, A. Waterman, and D. Patterson,Roofline: An insightful visual performance model for multicore architectures,”Commun. ACM, vol. 52, no.4, pp. 65–76, Apr. 2009. doi: 10.1145/1498765.1498785.
[3]. A. Parashar et al., “Timeloop: A systematic approach to DNN accelerator evaluation,”in Proc. Int. Symp. Performance Analysis Systems and Software (ISPASS), 2019, pp.304–315. doi: 10.1109/ISPASS.2019.00042.

本文目的在于学术交流,并不代表本公众号赞同其观点或对其内容真实性负责,版权归原作者所有,如有侵权请告知删除。



“强基固本”历史文章




分享、点赞、在看,给个三连击呗!

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存