DeepAI AI Chat
Log In Sign Up

Expression Acceleration: Seamless Parallelization of Typed High-Level Languages

by   Lars Hummelgren, et al.
KTH Royal Institute of Technology

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.


page 1

page 2

page 3

page 4


Automated Code Optimization with E-Graphs

This thesis proposes an advanced, generic and high-level code rewriting ...

Extending Functional Languages with High-Level Exception Handling

We extend functional languages with high-level exception handling. To be...

Superoptimization of WebAssembly Bytecode

Motivated by the fast adoption of WebAssembly, we propose the first func...

Wasm/k: Delimited Continuations for WebAssembly

WebAssembly is designed to be an alternative to JavaScript that is a saf...

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...

BaCO: A Fast and Portable Bayesian Compiler Optimization Framework

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