Expression Acceleration: Seamless Parallelization of Typed High-Level Languages

11/01/2022
by   Lars Hummelgren, et al.
0

Efficient parallelization of algorithms on general-purpose GPUs is today essential in many areas. However, it is a non-trivial task for software engineers to utilize GPUs to improve the performance of high-level programs in general. Although many domain-specific approaches are available for GPU acceleration, it is difficult to accelerate existing high-level programs without rewriting parts of the programs using low-level GPU code. In this paper, we propose a different approach, where expressions are marked for acceleration, and the compiler automatically infers which code needs to be accelerated. We call this approach expression acceleration. We design a compiler pipeline for the approach and show how to handle several challenges, including expression extraction, well-formedness, and compiling using multiple backends. The approach is designed and implemented within a statically-typed functional intermediate language and evaluated using three distinct non-trivial case studies.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
12/26/2021

Automated Code Optimization with E-Graphs

This thesis proposes an advanced, generic and high-level code rewriting ...
research
09/14/2017

Extending Functional Languages with High-Level Exception Handling

We extend functional languages with high-level exception handling. To be...
research
02/24/2020

Superoptimization of WebAssembly Bytecode

Motivated by the fast adoption of WebAssembly, we propose the first func...
research
11/13/2017

Domain-Specific Acceleration and Auto-Parallelization of Legacy Scientific Code in FORTRAN 77 using Source-to-Source Compilation

Massively parallel accelerators such as GPGPUs, manycores and FPGAs repr...
research
10/05/2020

Wasm/k: Delimited Continuations for WebAssembly

WebAssembly is designed to be an alternative to JavaScript that is a saf...
research
04/24/2018

Automatic generation of CUDA code performing tensor manipulations using C++ expression templates

We present a C++ library, TLoops, which uses a hierarchy of expression t...
research
12/01/2022

BaCO: A Fast and Portable Bayesian Compiler Optimization Framework

We introduce the Bayesian Compiler Optimization framework (BaCO), a gene...

Please sign up or login with your details

Forgot password? Click here to reset