• Bastian Hagedorn – High Performance Stencil Code Generation with Lift, 11.04.2018

    by  • March 13, 2018 • DSG Research Seminars: Logic and Programming Languages

    Title: High Performance Stencil Code Generation with Lift

    Speaker: Bastian Hagedorn, University of Münster

    13:15, EM G.61.

    Abstract

    Stencil computations are widely used from physical simulations to
    machine-learning. They are embarrassingly parallel and are commonly
    executed on modern parallel systems such as multi-core CPUs, Graphic
    Processing Units (GPUs). Although stencil computations have been
    extensively studied, optimizing them for increasingly diverse and
    ever-changing hardware remains challenging even for performance
    experts. Domain Specific Languages (DSLs) have raised the programming
    abstraction and offer good performance. However, this abstraction
    places the burden of optimizing stencil codes for the targeted
    architectures on DSL implementers who have to write full-fledged
    parallelizing compilers and optimizers for every architecture.

    Lift has recently emerged as a promising approach to achieve
    performance portability. It is based on a small set of reusable
    parallel primitives that DSL writers can build upon. Lift’s key
    novelty is in its encoding of optimizations as a system of extensible
    rewrite rules which are used to explore the optimizationSo far, Lift
    has focused on linear algebra operations and it it is an open question
    if this approach is applicable for other domains.

    In this talk, I demonstrate how complex multidimensional stencil codes
    and optimizations such as tiling are expressible using compositions of
    simple 1D Lift primitives. This allows us to build an elegant
    optimizing compiler using rewriting without requiring specialized
    domain- or architecture-specific solutions. By leveraging existing
    Lift primitives and optimizations, we only require the addition of two
    primitives and one rewrite rule to do so. Our results show that this
    approach outperforms existing compiler approaches and hand-tuned
    codes.

    About