Recent research has shown that dynamic zeros in shader programs of gaming applications can be effectively leveraged with a profile-guided, code-versioning transform. This transform duplicates code, specializes one path assuming certain key program operands, called versioning variables, are zero, and leaves the other path unspecialized. Dynamically, depending on the versioning variable's value, either the specialized fast path or the default slow path will execute. Prior work applied this transform manually and showed promising gains on gaming applications. In this paper, we present AZP, an automatic compiler approach to perform the above code-versioning transform. Our framework automatically determines which versioning variables or combinations of them are profitable, and determines the code region to duplicate and specialize (called the versioning scope). AZP takes operand zero value probabilities as input and it then uses classical techniques such as constant folding and dead-code elimination to determine the most profitable versioning variables and their versioning scopes. This information is then used to affect the final transform in a straightforward manner. We demonstrate that AZP is able to achieve an average speedup of 16.4% for targeted shader programs, amounting to an average frame-rate speedup of 3.5% across a collection of modern gaming applications on an NVIDIA GeForce RTX 2080 GPU GPU.


翻译:最近的研究表明, 游戏应用程序阴影程序中的动态零可以通过配置制导、 代码转换变换来有效地加以利用。 此变换重复代码, 专门设定一条路径, 假设某些关键程序变体, 称为版本变量, 是零, 使其他路径没有专门化。 动态地, 取决于变体的版本值, 要么是专用快速路径, 要么是默认缓慢路径 。 之前的工作是手工应用这种变换, 并显示了在游戏应用程序中取得的有希望的收益。 在本文中, 我们展示了 AZP, 一种执行上述代码转换变换的自动编译器方法。 我们的框架自动决定了这些变异体或组合的哪个版本有利可图, 并确定要复制和专门化的代码区域( 称为版本范围 ) 。 AZP 将操作零值概率作为输入, 然后使用经典技术, 如固定的折叠和死码消除等, 来决定最有利可图的变换变量及其版本范围。 此信息被用来以直截地影响最终变换。 我们证明, AZP 能够实现16. AS- ASVA ASVA 平均速度的G. AS. AS. AS. 0A.

0
下载
关闭预览

相关内容

Linux导论,Introduction to Linux,96页ppt
专知会员服务
78+阅读 · 2020年7月26日
知识图谱推理,50页ppt,Salesforce首席科学家Richard Socher
专知会员服务
106+阅读 · 2020年6月10日
专知会员服务
60+阅读 · 2020年3月19日
机器学习入门的经验与建议
专知会员服务
92+阅读 · 2019年10月10日
【SIGGRAPH2019】TensorFlow 2.0深度学习计算机图形学应用
专知会员服务
39+阅读 · 2019年10月9日
最新BERT相关论文清单,BERT-related Papers
专知会员服务
52+阅读 · 2019年9月29日
CCF推荐 | 国际会议信息10条
Call4Papers
8+阅读 · 2019年5月27日
CCF推荐 | 国际会议信息8条
Call4Papers
9+阅读 · 2019年5月23日
Transferring Knowledge across Learning Processes
CreateAMind
27+阅读 · 2019年5月18日
Call for Participation: Shared Tasks in NLPCC 2019
中国计算机学会
5+阅读 · 2019年3月22日
Unsupervised Learning via Meta-Learning
CreateAMind
42+阅读 · 2019年1月3日
A Technical Overview of AI & ML in 2018 & Trends for 2019
待字闺中
16+阅读 · 2018年12月24日
分布式TensorFlow入门指南
机器学习研究会
4+阅读 · 2017年11月28日
【推荐】自然语言处理(NLP)指南
机器学习研究会
35+阅读 · 2017年11月17日
已删除
将门创投
9+阅读 · 2017年10月17日
【推荐】用Tensorflow理解LSTM
机器学习研究会
36+阅读 · 2017年9月11日
Arxiv
0+阅读 · 2021年1月9日
Arxiv
0+阅读 · 2021年1月7日
VIP会员
相关VIP内容
Linux导论,Introduction to Linux,96页ppt
专知会员服务
78+阅读 · 2020年7月26日
知识图谱推理,50页ppt,Salesforce首席科学家Richard Socher
专知会员服务
106+阅读 · 2020年6月10日
专知会员服务
60+阅读 · 2020年3月19日
机器学习入门的经验与建议
专知会员服务
92+阅读 · 2019年10月10日
【SIGGRAPH2019】TensorFlow 2.0深度学习计算机图形学应用
专知会员服务
39+阅读 · 2019年10月9日
最新BERT相关论文清单,BERT-related Papers
专知会员服务
52+阅读 · 2019年9月29日
相关资讯
CCF推荐 | 国际会议信息10条
Call4Papers
8+阅读 · 2019年5月27日
CCF推荐 | 国际会议信息8条
Call4Papers
9+阅读 · 2019年5月23日
Transferring Knowledge across Learning Processes
CreateAMind
27+阅读 · 2019年5月18日
Call for Participation: Shared Tasks in NLPCC 2019
中国计算机学会
5+阅读 · 2019年3月22日
Unsupervised Learning via Meta-Learning
CreateAMind
42+阅读 · 2019年1月3日
A Technical Overview of AI & ML in 2018 & Trends for 2019
待字闺中
16+阅读 · 2018年12月24日
分布式TensorFlow入门指南
机器学习研究会
4+阅读 · 2017年11月28日
【推荐】自然语言处理(NLP)指南
机器学习研究会
35+阅读 · 2017年11月17日
已删除
将门创投
9+阅读 · 2017年10月17日
【推荐】用Tensorflow理解LSTM
机器学习研究会
36+阅读 · 2017年9月11日
Top
微信扫码咨询专知VIP会员