频繁序列挖掘帮助的LLVM编译时能耗优化方法及系统技术方案

技术编号:33653119 阅读:26 留言:0更新日期:2022-06-02 20:31
本发明专利技术涉及一种频繁序列挖掘帮助的LLVM编译时能耗优化方法及系统,该方法首先生成初始候选解集S,并基于候选解集S构建初始的带能耗改进标注的选项序列事务数据库DB

【技术实现步骤摘要】
频繁序列挖掘帮助的LLVM编译时能耗优化方法及系统


[0001]本专利技术涉及本专利技术属于编译优化
,具体涉及一种频繁序列挖掘帮助的LLVM编译时能耗优化方法及系统。

技术介绍

[0002]开源编译器LLVM具有高度模块化的特点和跨语言跨硬件平台的编译优化能力,现已广泛用于各类软件的开发中。LLVM提供了大量用于优化非功能性属性的编译选项并且这些选项可在编译优化过程的不同阶段被应用,进而产生不同优化效果的可执行代码。LLVM开发者虽已基于领域知识以及在典型应用和常用硬件平台下的实验结果提供了

O0、

O1、

O2和

O3等标准优化等级,但运用这些标准等级对应的选项序列往往只能得到平均好的优化结果。
[0003]如何针对给定的硬件平台和应用程序搜索最佳LLVM选项序列以获取具有更优非功能属性的可执行代码一直是编译优化领域的公开问题和热点问题。解决这一问题将面临两个主要的挑战:一是庞大且离散的选项序列优化空间。若一个特定版本LLVM提供n个选项,规定序列本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种频繁序列挖掘帮助的LLVM编译时能耗优化方法,其特征在于,首先生成初始候选解集S,并基于候选解集S构建初始的带能耗改进标注的选项序列事务数据库DB
E
,然后基于DB
E
挖掘生成带能耗改进标注的频繁选项序列前缀树prefixTree
E
和后缀树postfixTree
E
,再基于前缀树prefixTree
E
和后缀树postfixTree
E
生成带能耗改进标注频繁选项序列帮助的新解,评估生成新解并更新DB
E
;不断生成新解直至达到预设的停机时间或解质量,输出S中的最优解。2.根据权利要求1所述的频繁序列挖掘帮助的LLVM编译时能耗优化方法,其特征在于,包括以下步骤:步骤S1、输入初始解集大小N和优化环境Env;步骤S2、将迭代次数t赋初值1;产生大小为N的候选解集S={X1,X2,

,X
i
,

,X
N
},其中,1≤i≤N,X
i
∈Ω,N

1个候选解由拉丁超立方体采样产生,而另一个解为

O2等级对应的解;将事务标识tID赋初值0,将DB
E
初始化为空集步骤S3、对于候选解集S中每个候选解X
i
:计算X
i
的能耗优化目标值f
Env
(X
i
);所述f
Env
(X
i
)为在优化环境Env下,解X
i
相较于LLVM的

O2等级对应的序列能耗改进百分比,即降低能耗的百分比;如果f
Env
(X
i
)>0,即有能耗改进效果,则更新DB
E
,即令事务标识tID加1,并将带能耗改进标注的选项序列事务T
E
(tID,X
i
,f
Env
(X
i
))加入DB
E
;步骤S4、如果未达到预设的停机时间或解质量,转下一步,否则转步骤S8;步骤S5、基于DB
E
挖掘生成带能耗改进标注的频繁选项序列前缀树prefixTree
E
和后缀树postfixTree
E
;步骤S6、对于候选解集S中每个候选解X
i
:基于X
i
、前缀树prefixTree
E
和后缀树postfixTree
E
生成新解Y
i
,并计算Y
i
的能耗优化目标值f
Env
(Y
i
);如果f
Env
(Y
i
)>f
Env
(X
i
),则一方面在DB
E
中查找X
i
对应的事务T
E
,若存在则用Y
i
和f
Env
(Y
i
)分别替换T
E
中的X
i
和f
Env
(X
i
),另一方面将S中X
i
用Y
i
替换;步骤S7、令迭代次数t加1,并返回步骤S4,继续判断、循环;步骤S8、输出最优解X。3.根据权利要求2所述的频繁序列挖掘帮助的LLVM编译时能耗优化方法,其特征在于,通过带能耗改进标注的频繁选项序列挖掘算法prefixspan+来挖掘生成带能耗改进标注的频繁选项序列前缀树prefixTree
E
和后缀树postfixTree
E
,具体包括以下步骤:步骤A1、输入指向前缀树prefixTree
E
待插入子结点的结点指针ptr
pre
,指向后缀树postfixTree
E
根结点的指针ptr
post
,频繁选项序列β,最小支持计数Sup
min
,以及以β为前缀的投影数据库DB
E
|
β
;步骤A2、判断DB
E
|
β
中事务数目是否小于Sup
min
,是则结束,否则扫描数据库DB
E
|
β
,并在扫描过程中分别计算每个选项op所对应序列α=<op>的支持计数和能耗改进标注E
α
,并生成频繁选项序列集合,并生成频繁选项序列集合步骤A3、对于每个生成序列γ=β
°
α,用于表示以β为前缀和α为后缀,并经连接生成的频繁选项序列;将γ的支持计数和能耗改进标注E
γ
分别置为和E
α
,构造出频繁选项序列以α、ptr
pre
和为
输入将插入至前缀树,并将返回值赋给ptr
pre
,以ptr
post
和为输入将插入至后缀树,得到带能耗改进标注的频繁选项序列前缀树prefixTree
E
和后缀树postfixTree
E
;步骤A4、构建γ的前缀投影数据库DB
E
|
γ
,其等于(DB
E
|
β
)|
α
;步骤A5、以ptr
pre
、ptr
post
、γ、Sup
min
和DB
E
|
γ
为参数,递归调用prefixspan
+
算法。4.根据权利要求3所述的频繁序列挖掘帮助的LLVM编译时能耗优化方法,其特征在于,每个用一个三元组进行表征,其中β捕获了哪些选项按先后顺序发生了交互,和E
β
分别用于表示交互的发生次数和功效;和E
β
分别由式(1)和式(2)计算得到:(1)和式(2)计算得到:式中,X表示β为事务T
E
中选项序列X的子序列,而E
β
是β所参与各事务T
E
的能耗...

【专利技术属性】
技术研发人员:倪友聪杜欣肖如良
申请(专利权)人:福建师范大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1