[发明专利]面向多目标的细粒度编译自调优方法有效
申请号: | 201910879803.1 | 申请日: | 2019-09-18 |
公开(公告)号: | CN112527300B | 公开(公告)日: | 2023-06-13 |
发明(设计)人: | 朱琪;吴伟;王飞;钱宏;周文浩;杨涛 | 申请(专利权)人: | 无锡江南计算技术研究所 |
主分类号: | G06F8/41 | 分类号: | G06F8/41 |
代理公司: | 苏州科旭知识产权代理事务所(普通合伙) 32697 | 代理人: | 王健 |
地址: | 214083 江苏*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 面向 多目标 细粒度 编译 自调 方法 | ||
本发明公开一种面向多目标的细粒度编译自调优方法,包括以下步骤:S1、根据用户需求,确定编译优化的目标;S2、进行代码核心段标识,即对程序的执行时间进行拆分,并按照程序的执行时间长短对程序内的核心段函数进行排序,根据设定的阈值n,选取程序的执行时间最长的若干核心段函数;S3、对代码进行插桩,根据编译优化的目标,选择对应的插桩接口,用于量化评估编译优化效果;S4、修改配置文件,并启动自调优操作;S5、对调优结果的历史信息进行聚类分析,修改迭代过程的启发式策略。本发明能够挖掘编译优化选项的性能潜力,提高编译器的用户友好性,缩短用户进行应用调优的学习曲线。
技术领域
本发明涉及一种面向多目标的细粒度编译自调优方法,属于编译优化技术领域。
背景技术
为了充分发挥计算机系统的性能优势,用户往往需要针对目标体系结构对应用程序进行调优。主流编译器提供了多种优化技术,对代码进行编译优化,实现提高代码执行性能、减小目标代码大小、降低代码执行功耗等目的。然而,主流的编译优化遍数量众多,不同的优化遍对不同的代码结构产生的影响不同,且优化遍之间存在相互作用关系,如何为目标程序选取编译优化选项也成为了一个优化问题。
主流编译器内部编译优化选项高达上百个,而且编译优化选项之间的相互作用关系复杂,导致编译优化组合的解空间巨大,用户很难有效地针对目标应用程序使能编译优化选项。主流的编译器依靠编译优化等级辅助用户使用编译优化选项,例如,-O0/-O1/-O2/-O3/-Ofast等编译优化等级。这种粗粒度的等级划分能够有效地降低用户利用编译器对代码调优的学习曲线,满足一般用户需求,将用户从浩如烟海的解空间中解放出来。但是,特定的编译优化技术是根据特定的代码特征进行开发,只针对特定的代码结构产生较为明显的优化效果。粗粒度的编译优化等级没有考虑到代码结构特征,并没有充分发挥编译优化选项的性能优势,无法满足高性能用户需求。
在高性能计算领域,人们对于系统性能的需求尤为迫切。一方面,编译优化组合的解空间巨大,难以针对特定应用进行细粒度调优;另一方面,传统的编译优化等级划分粒度过于粗放,难以满足高性能用户需求。因此,如何提供一种细粒度的编译选项组合策略,辅助高性能需求用户形成更好的编译优化决策,成为本领域技术人员努力的方向。
发明内容
本发明的目的是提供一种面向多目标的细粒度编译自调优方法,该面向多目标的细粒度编译自调优方法能够挖掘编译优化选项的性能潜力,提高编译器的用户友好性,缩短用户进行应用调优的学习曲线。
为达到上述目的,本发明采用的技术方案是:一种面向多目标的细粒度编译自调优方法,包括以下步骤:
S1、根据调优需求q,确定编译优化的目标,具体如下:
S11、用户指定调优代码p和调优需求q;
S12、根据调优需求q,在性能分析工具的配置文件中,通过脚本查找调优需求q与性能计数器的对应关系表,确定编译优化的目标,设置自调优的反馈参数;
S2、进行代码核心段标识,即识别执行时间较长的核心段函数,具体如下:
S21、调用目标系统软件栈中配置的性能分析工具对调优代码p进行动态特征分析,得到调优代码p中函数的调用关系和调优代码p中函数的执行时间;
S22、根据S21中获得的函数的调用关系、函数的执行时间,性能分析工具对调优代码p中的函数按照执行时间的长短进行排序;
S23、根据设定的阈值k,选取调优代码p中执行时间最长的前n个函数,并将此前n个函数记为核心段函数,此前n个函数满足∑Time(n)/∑Time(m)≤k且∑Time(n+1)/∑Time(m)>k,其中m表示调优代码p中所有函数的数量,Time(x)表示函数x的执行时间;
S3、对调优代码p中的核心段函数进行插桩,根据编译优化的目标,选择对应的性能计数器插桩接口,用于量化评估编译优化效果,具体如下:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于无锡江南计算技术研究所,未经无锡江南计算技术研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910879803.1/2.html,转载请声明来源钻瓜专利网。