BaCO: A Fast and Portable Bayesian Compiler Optimization Framework

12/01/2022
by   Erik Hellsten, et al.
0

We introduce the Bayesian Compiler Optimization framework (BaCO), a general purpose autotuner for modern compilers targeting CPUs, GPUs, and FPGAs. BaCO provides the flexibility needed to handle the requirements of modern autotuning tasks. Particularly, it deals with permutation, ordered, and continuous parameter types along with both known and unknown parameter constraints. To reason about these parameter types and efficiently deliver high-quality code, BaCO uses Bayesian optimiza tion algorithms specialized towards the autotuning domain. We demonstrate BaCO's effectiveness on three modern compiler systems: TACO, RISE ELEVATE, and HPVM2FPGA for CPUs, GPUs, and FPGAs respectively. For these domains, BaCO outperforms current state-of-the-art autotuners by delivering on average 1.36x-1.56x faster code with a tiny search budget, and BaCO is able to reach expert-level performance 2.9x-3.9x faster.

READ FULL TEXT
research
02/13/2023

Revet: A Language and Compiler for Dataflow Threads

Spatial dataflow architectures such as reconfigurable dataflow accelerat...
research
12/11/2010

On the Implementation of GNU Prolog

GNU Prolog is a general-purpose implementation of the Prolog language, w...
research
07/05/2016

TTC: A Tensor Transposition Compiler for Multiple Architectures

We consider the problem of transposing tensors of arbitrary dimension an...
research
06/27/2012

Utilizing Static Analysis and Code Generation to Accelerate Neural Networks

As datasets continue to grow, neural network (NN) applications are becom...
research
11/01/2022

Expression Acceleration: Seamless Parallelization of Typed High-Level Languages

Efficient parallelization of algorithms on general-purpose GPUs is today...
research
11/06/2020

Amalgamating Different JIT Compilations in a Meta-tracing JIT Compiler Framework

Many modern virtual machines, such as JVMs, .NET Framework, and V8, empl...
research
06/22/2023

ACC Saturator: Automatic Kernel Optimization for Directive-Based GPU Code

Automatic code optimization is a complex process that typically involves...

Please sign up or login with your details

Forgot password? Click here to reset