来 源:Proceedings of The 9th Asian Conference on Machine Learning, ACML 2017, Seoul, Korea, November 15-17, 2017
原文速递:NeuralPower: Predict and Deploy Energy-Efficient Convolutional Neural Networks
1. Background & Motivation
具有相近性能的网络模型运行时可能存在高达40倍的能耗(图1),为了设计节能的CNN网络,进行准确的时延、能耗预测是至关重要的。然而该文发现现有的性能预测方法存在一些不足:1)通常使用的CNN复杂度指标(如FLOPs)太粗略以至于无法预测真实平台的能耗,运行CNN的能耗不仅与网络结构有关,还需要考虑软硬件平台;2)未能定量地捕捉到CNN架构变化对运行时间、功率和能耗地影响。
该文提出一种CNN时延、功率、能耗预测框架——NeuralPower,不需要在目标平台上实际运行CNN网络就可以在部署阶段预测网络的时延、功率和能耗。
2. Contributions
1)提出基于学习的多项式回归方法NeuralPower,是第一个预测CNN能耗的框架;
2)NeuralPower能够预测CNN运行时间,相比现有方法取得68.5%的准确度提升;
3)除了网络总体运行时延和能耗的预测,NeuralPower能够分析网络不同部分(每层)的时延和能耗,帮助模型设计人员分析模型瓶颈,更好地平衡精度和能耗。
3. Design Details
3.1 单层时延和能耗模型
与其他工作不同,该文的目标是在不需要了解平台详细信息的情况下,使预测模型能够灵活应用到各种软硬件平台。该文提出一个基于学习的多项式回归模型用于学习不同CNN层类型的系数。
层级时延模型:CNN模型一层的运行时延可以被表示为:
该模型由两部分组成,第一部分是对输入向量的多项式函数,是的第项,是多项式第项对于的指数,是要学习的系数。包含的层配置参数(如batch尺寸、输入输出尺寸等),对不同层类型,的维度有所不同。第二部分是特殊的多项式项,封装了每层的物理操作(如内存访问的总次数和浮点运算的总次数),特殊多项式的项数根据层类型变化,是需要学习的参数。
层级能耗模型:层能耗预测同样使用基于多项式的方法:
该模型同样由两部分组成,第一部分是输入向量的多项式函数,是多项式第项对于的指数,是要学习的系数。在模型的第二部分,为第项需要学习的系数。
该文注意到能耗的固有限制(计算负载增加时,能耗不再线性增长,存在一定上限),该文引入输入特征的对数项应对这种趋势以提高准确度。
3.2 完整模型时延和能耗模型
完整模型时延模型:对于一个层串行模型,模型总时延可通过层时延预测值的加和获得:
完整模型功耗模型:平均功耗可由下式获得:
完整模型能耗模型:整个网络的能耗可由下式获得:
3.3 模型选择
(1)运行时间模型
NeuralPower通过改变多项式模型的次数调整特征空间的尺度,应用Lasso压缩估计为每个多项式模型选择最佳模型,选择具有最低交叉验证均方根误差(RMSE)的模型,如图3,此时选择次数为2的模型更加合理。
卷积层:卷积层是最耗时间和能耗的CNN部件,该文使用3次的多项式模型对该层建模,选择的特征向量包括:batch尺寸、输入tensor尺寸、卷积和尺寸、步长、padding尺寸和输出tensor尺寸。对于特殊项,使用能表示总计算量和内存访问量的多项式。
全连接层:该文使用2次多项式回归模型,特征向量为:batch尺寸、输入tensor尺寸和输出tensor尺寸。
池化层:该文使用3次多项式回归模型,输入的特征向量为:输入tensor尺寸、步长、卷积核尺寸和输出tensor尺寸。
(2)能耗模型
该文使用原始特征的对数形式作为多项式模型的特殊特征,并发现使用2次多项式模型对三种CNN层类型能取得最优交叉验证误差。
3.4 模型评估
(1)层级运行时间模型
(2)层级能耗模型
(3)完整模型运行时间模型
该文完整模型运行时间的计算建模为各层时延的加和:
该文发现各层运行时延的加和与完整模型运行时延相近。
(4)完整模型能耗模型
4. Comments
1)该文考虑到其他基于单网络复杂度指标(e.g. FLOPs)方法的局限性,该文提出基于多项式模型的模型性能预测方法;
2)该文不仅进行了模型运行时延预测,还设计了能耗的预测方法;
3)该文的完整模型时延预测是对各层时延的加和,实验发现各层运行时延的加和与完整模型运行时延相近,该说法是否可靠还待考究。
- Copyright Notice:All articles in this blog are licensed under BY-NC-SA unless stating additionally.