返回
AnnotationGym: A Generic Framework for Automatic Source Code Annotation
DOI:10.1109/ACCESS.2025.3605852.png)
摘要
En 中文
一种代码优化的常用方法是使用注解在源代码中插入编译器提示。有效使用注解面临的两大主要挑战是其复杂性和缺乏可移植性。这意味着,首先,需要大量的开发者专业知识;其次,支持的注解及其语法和用法可能存在显著差异。此外,目前没有任何工具能够为不同后端输出高性能的注解插入代码。为解决这些挑战,我们提出了AnnotationGym,这是一个易于使用、开源的通用基础设施,用于补充或替代开发者在源代码中添加注解。它展示了将AI方法应用于代码注解的新应用。除了提升代码性能外,AnnotationGym的灵活性还便于在编译器和目标架构之间轻松比较性能和优化策略,从而提供了一个可扩展的平台以促进该领域的进一步发展。AnnotationGym自动提取目标代码和编译器的结构化信息,以生成可能的注解列表。基于AI的优化算法随后遍历此空间,根据开发者目标确定最佳注解集。为证明其有效性,我们在Polybench套件中的流行代表性工作负载上运行了AnnotationGym,并针对多种编译器(GCC、AMD HLS、Intel HLS)、优化算法(强化学习、贝叶斯优化)和架构(CPU、FPGA)进行了测试。我们还测试了我们的方法在FPGA代码上的应用,这些代码源自例如Rodinia和OpenDwarfs基准测试,并使用标准最佳实践进行手动优化。一个有趣的发现是,AnnotationGym获得的最佳整体性能通常出现在未优化的代码中。
Keyword:
Code annotation
reinforcement learning
source-to-source code optimization
compiler hints
期刊
IF:
3.6
论文数:
9.8W
被引数:
29.4W

