8 citations · 27 across the 12 of their papers we have counts for
12 papers
Descend: A Safe GPU Systems Programming Language
Bastian Köpcke, Sergei Gorlatch, Michel Steuwer
Graphics Processing Units (GPU) offer tremendous computational power by following a throughput oriented computing paradigm where many thousand computational units operate in parall…
Traced Types for Safe Strategic Rewriting
Rongxiao Fu, Ornela Dardha, Michel Steuwer
Strategy languages enable programmers to compose rewrite rules into strategies and control their application. This is useful in programming languages, e.g., for describing program…
Structural Subtyping as Parametric Polymorphism
Wenhao Tang, Daniel Hillerström, James McKinna +4
Structural subtyping and parametric polymorphism provide similar flexibility and reusability to programmers. For example, both features enable the programmer to provide a wider rec…
BaCO: A Fast and Portable Bayesian Compiler Optimization Framework
Erik Hellsten, Artur Souza, Johannes Lenfers +7
We introduce the Bayesian Compiler Optimization framework (BaCO), a general purpose autotuner for modern compilers targeting CPUs, GPUs, and FPGAs. BaCO provides the flexibility ne…
Primrose: Selecting Container Data Types by Their Properties
Xueying Qin, Liam O'Connor, Michel Steuwer
Context: Container data types are ubiquitous in computer programming, enabling developers to efficiently store and process collections of data with an easy-to-use programming inter…
RISE & Shine: Language-Oriented Compiler Design
Michel Steuwer, Thomas Koehler, Bastian Köpcke +1
The trend towards specialization of software and hardware - fuelled by the end of Moore's law and the still accelerating interest in domain-specific computing, such as machine lear…
Sketch-Guided Equality Saturation: Scaling Equality Saturation to Complex Optimizations of Functional Programs
Thomas Koehler, Phil Trinder, Michel Steuwer
Generating high-performance code for diverse hardware and application domains is challenging. Functional array programming languages with patterns like map and reduce have been suc…
Row-Polymorphic Types for Strategic Rewriting
Rongxiao Fu, Xueying Qin, Ornela Dardha +1
We present a type system for strategy languages that express program transformations as compositions of rewrite rules. Our row-polymorphic type system assists compiler engineers to…
A Language for Describing Optimization Strategies
Bastian Hagedorn, Johannes Lenfers, Thomas Koehler +2
Optimizing programs to run efficiently on modern parallel hardware is hard but crucial for many applications. The predominantly used imperative languages - like C or OpenCL - force…
Strategy Preserving Compilation for Parallel Functional Code
Robert Atkey, Michel Steuwer, Sam Lindley +1
Graphics Processing Units (GPUs) and other parallel devices are widely available and have the potential for accelerating a wide class of algorithms. However, expert programming ski…
Autotuning OpenCL Workgroup Size for Stencil Patterns
Chris Cummins, Pavlos Petoumenos, Michel Steuwer +1
Selecting an appropriate workgroup size is critical for the performance of OpenCL kernels, and requires knowledge of the underlying hardware, the data being operated on, and the im…
Patterns and Rewrite Rules for Systematic Code Generation (From High-Level Functional Patterns to High-Performance OpenCL Code)
Michel Steuwer, Christian Fensch, Christophe Dubach
Computing systems have become increasingly complex with the emergence of heterogeneous hardware combining multicore CPUs and GPUs. These parallel systems exhibit tremendous computa…