Robust Practical Binary Optimization at Run-Time using LLVM

Alexis Engelke, Martin Schulz

Research output: Chapter in Book/Report/Conference proceedingConference contributionpeer-review

4 Scopus citations

Abstract

In High Performance Computing (HPC) the performance of applications is paramount, which is has led to a wide body of work on optimizing compilers. However, compilers alone are naturally limited in their potential, as they cannot exploit run-Time information to specialize generated code. For this reason, run-Time components to perform such specializations are gaining traction. In particular, application or use-case driven specializations have a high potential for optimizations, as they can benefit from explicit guidance from the application or the user, which allows for targeted changes incorporating specific knowledge. Because full compilers and sources are usually unavailable during computation, specializations have to be done at machine code level. However, existing libraries for binary specialization face structural limitations of separating optimization and code generation, in addition to numerous implementation gaps. In this paper, we describe BinOpt, a novel and robust library for performing application-driven binary optimization and specialization using LLVM. A machine code function is lifted directly to LLVM-IR, optimized in LLVM while making use of application-specified information, used to generate a new specialization for a function, and integrated back to the original code. We apply this technique to existing optimized code and show that significant performance improvements can be observed with only a small optimization time overhead.

Original languageEnglish
Title of host publicationProceedings of LLVM-HPC2020 and HiPar 2020 - 6th Workshop on the LLVM Compiler Infrastructure in HPC and Workshop on Hierarchical Parallelism for Exascale Computing, Held in conjunction with SC 2020
Subtitle of host publicationThe International Conference for High Performance Computing, Networking, Storage and Analysis
PublisherInstitute of Electrical and Electronics Engineers Inc.
Pages56-64
Number of pages9
ISBN (Electronic)9780738110424
DOIs
StatePublished - Nov 2020
Event6th Workshop on the LLVM Compiler Infrastructure in HPC and Workshop on Hierarchical Parallelism for Exascale Computing, LLVM-HPC2020 and HiPar 2020 - Virtual, Atlanta, United States
Duration: 12 Nov 2020 → …

Publication series

NameProceedings of LLVM-HPC2020 and HiPar 2020 - 6th Workshop on the LLVM Compiler Infrastructure in HPC and Workshop on Hierarchical Parallelism for Exascale Computing, Held in conjunction with SC 2020: The International Conference for High Performance Computing, Networking, Storage and Analysis

Conference

Conference6th Workshop on the LLVM Compiler Infrastructure in HPC and Workshop on Hierarchical Parallelism for Exascale Computing, LLVM-HPC2020 and HiPar 2020
Country/TerritoryUnited States
CityVirtual, Atlanta
Period12/11/20 → …

Keywords

  • Binary Translation
  • Dynamic Code Generation
  • High Performance Computing
  • LLVM
  • Run-Time Optimization

Fingerprint

Dive into the research topics of 'Robust Practical Binary Optimization at Run-Time using LLVM'. Together they form a unique fingerprint.

Cite this