OpenMP Advisor
Computer Science, Stony Brook University, Stony Brook, NY, USA
arXiv:2301.03636 [cs.DC], (9 Jan 2023)
@misc{https://doi.org/10.48550/arxiv.2301.03636,
doi={10.48550/ARXIV.2301.03636},
url={https://arxiv.org/abs/2301.03636},
author={Mishra, Alok and Malik, Abid M. and Lin, Meifeng and Chapman, Barbara},
keywords={Distributed, Parallel, and Cluster Computing (cs.DC), FOS: Computer and information sciences, FOS: Computer and information sciences},
title={OpenMP Advisor},
publisher={arXiv},
year={2023},
copyright={Creative Commons Attribution 4.0 International}
}
With the increasing diversity of heterogeneous architecture in the HPC industry, porting a legacy application to run on different architectures is a tough challenge. In this paper, we present OpenMP Advisor, a first of its kind compiler tool that enables code offloading to a GPU with OpenMP using Machine Learning. Although the tool is currently limited to GPUs, it can be extended to support other OpenMP-capable devices. The tool has two modes: Training mode and Prediction mode. The training mode must be executed on the target hardware. It takes benchmark codes as input, generates and executes every variant of the code that could possibly run on the target device, and then collects data from all of the executed codes to train an ML-based cost model for use in prediction mode. However, in prediction mode the tool does not need any interaction with the target device. It accepts a C code as input and returns the best code variant that can be used to offload the code to the specified device. The tool can determine the kernels that are best suited for offloading by predicting their runtime using a machine learning-based cost model. The main objective behind this tool is to maintain the portability aspect of OpenMP. Using our Advisor, we were able to generate code of multiple applications for seven different architectures, and correctly predict the top ten best variants for each application on every architecture. Preliminary findings indicate that this tool can assist compiler developers and HPC application researchers in porting their legacy HPC codes to the upcoming heterogeneous computing environment.
January 15, 2023 by hgpu