面向GPU的域特定多级IR重写

2020-07-13 03:42:55

下载PDF摘要:传统编译器在单个通用中间表示(IR)上操作。这些IR通常是低级的,接近机器指令。因此,依赖领域特定信息的优化要么是不可能的,要么需要复杂的分析来恢复丢失的信息。相反,多级重写实例化方言层次结构(IR),逐层降低程序,并在最合适的级别执行代码转换。我们展示了这种方法在天气和气候领域的有效性。特别地,我们开发了一个原型编译器,并基于一套新引入的设计原则设计了特定于模板和GPU的方言。我们发现,在LLVM的可扩展MLIR编译器基础设施之上实现的两个特定领域的优化(500行代码)足以超越最先进的解决方案。本质上,多级重写预示着专用编译器时代的到来,这些编译器由在共享基础设施之上实现的特定于域和特定于目标的方言组成。