Data-efficient Performance Modeling via Pre-training
This addresses the data efficiency problem for developers and researchers in compiler optimization, offering an incremental improvement over existing methods.
The paper tackles the problem of expensive labeled data requirements for building deep learning performance models in automatic code optimization by introducing a self-supervised pre-training scheme with autoencoders. The result is a 5x reduction in data needs, achieving a MAPE of 22.44% with 3.6 million data points compared to 20.72% with 18 million.
Performance models are essential for automatic code optimization, enabling compilers to predict the effects of code transformations on performance and guide search for optimal transformations. Building state-of-the-art performance models with deep learning, however, requires vast labeled datasets of random programs -- an expensive and time-consuming process, stretching over months. This paper introduces a self-supervised pre-training scheme with autoencoders to reduce the need for labeled data. By pre-training on a large dataset of random programs, the autoencoder learns representations of code and transformations, which are then used to embed programs for the performance model. Implemented in the Tiramisu autoscheduler, our approach improves model accuracy with less data. For example, to achieve a MAPE of 20.72%, the original model requires 18 million data points, whereas our method achieves a similar MAPE of 22.44% with only 3.6 million data points, reducing data requirements by 5x.