Array Programming via Multi-Dimensional Homomorphisms
The approach of “Multi-Dimensional Homomorphisms (MDH)” offers a formalism for array programming: data-parallel computations on arrays, such as linear algebra routines and stencil computations, are expressed via higher-order functions (a.k.a. “patterns” or “skeletons” in programming terminology), and optimized program code is fully automatically generated from these functions in the MDH approach, e.g., in CUDA for GPU or OpenCL for CPUs.
In this extended abstract, we present the three major contributions of the MDH approach: 1) a "high-level program representation for expressing data-parallel array computations in a convenient, hardware- and optimization-agnostic manner, based on formally defined higher-order functions; 2)a “low-level program representation” to formally reason about optimizations and from which we can straightforwardly generate executable program code (e.g., in CUDA or OpenCL); 3) a “fully automatic process” for lowering a program expressed in MDH’s high-level program representation to an hardware-optimized MDH program in its low-level representation, based on auto-tuning. Our preliminary experimental results confirm that MDH achieves higher performance on GPU and CPU than well-performing state-of-practice approaches, including hand-optimized vendor libraries from NVIDIA and Intel.
Sun 18 JunDisplayed time zone: Eastern Time (US & Canada) change
09:00 - 11:00
|Performance vs. Correctness When Writing Low-Level HPC/Tensor/Array Code|
Gilbert Bernstein University of Washington, Seattle
|Accurate Array Program Mapping with Neural Program Translation and Synthesis (cancelled)|
|Array Programming via Multi-Dimensional Homomorphisms|
Ari Rasch University of Muenster, Richard Schulze University of Muenster, Sergei Gorlatch University of MuensterFile Attached