摘要
软件流水是一种重要的指令调度技术,它通过重叠地执行不同的循环体来提高指令级并行性(instructionlevelparallelism,简称ILP).模调度是一类被广泛采用的软件流水调度算法.软件流水并非一种无损的优化方法,它具有一定的开销,比如延长了编译时间、增加了寄存器压力等.而且,受到体系结构、调度算法以及程序特性的限制,进行软件流水并不一定能达到理想的加速比,有时反而会引起性能下降.提出了一种面向程序特性的软件流水开销模型,对此模型下的软件流水开销进行了量化分析,并提出了一种基于相关性分析的软件流水开销测试算法(dependencybasedcosttesting,简称DBCT),为软件流水决策提供了判断依据.实验结果表明,该算法收到了较好的效果.
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. 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.
出处
《软件学报》
EI
CSCD
北大核心
2004年第7期1005-1011,共7页
Journal of Software
基金
国家自然科学基金~~
关键词
软件流水
开销模型
相关性分析
Algorithms
Codes (symbols)
Computer software
Mathematical models
Scheduling
Testing