Augmenting Compiler Optimisations through Source-to-Source Injection of Runtime Information-aware Transformations



Siso Godia, Sergi
(2023) Augmenting Compiler Optimisations through Source-to-Source Injection of Runtime Information-aware Transformations. PhD thesis, University of Liverpool.

[img] Text
201176321_Jun2023.pdf - Author Accepted Manuscript
Access to this file is embargoed until 1 February 2025.

Download (1MB)

Abstract

Traditionally, high-performance scientific computing applications have relied on ahead-of-time compilation of statically typed programming languages such as C, C++, and FORTRAN to generate efficient machine code. Ahead-of-time compilers can perform complex dependency analysis to enable optimisations that take advantage of modern processor capabilities, such as vectorisation. HPC system vendors typically provide their own ahead-of-time proprietary compilers that are specifically tuned for their architectures. Alternatively, dynamic compilation can also take advantage of information available only at runtime to improve the quality of compiler analysis. However, they are typically designed to avoid costly optimisations in order to provide the low recompilation overhead needed for general-purpose computing, and are tightly implemented inside specific compiler toolchains, often making them incompatible with vendor proprietary compilers. This thesis explores the suitability of ahead-of-time code injection of dynamic optimisation runtimes that are able to leverage proprietary vendor tuned compilers with aggressive optimisations. To do this, the thesis presents a new compiler benchmarking approach that comprehensively evaluates the benefit of releasing contextual information at compile-time and introduces two source-to-source code injection frameworks for dynamic optimisations. One for C and C++ loops that provide average vectorisation speed-ups of x1.25 for the Intel compiler and x1.47 for the Nvidia compiler in the presented benchmarking suite. And another that leverages the OpenCL runtime compilation model to delay the evaluation of runtime invariants and achieves x1.15 speedup in selected kernels while also improving the portability of the target application.

Item Type: Thesis (PhD)
Divisions: Faculty of Science and Engineering > School of Electrical Engineering, Electronics and Computer Science
Depositing User: Symplectic Admin
Date Deposited: 24 Aug 2023 15:24
Last Modified: 24 Aug 2023 15:24
DOI: 10.17638/03171199
Supervisors:
  • Thiyagalingam, Jeyan
  • Coenen, Frans
URI: https://livrepository.liverpool.ac.uk/id/eprint/3171199