[发明专利]一种基于机器学习的循环分块大小选择方法有效
申请号: | 201710175139.3 | 申请日: | 2017-03-22 |
公开(公告)号: | CN106990995B | 公开(公告)日: | 2020-10-27 |
发明(设计)人: | 伍卫国;刘松;崔元桢;蒋庆;谢骁;邹年俊 | 申请(专利权)人: | 西安交通大学 |
主分类号: | G06F8/41 | 分类号: | G06F8/41 |
代理公司: | 西安通大专利代理有限责任公司 61200 | 代理人: | 范巍 |
地址: | 710049 陕*** | 国省代码: | 陕西;61 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明提供一种基于机器学习的循环分块大小选择方法,针对原始DOALL循环进行合成程序构造,通过列下标元组的全排列使合成程序中的n层嵌套循环的特征值全面覆盖到原始程序以及真实应用程序中的循环;通过对n层嵌套循环变换得到的2n层嵌套循环的最内n层循环都进行特征值提取,同时通过全局搜索的方法获得n层嵌套循环的最优分块大小向量,形成神经网络训练样本集;经过训练和性能分析,得出最优分块大小预测模型,即可对真实应用程序中的DOALL循环进行分块大小预测。通过本发明提出的合成程序构造、特征值提取方法,结合机器学习过程,可以相比现有方法拥有更高性能的循环分块大小。 | ||
搜索关键词: | 一种 基于 机器 学习 循环 分块 大小 选择 方法 | ||
【主权项】:
一种基于机器学习的循环分块大小选择方法,其特征在于:包括以下步骤:1)以某个n层DOALL嵌套循环为原始测试程序,将原始测试程序构造成m个不同的合成程序,每一个合成程序的核心都是一个n层嵌套循环,对于每一个n层嵌套循环进行循环变换并按任意分块大小分块后,分别得到一个2n层嵌套循环;2)对每一个2n层嵌套循环分块内循环层的n层循环进行特征值提取,由提取得到的数据局部性加权特征值和向量化特征值Viter_r,构建对应n层嵌套循环的特征值向量FV,iter_r为第r层循环的迭代变量,r=1,2,…,n,FV=(witer_1*Liter_1,Viter_1,witer_2*Liter_2,Viter_2,…,witer_n*Liter_n,Viter_n,N),L为数据局部性特征值,N为n层嵌套循环的问题规模,w为符号化的权值参数,表示数据局部性受重用距离的影响大小;同时,通过全局搜索的方法获得n层嵌套循环的最优分块大小向量OTV=(Titer_1,Titer_2,…,Titer_n);对于m个不同的合成程序的n层嵌套循环,将各自的OTV与FV组成一个元组(FV,OTV),得m个元组(FVs,OTVs),s=1,2,…,m,将m个元组中所有FV加入集合FV_set,将所有OTV加入集合OTV_set;3)构造符号参数向量wV=(witer_1,witer_2,…,witer_n)的t个不同取值,组成集合wV_set;从wV_set中选择wV的一个取值wVi代入FV_set中每一个FV,得到FV_setsubstituted,用具有回归功能的神经网络进行训练,将FV_setsubstituted的FV作为输入,OTV_set中的对应OTV作为训练结果,将m个元组训练完之后得到一个预测模型model,对于t个不同的wV取值,一共训练出t个预测模型;用t个预测模型分别对原始测试程序进行分块大小预测,并对预测结果进行性能分析,最终从t个预测模型中选出性能最佳的模型modelbest,并将modelbest对应的wV取值记为wVbest;4)对一个需要进行分块大小选择的n层DOALL嵌套循环,首先采用任意分块大小进行循环分块,从分块后的2n层循环上获得该n层DOALL嵌套循环的FV,将wVbest代入该FV后输入modelbest,由该modelbest输出一个n维向量PTV=(PTiter_1,PTiter_2,…,PTiter_n),该向量的元素PTiter_r表示该n层DOALL嵌套循环迭代变量为iter_r的循环层应该选择的分块大小。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安交通大学,未经西安交通大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201710175139.3/,转载请声明来源钻瓜专利网。