Loo.py: Transformation-based code generation for GPUs and CPUs

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

Abstract

Today's highly heterogeneous computing landscape places a burden on programmers wanting to achieve high performance on a reasonably broad cross-section of machines. To do so, computations need to be expressed in many different but mathematically equivalent ways, with, in the worst case, one variant per target machine. Loo.py, a programming system embedded in Python, meets this challenge by defining a data model for array-style computations and a library of transformations that operate on this model. Offering transformations such as loop tiling, vectorization, storage management, unrolling, instruction-level parallelism, change of data layout, and many more, it provides a convenient way to capture, parametrize, and re-unify the growth among code variants. Optional, deep integration with numpy and PyOpenCL provides a convenient computing environment where the transition from prototype to high-performance implementation can occur in a gradual, machine-Assisted form..

Original languageEnglish (US)
Title of host publicationARRAY 2014 - Proceedings of the 2014 ACM SIGPLAN International Workshop on Libraries, Languages and Compilers for Array Programming, co-located with PLDI 2014
PublisherAssociation for Computing Machinery
Pages82-87
Number of pages6
ISBN (Electronic)9781450329378
DOIs
StatePublished - Jun 9 2014
Event1st ACM SIGPLAN International Workshop on Libraries, Languages and Compilers for Array Programming, ARRAY 2014 - Part of PLDI 2014 - Edinburgh, United Kingdom
Duration: Jun 12 2014Jun 13 2014

Publication series

NameProceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI)

Conference

Conference1st ACM SIGPLAN International Workshop on Libraries, Languages and Compilers for Array Programming, ARRAY 2014 - Part of PLDI 2014
Country/TerritoryUnited Kingdom
CityEdinburgh
Period6/12/146/13/14

Keywords

  • Code generation
  • Data layout
  • Embedded language
  • GPU
  • High-level language
  • High-performance
  • Vectorization

ASJC Scopus subject areas

  • Software

Fingerprint

Dive into the research topics of 'Loo.py: Transformation-based code generation for GPUs and CPUs'. Together they form a unique fingerprint.

Cite this