CN101609411A - 一种基于复杂度的嵌入式软件功耗bp神经网络建模方法 - Google Patents
一种基于复杂度的嵌入式软件功耗bp神经网络建模方法 Download PDFInfo
- Publication number
- CN101609411A CN101609411A CNA2009100601110A CN200910060111A CN101609411A CN 101609411 A CN101609411 A CN 101609411A CN A2009100601110 A CNA2009100601110 A CN A2009100601110A CN 200910060111 A CN200910060111 A CN 200910060111A CN 101609411 A CN101609411 A CN 101609411A
- Authority
- CN
- China
- Prior art keywords
- power consumption
- network
- software
- function
- algorithm
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公布了一种基于复杂度的软件功耗BP神经网络建模方法。提供了一种新的方法和技术用于准确、快速地预测软件功耗,为相应的功耗优化研究和开发工作提供数据基础。本发明从算法级分析软件功耗与软件特征的关联关系,对嵌入式软件的时间复杂度、空间复杂度和输入规模三个特征进行了度量,建立一种基于算法复杂度的嵌入式软件功耗宏模型。然后,设计、训练一种具有n个隐层节点的单隐层三层BP神经网络,用于实现功耗函数逼近。本发明建立的基于复杂度的软件功耗BP神经网络宏模型,相比与其他人建立的线性函数功耗宏模型,功耗预测的精度和实用性得到了较大提升,预测误差在10%以内。附图是本发明整个系统工作的流程图。
Description
所属技术领域
本发明涉及嵌入式软件功耗优化技术领域,尤其是涉及一种基于复杂度的嵌入式软件功耗BP神经网络建模方法。
背景技术
目前在国家提倡“节能减排”的背景下,嵌入式系统的功耗是一个日益引起人们关注的热点问题,已受到各级政府部门和业内软/硬件开发商的高度重视。
嵌入式计算机系统(简称嵌入式系统)是典型的软件驱动执行的系统,从其组成分析,嵌入式软件的运行驱动了低层微处理器、总线、Cache、存储器和I/O接口等硬件的电路活动,导致了系统功耗的产生,因此,嵌入式软件是产生系统功耗的“主动”因素和“活跃”因素,这也是嵌入式软件功耗的本质含义。
嵌入式软件的功耗优化设计是研究在一定性能(如速度、吞吐量、实时性、可靠性、防危性、可信性、成本等)约束下嵌入式软件的功耗优化(功耗降低或功耗最小化)问题,属于静态功耗优化技术,包括功耗仿真、功耗建模、功耗估计、功耗降低、功耗评价以及相应支持工具开发等内容,是软件运行时开展动态功耗管理(DPM:Dynamic Power Management)和RTOS功耗相关任务调度(Power-aware Task Scheduling)的基础。其中,功耗建模主要是从软件本身影响其功耗的相关因素(即软件设计特征)角度,深入分析了软件功耗的构成及形成机理,建立功耗与关联因素的关系模型。嵌入式软件功耗模型通常可以分为以下四类:
1)基于硬件性能计数器的功耗模型(Hardware performance counter-based power model):由于多数现代微处理器中都嵌入了可编程的计数器,通过监控系统发生的事件,能够用于测量微处理器的性能,因而进一步可用于软件的功耗分析与优化。
2)指令级的功耗模型(Instruction-level power model):又称为低层模型或微模型(Micro-model),通过对微处理器的每条汇编指令以及指令对(Instruction pair)进行功耗测量,实现汇编语言程序级的功耗分析与估计,同时,通过编译时产生的符号表信息也能够部分实现对高级语言程序的功耗分析与优化。
3)基于特征的宏模型(Characterization-based macro-model):又称为高层模型,针对高级语言程序(如C、C++和Java等)的函数或子程序,采用回归拟合方法建立功耗与软件的某些相关高层度量特征(如算法复杂度或基于路径的基本块关联信息(Trace-based basic-blockcorrelation information))之间的关联模型,能够快速地对软件的功耗进行分析与估计。这是当前软件功耗建模的一个主要方向,一些研究者根据具体的研究问题提出了明确的功耗函数关系,如二元线性函数关系。
4)基于微结构级仿真的功耗模型(Architectural level simulation-based power model):针对特定结构的微处理器,采用周期精确的全功能微结构级功耗仿真器(Cycle-accuratefull-function power simulator),如Wattch和SoftWatt,对软件的功耗进行测量和估计,从而为软件的功耗分析与优化提供基础数据。
目前,针对嵌入式软件的功耗分析与建模技术,为了提高功耗估计的速度,宏模型一般使用简单的二元线性函数。从理论上看,假设软件功耗与软件高层度量特征之间的关联关系是线性回归函数关系,缺乏充分的依据;从实践上看,线性函数拟合功耗函数关系,虽然模型简单,估计速度较快,但功耗估计值误差也较大(一般在20%以内),许多情况下不能满足实际工程需要。两方面综合分析,嵌入式软件功耗函数更可能是一个非线性函数。
发明内容
本发明的目的在于提供了一种基于算法复杂度的嵌入式软件功耗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,
其中,n=3为输入节点个数,m=1为输出节点个数,a为1到10之间的常数,因此,n1取值范围为3~12。
●各层函数的确定:BP网络训练中隐层传递函数使用tansig函数,输出层传递函数使用purelin函数。
●BP网络的训练与构造:通过功耗仿真实验平台HMSim获得软件功耗实验数据,用于训练、构造BP网络,确定各层的权值和阈值,形成一个训练好的BP网络模型,从而逼近功耗函数f,使该BP网络能够在一定输入规模下产生相应期望PS的输出。本发明与背景技术相比,具有的有益效果是:
1)精确性:本发明建立的基于复杂度的软件功耗BP网络宏模型,相比与其他人建立的线性函数功耗宏模型,功耗预测的精度得到了较大提升,预测误差在10%以内。
2)实用性:可用于快速预测(或估算)软件算法在一定输入规模情况下的功耗值,为开展相应的功耗优化研究和开发工作打下坚实的数据基础。
附图说明
图1是本发明整个系统工作的流程图。
图2是本发明BP网络结构图。
具体实施方式
下面结合附图和实例对本发明作进一步的说明。
1)度量算法复杂度的特征量
嵌入式软件功耗在算法层次上与算法复杂度密切相关,本发明抽取出算法复杂度的下列三个特征量进行度量:
●时间复杂度OS度量:选择算法的平均时间复杂度作为时间复杂度的计算依据,并将算法的平均时间复杂度O(n)、O(logn)、O(nlogn)、O(n2)和O(n3)依次映射为1、2、3、4和5。
●空间复杂度SS度量:选择算法在其运行期间辅助变量所申请空间总量作为空间复杂度的计算依据。如对于一个结构变量,可将其每个成员所占用的空间累积起来,即可得到该变量所需要的内存。类似地,可得到一个数组变量所需要的空间,方法是用数组的大小乘以单个数组元素所需要的空间,如一个int A[rows][cols]的数组,如果使用Microsoft Visual C++编译器,int数据类型占用字节数为4,则数组占用了4×rows×cols字节;对于算法中辅助变量未使用列表的情况下,其空间度量为1个int单位。
●输入规模IS度量:输入规模的度量方法一般受算法的操作细节影响,不同的具体算法有不同的度量方法,如对于一个英文字符拼写检查算法,统计输入中词或者字符的数量作为输入规模的度量;对于排序、查找列表的最小元素等与列表有关的算法,列表的长度是该算法的输入规模;而一个n次多项式p(x)=anxn+…+a0求值的问题,输入规模是多项式的次数,或者是多项式系数的个数。
根据上面描述的度量规则,实例训练样本算法集(具体实现为训练样本函数列表)的时间复杂度、空间复杂度和输入规模度量结果如表1所示。
表1训练样本函数列表
函数名称 | 功能描述 | 时间复杂度 | 空间复杂度 | 输入规模 |
gen_arr | 生成一个随机数组 | O(n) | MAX_SIZE | MAX_SIZE |
nn_time1 | 两层循环算术运算 | O(n2) | 1 | MAX_SIZE |
bubbleSort | 冒泡排序算法 | O(n2) | MAX_SIZE | MAX_SIZE |
selectionSort | 选择排序算法 | O(n2) | MAX_SIZE | MAX_SIZE |
nn_time2 | 两层循环算术运算 | O(n2) | 1 | MAX_SIZE |
gen_arr2 | 生产一个随机的二维数组 | O(n2) | 2*NUMBER*NUMBER | NUMBER |
nn_time | 两层循环算术运算 | O(n2) | 1 | MAX_SIZE |
mult | 两个矩阵相乘 | O(n3) | 3*NUMBER*NUMBER | NUMBER |
arr_insert | 在有序数组中插入整数 | O(n) | MAX_SIZE | MAX_SIZE |
checksum | 计算整数数组校验和 | O(n2) | MAX_SIZE | MAX_SIZE |
prime | 计算求出素数 | O(n2) | MAX_SIZE | MAX_SIZE |
其中,MAX_SIZE表示一维数组的长度,NUMBER表示二维数组每一维的长度。
2)建立基于算法复杂度的软件功耗模型
嵌入式软件功耗的一般模型可表示为:
ES=PS×TS=f(CS)×TS
其中,ES表示软件的功耗,PS表示软件的平均功率(可以是通过一组基准程序测试获得的平均值,也可以通过功耗-特征关联模型获得),TS表示软件的运行时间(算法越复杂,运行时间越长),CS表示功耗的某些软/硬件相关特征度量,f表示软件功率与软/硬件相关特征度量的关联函数(简称功耗函数)。
从算法层次上考虑PS的软件关联特征,进一步得到:
PS=f(CS)=f(Os,Ss,Is)
其中,OS为算法的时间复杂度度量,SS为算法的空间复杂度度量,IS为算法输入规模的度量。
为确定功耗函数f,建立更精确的算法级功耗模型,本发明采用BP网络进行拟合,实现功耗函数逼近。
3)BP网络的功耗函数逼近
本发明采用具有n个隐层节点的单隐层三层BP网络(其结构如图2所示),使用输入矢量Os,Ss,Is和相应的输出矢量PS样本集训练BP网络,逼近功耗函数f。由于BP网络具有3个输入矢量Os,Ss和Is,因而BP网络输入层的节点数为3个;由于BP网络具有1个输出矢量PS,因而BP网络输出层的节点数为1个。
因此,隐层节点数n1根据如下公式计算获得:
其中,n=3为输入节点个数,m=1为输出节点个数,a为1到10之间的常数,因此,n1取值范围为3~12。根据样本集训练结果误差分析,n1=11时误差最小。
BP网络训练中隐层传递函数使用tansig函数,输出层传递函数使用purelin函数。
表1是BP网络的输入样本,每一个样本在不同输入规模下运行产生的功耗数据由功耗仿真试验平台HMSim获得。
设置网络训练误差为MSE(Mean square error均方差),其期望值为10-7,利用这些样本对BP网络进行训练,构造BP网络,得到的BP网络权值和阈值如下:
b2=[-1.5508]
其中,w1为输入层到隐层的权值,b1为隐层的阈值,w2为隐层到输出层的权值,b2为输出层的阈值。
在确定各层的权值和阈值后,形成一个训练好的BP网络模型,从而逼近功耗函数f,使该BP网络能够在一定输入规模下产生相应期望PS的输出,即软件功率PS。
最后,确定估算算法集,以求二维整数数组中的最大值函数Max为例,利用BP网络可预测该函数的功率PS,然后由实际运行时间TS,根据公式ES=PS×TS,可计算出软件功耗ES,并与其实际测试的功耗值进行比较。其中,Max函数的算法特征量度量值、预测功耗值和通过功耗仿真试验平台HMSim获得的实际功耗值如表2所示,可以看出,预测功耗值和实际功耗值的误差范围为3%~10%。
表2测试函数复杂度度量和预测结果
Claims (1)
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,
其中,n=3为输入节点个数,m=1为输出节点个数,a为1到10之间的常数,因此,n1取值范围为3~12;
●各层函数的确定:BP网络训练中隐层传递函数使用tansig函数,输出层传递函数使用purelin函数;
●BP网络的训练与构造:通过功耗仿真实验平台HMSim获得软件功耗实验数据,用于训练、构造BP网络,确定各层的权值和阈值,形成一个训练好的BP网络模型,从而逼近功耗函数f,使该BP网络能够在一定输入规模下产生相应期望PS的输出。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009100601110A CN101609411B (zh) | 2009-07-27 | 2009-07-27 | 一种基于复杂度的嵌入式软件功耗bp神经网络建模方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009100601110A CN101609411B (zh) | 2009-07-27 | 2009-07-27 | 一种基于复杂度的嵌入式软件功耗bp神经网络建模方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101609411A true CN101609411A (zh) | 2009-12-23 |
CN101609411B CN101609411B (zh) | 2013-01-09 |
Family
ID=41483174
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009100601110A Expired - Fee Related CN101609411B (zh) | 2009-07-27 | 2009-07-27 | 一种基于复杂度的嵌入式软件功耗bp神经网络建模方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101609411B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101881995A (zh) * | 2010-06-04 | 2010-11-10 | 四川大学 | 一种针对arm指令集的层次分类功耗测量方法 |
CN104407972A (zh) * | 2014-11-21 | 2015-03-11 | 昆明理工大学 | 一种基于改进神经网络的嵌入式软件能耗测试方法 |
CN109492747A (zh) * | 2017-09-13 | 2019-03-19 | 杭州海康威视数字技术股份有限公司 | 一种神经网络的网络结构生成方法及装置 |
CN109726771A (zh) * | 2019-02-27 | 2019-05-07 | 深圳市赛梅斯凯科技有限公司 | 异常驾驶检测模型建立方法、装置及存储介质 |
CN111443681A (zh) * | 2020-05-29 | 2020-07-24 | 聊城信源集团有限公司 | 超临界火电机组协调控制系统多模型预测控制设计方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101414349A (zh) * | 2007-12-04 | 2009-04-22 | 浙江师范大学 | 一种基于bp神经网络的指纹图像纹路方向计算和图像分割方法 |
-
2009
- 2009-07-27 CN CN2009100601110A patent/CN101609411B/zh not_active Expired - Fee Related
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101881995A (zh) * | 2010-06-04 | 2010-11-10 | 四川大学 | 一种针对arm指令集的层次分类功耗测量方法 |
CN104407972A (zh) * | 2014-11-21 | 2015-03-11 | 昆明理工大学 | 一种基于改进神经网络的嵌入式软件能耗测试方法 |
CN109492747A (zh) * | 2017-09-13 | 2019-03-19 | 杭州海康威视数字技术股份有限公司 | 一种神经网络的网络结构生成方法及装置 |
CN109726771A (zh) * | 2019-02-27 | 2019-05-07 | 深圳市赛梅斯凯科技有限公司 | 异常驾驶检测模型建立方法、装置及存储介质 |
CN111443681A (zh) * | 2020-05-29 | 2020-07-24 | 聊城信源集团有限公司 | 超临界火电机组协调控制系统多模型预测控制设计方法 |
CN111443681B (zh) * | 2020-05-29 | 2021-05-11 | 聊城信源集团有限公司 | 超临界火电机组协调控制系统多模型预测控制设计方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101609411B (zh) | 2013-01-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Echard et al. | A combined importance sampling and kriging reliability method for small failure probabilities with time-demanding numerical models | |
Dawson et al. | Evaluation of artificial neural network techniques for flow forecasting in the River Yangtze, China | |
Aguir et al. | Parameter identification of an elasto-plastic behaviour using artificial neural networks–genetic algorithm method | |
Zhang et al. | Global optimization of reliability design for large ball mill gear transmission based on the Kriging model and genetic algorithm | |
CN103455610B (zh) | 基于多目标密母计算的网络社区检测方法 | |
CN101609411B (zh) | 一种基于复杂度的嵌入式软件功耗bp神经网络建模方法 | |
CN102663495B (zh) | 一种用于非线性器件建模的神经网络数据生成方法 | |
YiFei et al. | Multi-parameter identification of concrete dam using polynomial chaos expansion and slime mould algorithm | |
Richmond et al. | Evaluation of an offshore wind farm computational fluid dynamics model against operational site data | |
CN105844060A (zh) | 一种可评估结构非概率可靠度的安全系数设计方法 | |
CN103034750B (zh) | 可重复电路仿真的方法和系统 | |
Peng et al. | A new Bayesian finite element model updating method based on information fusion of multi-source Markov chains | |
CN102156641A (zh) | 一种软件成本置信区间预测方法及系统 | |
CN105808962A (zh) | 考虑多个风电出力随机性的电力系统电压概率的评估方法 | |
Li et al. | Failure correlation evaluation for complex structural systems with cascaded synchronous regression | |
Liu et al. | Dynamic material parameter inversion of high arch dam under discharge excitation based on the modal parameters and Bayesian optimised deep learning | |
Wang et al. | Dynamic heat supply prediction using support vector regression optimized by particle swarm optimization algorithm | |
CN201716727U (zh) | 基于遥感与gis的地理模拟系统 | |
Zhang et al. | Assessing long-term wind conditions by combining different measure-correlate-predict algorithms | |
Wang et al. | Comparison and evaluation of uncertainties in extreme flood estimations of the upper Yangtze River by the Delta and profile likelihood function methods | |
Zar et al. | Vibration-based damage detection of arch dams using least-square support vector machines and salp swarm algorithms | |
CN104036118B (zh) | 一种电力系统并行化轨迹灵敏度获取方法 | |
Wanto et al. | Optimization of Performance Traditional Back-propagation with Cyclical Rule for Forecasting Model | |
McConway et al. | A likelihood‐based method for testing for nonstochastic variation of diversification rates in phylogenies | |
Li et al. | Hybrid central–WENO scheme for the large eddy simulation of turbulent flows with shocks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20130109 Termination date: 20130727 |