Automatic code optimization using graph neural networks

Available
The embargo period has ended, and this item is now available.

Date

2023-01

Editor(s)

Advisor

Öztürk, Özcan

Supervisor

Co-Advisor

Co-Supervisor

Instructor

BUIR Usage Stats
25
views
136
downloads

Series

Abstract

Compilers provide hundreds of optimization options, and choosing a good optimization sequence is a complex and time-consuming task. It requires extensive effort and expert input to select a good set of optimization flags. Therefore, there is a lot of research focused on finding optimizations automatically. While most of this research considers using static, spatial, or dynamic features, some of the latest research directly applied deep neural networks on source code. We combined the static features, spatial features, and deep neural networks by rep-resenting source code as graphs and trained Graph Neural Network (GNN) for automatically finding suitable optimization flags. We chose eight binary optimization flags and two benchmark suites, Polybench and cBench. We created a dataset of 12000 graphs using 256 optimization flag combinations on 47 benchmarks. We trained and tested our model using these benchmarks, and our results show that we can achieve a maximum of 48.6%speed-up compared to the case where all optimization flags are enabled.

Source Title

Publisher

Course

Other identifiers

Book Title

Degree Discipline

Computer Engineering

Degree Level

Master's

Degree Name

MS (Master of Science)

Citation

Published Version (Please cite this version)

Language

English

Type