Enabling compilers to automatically optimize code has been a longstanding goal for the compiler community. Efficiently solving this problem requires using precise cost models. These models predict whether applying a sequence of code transformations reduces the execution time of the program. Building an analytical cost model to do so is hard in modern x86 architectures due to the complexity of the microarchitecture. In this paper, we present a novel deep learning based cost model for automatic code optimization. This model was integrated in a search method and implemented in the Tiramisu compiler to select the best code transformations. The input of the proposed model is a set of simple features representing the unoptimized code and a sequence of code transformations. The model predicts the speedup expected when the code transformations are applied. Unlike previous models, the proposed one works on full programs and does not rely on any heavy feature engineering. The proposed model has only 16% of mean absolute percentage error in predicting speedups on full programs. The proposed model enables Tiramisu to automatically find code transformations that match or are better than state-of-the-art compilers without requiring the same level of heavy feature engineering required by those compilers.
翻译:使编译者自动优化代码是编译者界的一个长期目标。 有效解决这一问题需要使用精确的成本模型。 这些模型预测应用代码转换序列是否缩短了程序的执行时间。 建立分析成本模型在现代的x86结构中很难做到。 由于微工程的复杂性, 在现代的x86结构中, 建立分析成本模型很难做到这一点。 在本文中, 我们为自动代码优化提出了一个全新的深层次基于学习的成本模型。 这个模型被整合到一个搜索方法中, 并在Tiramisu编译器中实施, 以选择最好的代码转换。 拟议模型的输入是一组简单特征, 代表未优化的代码转换和代码转换序列。 模型预测在应用代码转换时预期的加速速度。 与以前的模型不同, 拟议的一个模型在全部程序上运行, 并不依赖任何重功能工程。 在预测全程序的速度时, 拟议的模型只有16 %的平均绝对百分比错误。 拟议的模型使Timisu能够自动找到匹配或优于状态的编译器的代码转换。