24、多目标优化:编译器优化序列探索

多目标优化:编译器优化序列探索

1. 引言

高性能优化编译器的开发是一个极具挑战性的问题。一方面,编译器启发式方法不足,不过可以利用监督式机器学习自动生成高效启发式方法,使其超越传统启发式方法。另一方面,优化之间的相互作用也是关键问题,即一个优化的效果可能取决于编译序列中其他优化的存在与否。

为减轻编译器用户寻找合适优化的负担,传统编译器配备了标准优化级别,如 O3。这些级别由编译器编写者根据经验和直觉生成,但不能保证在其他架构和基准测试中表现良好。实际上,许多编译器的标准优化序列性能低于最佳性能特定的优化序列,甚至会对程序性能产生不利影响。这是因为尽管经过多年研究,优化之间相互作用的本质仍未完全理解,在编译器设计中很多相互作用被忽略。

这导致了对有前景的编译器优化序列的探索,也就是所谓的阶段排序问题。阶段排序的理念是生成适合编译器环境的定制优化序列,使编译器能够重新配置以满足特定目标架构上单个或一组应用程序的需求。具备执行任意优化序列能力的编译器被称为自适应编译器。

对于现代系统,情况更为复杂。除了寻找有前景的优化序列的挑战外,现代系统还需满足不同要求。在嵌入式实时系统中,不仅平均执行时间(ACET),最坏情况执行时间(WCET)、代码大小、可靠性和温度等都至关重要。然而,编译器优化通常对这些目标有冲突影响,改善一个目标可能会降低另一个目标的性能,找到满意的解决方案更加困难。

本文提供了构建高性能编译器的补充解决方案。扩展后的 WCC 不仅能为单个目标函数找到良好的优化序列,还能搜索在不同目标(WCET、ACET 和代码大小)之间提供权衡的编译器优化级别。选择 ACET 优化类是为了系统研究标准优化对系统最坏情况行为的影响,并且由于使用标

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值