【技术实现步骤摘要】
platform)、或反馈驱动的优化编译器框架(feedback
‑
driven optimization compiler framework)。
[0011]在一些实施例中,所述一个或多个轨迹中的每个轨迹包括一个或多个指标(metric),一个或多个指标包括以下至少一个:平均指令执行周期数(cycles per instruction,CPI)、执行时间、或平均累积指令的未命中数(miss per accruing instruction)。
[0012]在一些实施例中,获取中间代码和可执行代码包括:基于计算机程序生成中间代码;获取中间代码的树表示(tree representation);以及通过优化树表示来生成可执行代码。
[0013]在一些实施例中,获取中间代码和可执行代码包括:在编译器编译计算机程序后获得中间代码和可执行代码,且该方法还包括:触发被更新的编译器重新编译计算机程序。
[0014]在一些实施例中,计算机程序包括多个部分,且获取中间代码和可执行代码包括:通过由编译器编译计算机程序的第一部分来获得 ...
【技术保护点】
【技术特征摘要】
1.一种编译器优化方法,包括:获取通过使用编译器编译计算机程序而生成的中间代码和可执行代码;基于通过在运行时系统中执行所述可执行代码而获取的一个或多个轨迹来确定奖励;基于所述中间代码和所述一个或多个轨迹生成嵌入向量,以表示代码执行状态;使用强化学习代理,基于所述嵌入向量和所述奖励来确定一个或多个优化动作;以及通过应用所述一个或多个优化动作来更新所述编译器。2.根据权利要求1所述的编译器优化方法,其中,所述编译器包括多个接口,且更新所述编译器包括:触发所述多个接口中的一个或多个接口,以将所述一个或多个优化动作应用到所述编译器。3.根据权利要求1所述的编译器优化方法,其中,基于所述中间代码和所述一个或多个轨迹生成所述嵌入向量包括:生成表示所述中间代码的图;通过图神经网络基于所述图学习代码依赖;以及基于所述代码依赖和所述一个或多个轨迹生成所述嵌入向量,以表示代码执行状态;其中,基于所述代码依赖和所述一个或多个轨迹生成所述嵌入向量包括:基于所述代码依赖和所述一个或多个轨迹,生成一个或多个序列向量;将所述一个或多个序列向量输入序列模型,以生成所述嵌入向量。4.根据权利要求1所述的编译器优化方法,其中,所述运行时系统被在以下至少一个目标中实现:具有操作系统的计算设备、虚拟机、云本地编译器即服务的平台、或反馈驱动的优化编译器框架。5.根据权利要求1所述的编译器优化方法,其中,所述一个或多个轨迹中的每个轨迹包括一个或多个指标,所述一个或多个指标包括以下至少一个:平均指令执行周期数、执行时间、或平均累积指令的未命中数。6.根据权利要求1所述的编译器优化方法,其中,获取所述中间代码和所述可执行代码包括:基于所述计算机程序生成所述中间代码;获取所述中间代码的树表示;以及通过优化所述树表示生成所述可执行代码。7.根据权利要求1所述的编译器优化方法,其中,所述计算机程序包括多个部分,获取所述中间代码和所述可执行代码包括:通过由所述编译器编译所述计算机程序的第一部分,获取所述中间代码和所述可执行代码;以及所述方法还包括:使用被更新的编译器编译所述计算机程序的第二部分。8.根据权利要求1所述的编译器优化方法,其中,所述强化学习代理训练用于推荐优化动作的优化策略,所述方法还包括:从被更新的编译器获取新的可执行代码;通过在所述运行时系统中运行所述新的可执行代码,获取一个或多个新的轨迹和新的
奖励;以及基于所述新的奖励和所述一个或多个优化动作,训练所述优化策略。9.一种编译器优化系统,所述编译器优化系统包括一个或多个处理器以及耦合到所述一个或多个处理器的一个或多个非瞬时性计算机可读存储器,所述一个或多个非瞬时性计算机可读存储器存储指令,当所述一个或多个处理器执行...
【专利技术属性】
技术研发人员:方元炜,陈彦光,
申请(专利权)人:阿里巴巴集团控股有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。