Pattern-Based Autotuning of OpenMP Loops Using Graph Neural Networks
DescriptionFrequently occurring code and design patterns in scientific applications are often used for parallelizing serial code. But, identifying these patterns is difficult. We propose using Graph Neural Networks for modeling code flow graphs to identify patterns in such parallel code. Additionally, identifying the best runtime parameters for parallel code is also challenging. We propose a pattern-guided deep learning based tuning approach, to identify the best runtime parameters for OpenMP loops. We validate our hypothesis on 20 different applications from Polybench, and STREAM benchmark suites. Our approach identifies patterns with an accuracy of 91%. We validate the usefulness of using patterns for auto-tuning, on tuning the number of threads, scheduling policies and chunk size on a single-socket system, and the thread count and affinity on a multi-socket machine. We achieve geometric mean speedups of 1.1X and 4.7X respectively over default OpenMP configurations, compared to brute-force speedups of 1.27X and 4.93X respectively.
Event Type
TimeMonday, 14 November 20222:35pm - 2:50pm CST
Registration Categories
Session Formats
Back To Top Button