Array program transformation with Loo.py by example: High-order finite elements

Andreas Klöckner, Lucas C. Wilcox, T. Warburton

Research output: Chapter in Book/Report/Conference proceedingConference contribution

Abstract

To concisely and effectively demonstrate the capabilities of our program transformation system Loo.py, we examine a transformation path from two real-world Fortran subroutines as found in a weather model to a single high-performance computational kernel suitable for execution on modern GPU hardware. Along the transformation path, we encounter kernel fusion, vectorization, prefetching, parallelization, and algorithmic changes achieved by mechanized conversion between imperative and functional/substitutionbased code, among a number more. We conclude with performance results that demonstrate the effects and support the effectiveness of the applied transformations. Copyright is held by the owner/author(s). Publication rights licensed to ACM.

Original languageEnglish (US)
Title of host publicationARRAY 2016 - Proceedings of the 3rd ACM SIGPLAN International Workshop on Libraries, Languages, and Compilers for Array Programming, Co-located with PLDI 2016
EditorsClemens Grelck, Martin Elsman, Andreas Klockner, David Padua
PublisherAssociation for Computing Machinery
Pages9-16
Number of pages8
ISBN (Electronic)9781450343848
DOIs
StatePublished - Jun 14 2016
Event3rd ACM SIGPLAN International Workshop on Libraries, Languages, and Compilers for Array Programming, ARRAY 2016 - Santa Barbara, United States
Duration: Jun 14 2016 → …

Publication series

NameARRAY 2016 - Proceedings of the 3rd ACM SIGPLAN International Workshop on Libraries, Languages, and Compilers for Array Programming, Co-located with PLDI 2016

Conference

Conference3rd ACM SIGPLAN International Workshop on Libraries, Languages, and Compilers for Array Programming, ARRAY 2016
Country/TerritoryUnited States
CitySanta Barbara
Period6/14/16 → …

Keywords

  • Code generation
  • Embedded language
  • GPU
  • High-level language
  • High-performance
  • OpenCL
  • Program transformation
  • Substitution rule

ASJC Scopus subject areas

  • Theoretical Computer Science
  • Computational Theory and Mathematics

Fingerprint

Dive into the research topics of 'Array program transformation with Loo.py by example: High-order finite elements'. Together they form a unique fingerprint.

Cite this