当前位置: X-MOL 学术arXiv.cs.AR › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
AZP: Automatic Specialization for Zero Values in Gaming Applications
arXiv - CS - Hardware Architecture Pub Date : 2020-11-20 , DOI: arxiv-2011.10550
Mark W. Stephenson, Ram Rangan

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将操作数零值概率作为输入,然后使用经典技术(例如恒定折叠和消除死代码)来确定最有利可图的版本变量及其版本范围。然后,此信息将以直接的方式用于影响最终转换。我们证明,AZP能够针对目标着色器程序实现平均16.4%的平均速度提升,相当于在NVIDIA GeForce RTX 2080 GPU GPU上的一系列现代游戏应用程序的平均帧速提升3.5%。AZP将操作数零值概率作为输入,然后使用经典技术(例如恒定折叠和消除死代码)来确定最有利可图的版本变量及其版本范围。然后,此信息将以直接的方式用于影响最终转换。我们证明AZP能够针对目标着色器程序实现平均16.4%的平均速度提升,相当于在NVIDIA GeForce RTX 2080 GPU GPU上的一系列现代游戏应用程序的平均帧速提升3.5%。AZP将操作数零值概率作为输入,然后使用经典技术(例如恒定折叠和消除死代码)来确定最有利可图的版本变量及其版本范围。然后,此信息将以直接的方式用于影响最终转换。我们证明,AZP能够针对目标着色器程序实现平均16.4%的平均速度提升,相当于在NVIDIA GeForce RTX 2080 GPU GPU上的一系列现代游戏应用程序的平均帧速提升3.5%。
更新日期:2020-11-23
down
wechat
bug