中文

基于 NVIDIA PTX 代码的洗牌合成符号模拟器

分布式、并行与集群计算 2023-01-30 v1

摘要

各类应用通过自动化工具利用 GPU,这些工具试图自动发掘 GPU 并行架构的可用性能。基于指令的编程模型(如 OpenACC)是一种仅需对代码循环添加代码注解即可轻松实现并行计算的方法。然而,此类抽象模型常阻止程序员进行额外的底层优化以利用 GPU 的先进架构特性,因为实际生成的运算对应用开发者是隐藏的。本文描述并实现了一种新颖的灵活优化技术,通过在编译流水线末端插入代码模拟器阶段来运作。我们的工具通过符号分析并代入动态信息来模拟生成的代码,从而允许应用进一步的底层代码优化。我们将该工具实现为支持 CUDA 与 OpenACC 指令作为编译流水线前端,由此实现了此前 OpenACC 无法进行的底层 GPU 优化。我们通过自动化即使是高级 GPU 程序员也难以使用的 warp 级洗牌指令来展示工具的能力。最后,我们用基准测试套件和复杂应用代码评估该工具,并提供跨四代 GPU 架构的洗牌指令收益详细研究。

关键词

引用

@article{arxiv.2301.11389,
  title  = {A Symbolic Emulator for Shuffle Synthesis on the NVIDIA PTX Code},
  author = {Kazuaki Matsumura and Simon Garcia De Gonzalo and Antonio J. Peña},
  journal= {arXiv preprint arXiv:2301.11389},
  year   = {2023}
}

备注

To appear in: Proceedings of the 32nd ACM SIGPLAN International Conference on Compiler Construction (CC '23)