网站大量收购独家精品文档,联系QQ:2885784924

IA64体系结构中的软件流水优化研究.pdf

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
李文龙等:IA-64体系结构中的软件流水优化 IA.64体系结构中的软件流水优化 李文龙①汤志忠 (清华大学计算机科学与技术系 北京100084) 摘要软件流水通过重叠地执行不同的循环体来提高指令级并行性,它具有一定的开 销,比如延长了编译时间、增加了寄存器压力等。而且,受到体系结构、调度算法以及程序 特性的限制,进行软件流水并不一定能达到理想的加速比,有时反而会引起性能下降。本 文提出了一种基于程序特性和资源限制的软件流水决策启发式,为软件流水的应用提供 Research 了决策支持。在ORC(OpenCompiler)编译器上实现了该启发式,并对SPECfp2000 和NAS Benchmarks进行了测试。实验结果显示,对某些程序而言,整体性能提高了27%。 平均性能SPECfp2000和NAS分别有2%和5.4%的提高。 关键词软件流水,模调度,开销,列表调度 高循环程序的性能。软件流水主要存在以下几方面 0 引言 的开销: (1)寄存器压力开销:由于软件流水并行执行 软件流水…(SWP,Software Pipelining)是一种重 来自多个循环体中的指令,因此会产生较多的活跃 要的指令调度技术,它通过重叠地执行不同的循环 变量,相应的寄存器数量也会增加。当一个变量的 体来提高指令级并行性。模调度他’3]是一类软件流 生存期超过II时,为了避免后面新循环体中的操作 水调度算法,它对一个循环体中的指令进行调度,使 实例破坏前面循环体所定义的值,需要为该变量的 In. 得相继的循环体以固定的启动间距(II,Initiation 不同操作实例分配不同的寄存器,使得在软件流水 terval)依次启动。软件流水的结果由3部分组成:装 的循环中一个变量占用了多个寄存器,增大了寄存 入、核心和排空。 器的需求。当软件流水的重叠程度越高时,寄存器 软件流水并非一种无损的优化方法,它具有~ 压力就越大。当软件流水所需的寄存器超过了物理 定的开销,当流水引入的开销超过其所带来的性能 贡献时,应用软件流水反而会带来负面效果,即程序 作,即把寄存器中的值写入内存或从内存取出。这 性能下降。本文提出了基于程序特性和资源限制的 就引入了额外的LOAD/咖RE操作,有时会抵消一 Heuristicfor 软件流水决策启发式(DHSWP,Decision 些软件流水所带来的加速比。寄存器压力过高还会 Software Pipelining),为软件流水的应用提供了决策 对程序的其他部分产生间接的影响,即虽然软件流 支持。以SPECfll2000和NASbenchmarks为例,对

文档评论(0)

带头大哥 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档