[发明专利]自动化编译的系统和方法有效
| 申请号: | 201880094867.4 | 申请日: | 2018-06-20 |
| 公开(公告)号: | CN112352219B | 公开(公告)日: | 2022-07-26 |
| 发明(设计)人: | 高耀青;钟璇;吴芃;龙晨 | 申请(专利权)人: | 华为技术有限公司 |
| 主分类号: | G06F8/41 | 分类号: | G06F8/41;G06N20/00 |
| 代理公司: | 北京中博世达专利商标代理有限公司 11274 | 代理人: | 申健 |
| 地址: | 518129 广东*** | 国省代码: | 广东;44 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 自动化 编译 系统 方法 | ||
1.一种自动调整和编译源代码的方法,其特征在于,所述方法包括:
在计算设备处接收源代码;
在所述计算设备处,根据第一优化方案通过编译所述源代码生成第一可执行文件;
在所述计算设备处生成包括与所述第一优化方案有关的数据的编译报告;
在所述计算设备处生成性能报告,所述性能报告包括与所述第一可执行文件的执行性能有关的动态数据;
在所述计算设备处接收指示与所述第一可执行文件的所述执行性能相关联的一个或多个性能瓶颈的性能瓶颈信息;
在所述计算设备处,至少基于所述编译报告、所述性能报告和所述性能瓶颈信息生成第二优化方案;
根据所述第二优化方案,通过编译所述源代码在所述计算设备处生成第二可执行文件;以及
所述计算设备根据所述第一可执行文件和所述第二可执行文件,输出优化后的可执行文件。
2.根据权利要求1所述的方法,其特征在于,还包括:
在生成所述第一可执行文件之前,识别与所述源代码相关联的一个或多个性能参数。
3.根据权利要求2所述的方法,其特征在于,所述第二优化方案中至少一个性能参数的值与所述第一优化方案中所述至少一个性能参数的值不同。
4.根据权利要求1所述的方法,其特征在于,所述生成所述第二优化方案包括:在机器学习模块处基于所述编译报告和所述性能报告中的至少一个确定所述第二优化方案。
5.根据权利要求4所述的方法,其特征在于,所述输出所述优化后的可执行文件包括:确定与所述第二可执行文件的执行性能有关的动态数据在性能指标方面是否优于与所述第一可执行文件的所述执行性能有关的所述动态数据。
6.根据权利要求1所述的方法,其特征在于,所述编译报告包括以下至少一项:
编译器对所述源代码执行的一个或多个转换的标识;以及
对于由所述编译器执行的所述一个或多个转换中的每一个,在所述源代码中执行相应转换的相应位置。
7.根据权利要求1所述的方法,其特征在于,所述与所述第一可执行文件的所述执行性能有关的所述动态数据包括与所述第一可执行文件在特定处理器模拟器上的模拟执行性能有关的动态数据和与所述第一可执行文件在所述特定处理器上的执行性能有关的动态数据中的一个或多个;所述 特定处理器模拟器用于模拟执行编译器生成的可执行文件。
8.根据权利要求1所述的方法,其特征在于,所述动态数据包括跟踪信息中的一个或多个,所述跟踪信息包括机器周期、停顿、缓存未命中、分支预测未命中、内存跟踪数据、寄存器计数、流水线停顿、内存访问计数、性能指标、周期精度数据、内存寄存器信息中的一个或多个。
9.根据权利要求1所述的方法,其特征在于,还包括:将所述源代码、所述编译报告、所述第一可执行文件、所述第二可执行文件和所述动态数据中的一个或多个传输到知识库。
10.根据权利要求1所述的方法,其特征在于,还包括:通过以下方式确定所述第二优化方案:
利用机器学习单元,基于与至少一个历史可执行文件相关联的动态数据、所述历史可执行文件中的编译报告、所述第一可执行文件的所述性能报告和所述第一可执行文件的所述编译报告,生成输出优化建议的映射函数。
11.根据权利要求10所述的方法,其特征在于,选择所述第二优化方案包括:
生成包含多个优化方案的搜索空间;以及
基于在所述搜索空间上执行搜索策略,确定所述第二优化方案。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201880094867.4/1.html,转载请声明来源钻瓜专利网。





