Author:
Chetioui Benjamin,Larnøy Marius Kleppe,Järvi Jaakko,Haveraaen Magne,Mullin Lenore
Abstract
The problem of producing portable high-performance computing (HPC) software that is cheap to develop and maintain is called the P3 (performance, portability, productivity) problem. Good solutions to the P3 problem have been achieved when the performance profiles of the target machines have been similar. The variety of HPC architectures is, however, large and can be expected to grow larger. Software for HPC therefore needs to be highly adaptable, and there is a pressing need to provide developers with tools to produce software that can target machines with vastly different profiles. Multi-dimensional array manipulation constitutes a core component of numerous numerical methods, such as finite difference solvers of Partial Differential Equations (PDEs). The efficiency of these computations is tightly connected to traversing and distributing array data in a hardware-friendly way. The Mathematics of Arrays (MoA) allows for formally reasoning about array computations and enables systematic transformations of array-based programs, e.g., to use data layouts that fit to a specific architecture. This paper presents a programming methodology aimed for tackling the P3 problem in domains that are well-explored using Magnolia, a language designed to embody generic programming. The Magnolia programmer can restrict the semantic properties of abstract generic types and operations by defining so-called axioms. Axioms can be used to produce tests for concrete implementations of specifications, for formal verification, or to perform semantics-preserving program transformations. We leverage Magnolia's semantic specification facilities to extend the Magnolia compiler with a term rewriting system. We implement MoA's transformation rules in Magnolia, and demonstrate through a case study on a finite difference solver of PDEs how our rewriting system allows exploring the space of possible optimizations.
Subject
Computer Science Applications,Computer Vision and Pattern Recognition,Human-Computer Interaction,Computer Science (miscellaneous)
Reference47 articles.
1. Think fast: A tensor streaming processor (TSP) for accelerating deep learning workloads;Abts;2020 ACM/IEEE 47th Annual International Symposium on Computer Architecture (ISCA),2020
2. Learning to optimize Halide with tree search and random programs;Adams;ACM Trans. Graph,2019
3. BaggeA. H.
Constructs & concepts: language design for flexibility and reliability2009
4. Testing with axioms in C++2011;Bagge;J. Object Technol,2011
5. Axiom-based transformations: optimisation and testing1733
BaggeA. H.
HaveraaenM.
VinjuJ. J.
JohnstoneA.
BudapestElsevierProceedings of the Eighth Workshop on Language Descriptions, Tools and Applications (LDTA 2008), Vol. 2382009
Cited by
1 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献