基于相关性分析的软件流水开销测试算法.DOCVIP

  • 6
  • 0
  • 约1.18万字
  • 约 7页
  • 2018-01-14 发布于天津
  • 举报

基于相关性分析的软件流水开销测试算法.DOC

基于相关性分析的软件流水开销测试算法

软件流水的开销模型和决策框架( 李文龙+, 林海波, 汤志忠 (清华大学 计算机科学与技术系,北京 100084) Cost Model and Decision Framework for Software Pipelining LI Wen-Long+, LIN Hai-Bo, TANG Zhi-Zhong (Department of Computer Science and Technology, Tsinghua University, Beijing 100084, China) + Corresponding author: Phn: +86-10 E-mail: liwenlong00@, Received 2003-02-25; Accepted 2003-10-16 Li WL, Lin HB, Tang ZZ. Cost model and decision framework for software pipelining. Journal of Software, 2004,15(7):1005~1011. /1000-9825/15/1005.htm Abstract: Software pipelining tries to improve the performance of a loop by overlapping the execution of several successive iterations. Modulo scheduling is a kind of widely used scheduling technique. The drawbacks of software pipelining, such as increased register pressure, would sometimes degrade the performance improvement that software pipelining gains. This kind of cost varies with the processor architecture, compiler optimization, and characteristics of programs. In this paper, a program characteristics oriented cost model for software pipelining is proposed, and the cost is evaluated in some aspects. A dependency based cost testing (DBCT) algorithm is developed to provide information for the compiler to decide whether to apply software pipelining or not. Experimental results show that DBCT algorithm boosts performance greatly. Key words: software pipelining; cost model; dependency analysis 摘 要: 软件流水是一种重要的指令调度技术,它通过重叠地执行不同的循环体来提高指令级并行性(instruction level parallelism,简称ILP).模调度是一类被广泛采用的软件流水调度算法.软件流水并非一种无损的优化方法,它具有一定的开销,比如延长了编译时间、增加了寄存器压力等.而且,受到体系结构、调度算法以及程序特性的限制,进行软件流水并不一定能达到理想的加速比,有时反而会引起性能下降.提出了一种面向程序特性的软件流水开销模型,对此模型下的软件流水开销进行了量化分析,并提出了一种基于相关性分析的软件流水开销测试算法(dependency based cost testing,简称DBCT),为软件流水决策提供了判断依据.实验结果表明,该算法收到了较好的效果. 关键词: 软件流水;开销模型;相关性分析 中图法分类号: TP338   文献标识码: A 软件流水[1]是一种重要的指令调度技术,它通过重叠地执行不同的循环体来提高指令级并行性(instruction level parallelism,简称ILP).模调度是一类软件流水调度算法,它对一个循环体中的指令进行调度,使得相继的循环体在以固定的启动间距(initiation interval,简称II)开始执行时,不发生资源冲突和相关冲突.模调度在20世纪80年代

文档评论(0)

1亿VIP精品文档

相关文档