发明名称 一种基于复杂度的嵌入式软件功耗BP神经网络建模方法
摘要 本发明公布了一种基于复杂度的软件功耗BP神经网络建模方法。提供了一种新的方法和技术用于准确、快速地预测软件功耗,为相应的功耗优化研究和开发工作提供数据基础。本发明从算法级分析软件功耗与软件特征的关联关系,对嵌入式软件的时间复杂度、空间复杂度和输入规模三个特征进行了度量,建立一种基于算法复杂度的嵌入式软件功耗宏模型。然后,设计、训练一种具有n个隐层节点的单隐层三层BP神经网络,用于实现功耗函数逼近。本发明建立的基于复杂度的软件功耗BP神经网络宏模型,相比与其他人建立的线性函数功耗宏模型,功耗预测的精度和实用性得到了较大提升,预测误差在10%以内。附图是本发明整个系统工作的流程图。
申请公布号 CN101609411A 申请公布日期 2009.12.23
申请号 CN200910060111.0 申请日期 2009.07.27
申请人 四川大学 发明人 郭兵;沈艳;李奇;任磊;罗刚;廖海艳;朱建;周雪梅;李冉;曾蜀芳
分类号 G06F9/45(2006.01)I;G06N3/02(2006.01)I 主分类号 G06F9/45(2006.01)I
代理机构 代理人
主权项 1、一种基于复杂度的嵌入式软件功耗BP神经网络建模方法,其特征在于该方法的步骤如下:1)度量算法复杂度的特征量嵌入式软件功耗在算法层次上与算法复杂度密切相关,本发明抽取出算法复杂度的下列三个特征量进行度量:●时间复杂度OS度量:选择算法的平均时间复杂度作为时间复杂度的计算依据;●空间复杂度SS度量:选择算法在其运行期间辅助变量所申请空间总量作为空间复杂度的计算依据;●输入规模IS度量:输入规模的度量方法一般受算法的操作细节影响,不同的具体算法有不同的度量方法,如对于一个英文字符拼写检查算法,统计输入中词或者字符的数量作为输入规模的度量;对于排序、查找列表的最小元素等与列表有关的算法,列表的长度是该算法的输入规模;而一个n次多项式p(x)=anxn+…+a0求值的问题,输入规模是多项式的次数,或者是多项式系数的个数;2)建立基于算法复杂度的软件功耗模型通过如下公式得到嵌入式软件的功耗:ES=PS×TS=f(CS)×TS=f(Os,Ss,Is)×TS其中:ES表示软件的功耗,PS表示软件的平均功率,TS表示软件的运行时间,CS表示功耗相关的算法复杂度的特征量,f表示软件功率与算法复杂度的特征量的关联函数(简称功耗函数),由于PS=f(Os,Ss,Is),为确定功耗函数f,本发明采用BP(Back-Propagation反向传播)神经网络(简称BP网络)进行拟合,实现功耗函数逼近;3)BP网络的功耗函数逼近BP网络是将W-H学习规则一般化,对非线性可微分函数进行权值训练的多层网络;本发明采用具有n个隐层节点的单隐层三层BP网络,使用输入矢量Os,Ss,Is和相应的输出矢量PS样本集训练BP网络,逼近功耗函数f,包括以下步骤:●隐层数的确定:使用单隐层的BP网络;●节点数的确定:根据如下经验公式选择隐层节点数n1,<maths id="math0001" num="0001" ><math><![CDATA[ <mrow> <msub> <mi>n</mi> <mn>1</mn> </msub> <mo>=</mo> <msqrt> <mi>n</mi> <mo>+</mo> <mi>m</mi> </msqrt> <mo>+</mo> <mi>a</mi> <mo>,</mo> </mrow>]]></math></maths>其中,n=3为输入节点个数,m=1为输出节点个数,a为1到10之间的常数,因此,n1取值范围为3~12;●各层函数的确定:BP网络训练中隐层传递函数使用tansig函数,输出层传递函数使用purelin函数;●BP网络的训练与构造:通过功耗仿真实验平台HMSim获得软件功耗实验数据,用于训练、构造BP网络,确定各层的权值和阈值,形成一个训练好的BP网络模型,从而逼近功耗函数f,使该BP网络能够在一定输入规模下产生相应期望PS的输出。
地址 610065四川省成都市武侯区一环路南一段24号