当前位置:主页 > 科技论文 > 计算机论文 >

基于LLVM编译器的节点融合优化方法

发布时间:2024-02-07 01:12
  LLVM是以C++编写的架构编译器的框架系统,支持多后端和交叉编译,用于优化程序的编译时间、链接时间、运行时间和空闲时间。节点融合是一种简单有效的优化方法,其基本思想为将多个节点优化为一个高效的融合节点,减少诸如指令、寄存器、时钟周期和访存等开销,以达到减少程序运行时间,提升访存效率等目的。为了提升LLVM编译器的性能,文中在LLVM编译流程的中间表示阶段和DAG合并阶段、指令选择阶段提出了节点融合优化方法。在国产平台申威处理器下,以CLANG和FLANG为编译器前端,LLVM为编译器后端,基于SPEC CPU2006测试集进行了评估,实验结果表明,节点融合优化有利于提高编译器性能和减少程序运行时间,优化后最大加速比为1.59,平均加速比为1.13。

【文章页数】:7 页

【部分图文】:

图1LLVM结构

图1LLVM结构

LLVM是以面向对象编程语言C++编写的构架编译器的框架系统,是一种支持多后端的交叉编译器,可对程序的编译时间、链接时间、运行时间和空闲时间进行优化[7]。LLVM编译器基于传统的三段式设计,通过翻译成通用的中间表示语言作为中端优化器的输入,用于支持不同的前端语言和架构[8],其....


图2LLVMIR存在阶段

图2LLVMIR存在阶段

LLVMIR属于高级语言前端的输出,将作为中间代码优化器的输入。中间表示应该具有两个重要的性质:1)易于产生;2)易于翻译成目标平台代码[9]。易于产生可以保证不同的高级语言源程序易于转换为中间表示,也可以与其他中间表示相互转换。易于翻译成目标平台代码表明中间表示应具有高度抽象....


图3LLVMIR降级流程

图3LLVMIR降级流程

DAG是一种重要的数据结构,指的是一个无回路的有向图,在寻求最短路径、数据压缩等多种算法中均有使用。LLVM在对中间表示进行降级的过程中,会将LLVMIR转换成DAG的形式,然后对DAG图进行降级操作,其处理流程如图3所示。从图3中可以看到,在初始阶段LLVMIR是平台无关的....


图4节点融合

图4节点融合

节点融合指将多个节点融合为一个高效节点,节点融合优化方法在许多编译器中均有应用。比如,加速线性代数编译器(AcceleratedLinearAlgebra,XLA)利用节点融合优化将计算图中的多个算子融合为一个高效算子,以提高执行速度,改善内存使用,减少对自定义操作的依赖。节....



本文编号:3896511

资料下载
论文发表

本文链接:https://www.wllwen.com/kejilunwen/jisuanjikexuelunwen/3896511.html


Copyright(c)文论论文网All Rights Reserved | 网站地图

版权申明:资料由用户68d0f***提供,本站仅收录摘要或目录,作者需要删除请E-mail邮箱bigeng88@qq.com