Back to Search Start Over

Program Transformations and Sparse Computations in Performance Portability Libraries

Authors :
Lowenthal, David
Debray, Saumya
Condon, Laura
de Supinski, Bronis
Neth, Brandon
Lowenthal, David
Debray, Saumya
Condon, Laura
de Supinski, Bronis
Neth, Brandon
Publication Year :
2024

Abstract

High performance computing is an important tool in various domains, including climate modeling, drug discovery, and recently, generative AI\@.Application performance and developer productivity are important considerations when developing these codes. However, optimizing a program's performance for one machine can inadvertently harm its performance for another. With the ever-growing diversity of computing hardware, it has become more difficult to write code that performs well on multiple different machines, that is, to write code that is \textit{performance portable}. A similar phenomenon occurs with changes of input data and algorithm choice as well. Often, developers must maintain multiple versions of their application, one tuned for each system it will be used on. Performance portability libraries address this problem by separating the description of a computation from its optimization. Using these libraries, optimizations like tiling, parallelization, and data layout transformations can be quickly and portably applied. Unfortunately, they leave out important opportunities for optimizations that are applied across multiple loops. A programmer who wishes to improve data reuse through loop fusion or inter-loop layout changes cannot do so portably. Similarly, for codes using sparse data structures, the limited available abstractions require code to be format-dependent. Thus, the performance improvements of changing sparse formats come at the cost of rewriting entire kernels for the new format. This dissertation remedies these problems, introducing abstractions for cross-loop schedule and data transformations and format-independent abstractions for describing sparse computations into a representative performance portability library, RAJA\@. First, I introduce an interface for cross-kernel scheduling transformations through the RAJALC framework.The framework uses runtime symbolic evaluation to partially automate and ensure the correctness of the transformations. On ave

Details

Database :
OAIster
Publication Type :
Electronic Resource
Accession number :
edsoai.on1439659888
Document Type :
Electronic Resource