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

A Klöckner - Proceedings of ACM SIGPLAN international workshop …, 2014 - dl.acm.org
Proceedings of ACM SIGPLAN international workshop on libraries, languages …, 2014dl.acm.org
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 …
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.
ACM Digital Library
Showing the best result for this search. See all results