计算机工程与应用 ›› 2017, Vol. 53 ›› Issue (17): 65-69.DOI: 10.3778/j.issn.1002-8331.1703-0442

• 理论与研发 • 上一篇    下一篇

基于依赖环问题的改进软流水框架

张仁高1,郑启龙1,王向前2,韩东科1   

  1. 1.中国科学技术大学 计算科学与技术学院,合肥 230027
    2.中国电子科技公司 第38研究所,合肥 230088
  • 出版日期:2017-09-01 发布日期:2017-09-12

Improved software pipelining framework of dependency circle

ZHANG Rengao1, ZHENG Qilong1, WANG Xiangqian2, HAN Dongke1   

  1. 1. School of Computer Science and Technology, University of Science and Technology of China,Hefei 230027, China
    2. No.38 Research Institute, China Electronics Group Corporation, Hefei 230088, China
  • Online:2017-09-01 Published:2017-09-12

摘要: 软件流水是编译后端优化中针对循环的调度技术,在软件流水优化过程中,依赖环是影响软件流水优化的重要因素。针对循环体中依赖环导致软件流水失败的问题,通过对循环中的依赖环进行分析处理,基于传统的模调度框架,提出了改进的软件流水优化算法,对于造成依赖环的寄存器引入多个分量,实现了对含有归约变量循环的流水。通过典型的算法测试,实验结果表明,该框架能够使得更多类型的循环流水成功,对于循环核心性能提升至少58%。

关键词: 软件流水, 依赖环, 模调度, 循环, 优化

Abstract: Software Pipelining(SWP) is the scheduling technology for the loop in the compiling back-end optimization. In the process of SWP optimization, the dependency circle is an important factor to affect the optimization of SWP. Based on the traditional modulo scheduling, a new SWP optimization algorithm is proposed to deal with the problem of SWP failure caused by the dependency circle. It does analysis of the dependency circle for loop, splits the reduced register into several counterpart duplicates and makes the loop with reduced variable pipelining favorably. Through the classical algorithm testing, experimental results show that the framework can make more loops pipelining successfully and improve performance at 58% least.

Key words: Software Pipelining(SWP), dependency circle, modulo scheduling, loop, optimization