计算机科学>编程语言
职务: 通过高级并行结构实现高性能GPU到CPU的编译和优化
摘要: 虽然并行性仍然是性能的主要来源,但架构实现和编程模型会随着每一代新硬件的出现而改变,通常会导致代价高昂的应用程序重新设计。大多数用于性能可移植性的工具都需要手动且代价高昂的将应用程序移植到另一个编程模型。 我们提出了一种替代方法,可以基于Polygeist/MLIR将一个编程模型(CUDA)中编写的程序自动转换为另一个(CPU线程)。 我们的方法包括并行结构的表示,它允许传统的编译器转换透明地应用,无需修改,并支持特定于并行的优化。 我们通过传输和优化多核CPU的CUDA Rodinia基准测试套件来评估我们的框架,与手写OpenMP代码相比,我们实现了76%的geomean加速。 此外,我们还展示了PyTorch的CUDA内核如何在只支持CPU的超级计算机Fugaku上高效运行和扩展,而无需用户干预。 我们的PyTorch兼容层使用了已传输的CUDA PyToch内核,其性能比PyTorch CPU本机后端高2.7$\倍。