使用伪时间表进行标量替换的低成本寄存器压力预测

Yin Ma, S. Carr, Rong Ge
{"title":"使用伪时间表进行标量替换的低成本寄存器压力预测","authors":"Yin Ma, S. Carr, Rong Ge","doi":"10.1109/ICPP.2004.1327911","DOIUrl":null,"url":null,"abstract":"Scalar replacement is an effective optimization for removing memory accesses. However, exposing all possible array reuse with scalars may cause a significant increase in register pressure, resulting in register spilling and performance degradation. We present a low cost method to predict the register pressure of a loop before applying scalar replacement on high-level source code, called pseudo-schedule register prediction (PRP), that takes into account the effects of both software pipelining and register allocation. PRP attempts to eliminate the possibility of degradation from scalar replacement due to register spilling while providing opportunities for a good speedup. PRP uses three approximation algorithms: one for constructing a data dependence graph, one for computing the recurrence constraints of a software pipelined loop, and one for building a pseudo-schedule. Our experiments show that PRP predicts the floating-point register pressure within 2 registers and the integer register pressure within 2.7 registers on average with a time complexity of O(n/sup 2/) in practice. PRP achieves similar performance to the best previous approach, having O(n/sup 3/) complexity, with less than one-fourth of the compilation time on our test suite.","PeriodicalId":106240,"journal":{"name":"International Conference on Parallel Processing, 2004. ICPP 2004.","volume":"64 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2004-08-15","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"2","resultStr":"{\"title\":\"Low-cost register-pressure prediction for scalar replacement using pseudo-schedules\",\"authors\":\"Yin Ma, S. Carr, Rong Ge\",\"doi\":\"10.1109/ICPP.2004.1327911\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"Scalar replacement is an effective optimization for removing memory accesses. However, exposing all possible array reuse with scalars may cause a significant increase in register pressure, resulting in register spilling and performance degradation. We present a low cost method to predict the register pressure of a loop before applying scalar replacement on high-level source code, called pseudo-schedule register prediction (PRP), that takes into account the effects of both software pipelining and register allocation. PRP attempts to eliminate the possibility of degradation from scalar replacement due to register spilling while providing opportunities for a good speedup. PRP uses three approximation algorithms: one for constructing a data dependence graph, one for computing the recurrence constraints of a software pipelined loop, and one for building a pseudo-schedule. Our experiments show that PRP predicts the floating-point register pressure within 2 registers and the integer register pressure within 2.7 registers on average with a time complexity of O(n/sup 2/) in practice. PRP achieves similar performance to the best previous approach, having O(n/sup 3/) complexity, with less than one-fourth of the compilation time on our test suite.\",\"PeriodicalId\":106240,\"journal\":{\"name\":\"International Conference on Parallel Processing, 2004. ICPP 2004.\",\"volume\":\"64 1\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2004-08-15\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"2\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"International Conference on Parallel Processing, 2004. ICPP 2004.\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1109/ICPP.2004.1327911\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"International Conference on Parallel Processing, 2004. ICPP 2004.","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/ICPP.2004.1327911","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 2

摘要

标量替换是移除内存访问的有效优化。然而,使用标量暴露所有可能的数组重用可能会导致寄存器压力的显著增加,从而导致寄存器溢出和性能下降。我们提出了一种低成本的方法,在对高级源代码应用标量替换之前预测循环的寄存器压力,称为伪调度寄存器预测(PRP),该方法考虑了软件流水线和寄存器分配的影响。PRP试图消除由于寄存器溢出而导致标量替换退化的可能性,同时为良好的加速提供机会。PRP使用三种近似算法:一种用于构造数据依赖图,一种用于计算软件流水线循环的递归约束,另一种用于构建伪调度。实验表明,PRP在实际中平均预测2个寄存器内的浮点寄存器压力和2.7个寄存器内的整数寄存器压力,时间复杂度为0 (n/sup 2/)。PRP实现了与以前最好的方法相似的性能,具有0 (n/sup / 3)复杂性,在我们的测试套件上的编译时间不到四分之一。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
Low-cost register-pressure prediction for scalar replacement using pseudo-schedules
Scalar replacement is an effective optimization for removing memory accesses. However, exposing all possible array reuse with scalars may cause a significant increase in register pressure, resulting in register spilling and performance degradation. We present a low cost method to predict the register pressure of a loop before applying scalar replacement on high-level source code, called pseudo-schedule register prediction (PRP), that takes into account the effects of both software pipelining and register allocation. PRP attempts to eliminate the possibility of degradation from scalar replacement due to register spilling while providing opportunities for a good speedup. PRP uses three approximation algorithms: one for constructing a data dependence graph, one for computing the recurrence constraints of a software pipelined loop, and one for building a pseudo-schedule. Our experiments show that PRP predicts the floating-point register pressure within 2 registers and the integer register pressure within 2.7 registers on average with a time complexity of O(n/sup 2/) in practice. PRP achieves similar performance to the best previous approach, having O(n/sup 3/) complexity, with less than one-fourth of the compilation time on our test suite.
求助全文
通过发布文献求助,成功后即可免费获取论文全文。 去求助
来源期刊
自引率
0.00%
发文量
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术官方微信