基于国产GPGPU非一致控制流的分支优化

2025-04-11 60 0.84M 0

  摘要:目前,通用图形处理单元(GPGPU)因其强大的并行处理能力而被广泛应用于各种计算任务。然而,采用单指令多线程(SIMT)并行执行模型的GPGPU在程序执行时,核函数会产生非一致控制流行为,从而引发线程束分化,降低加速器的整体性能。针对核函数执行过程中因非一致控制流引起的性能下降问题,提出一种特定场景下的分支编译优化方法——连续分支合并(MergeCFG)。在编译器中间代码优化阶段,通过控制流分析,识别出控制流图中含相同条件跳转的连续分支结构,以确定潜在的优化机会。接着,基于指令分析,评估优化的可行性,判断是否存在能够减少分支跳转的优化空间。最后,运用基本块复制与合并技术,对控制流结构进行优化,以减少程序中的分支跳转操作,从而简化控制流,提高程序执行效率。为验证方法的可行性,在国产GPGPU上使用7个合适的基准测试套件进行实验。结果显示,该方法有效减少了程序中的分支跳转操作,优化后的测试用例在性能上获得了显著提升。所测用例的平均加速比提高了2%至12%,个别测试用例的性能提升超过5倍。

  文章目录

  0 引言

  1 相关背景

  1.1 国产GPGPU

  1.2 LLVM

  1.3 控制流分歧

  2 MergeCFG

  2.1 连续分支CFG

  2.2 合并思想

  2.3 指令use-def处理

  3 在编译器中的实现

  3.1连续分支区域识别

  3.2 指令分析

  3.3 连续分支合并

  4性能测试与分析

  4.1 实验平台及程序

  4.2 实验结果及分析

  4.3 不同块大小下的性能对比

  4.4 codesize分析

  4.5 编译耗时分析

  5 结束语



您还没有登录,请登录后查看详情



 
举报收藏 0打赏 0评论 0
本类推荐
下载排行
网站首页  |  关于我们  |  联系方式  |  用户协议  |  隐私政策  |  版权声明  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  蜀ICP备2024057410号-1