English

Ginkgo -- A Math Library designed for Platform Portability

Distributed, Parallel, and Cluster Computing 2020-11-19 v1 Mathematical Software Performance Software Engineering

Abstract

The first associations to software sustainability might be the existence of a continuous integration (CI) framework; the existence of a testing framework composed of unit tests, integration tests, and end-to-end tests; and also the existence of software documentation. However, when asking what is a common deathblow for a scientific software product, it is often the lack of platform and performance portability. Against this background, we designed the Ginkgo library with the primary focus on platform portability and the ability to not only port to new hardware architectures, but also achieve good performance. In this paper we present the Ginkgo library design, radically separating algorithms from hardware-specific kernels forming the distinct hardware executors, and report our experience when adding execution backends for NVIDIA, AMD, and Intel GPUs. We also comment on the different levels of performance portability, and the performance we achieved on the distinct hardware backends.

Keywords

Cite

@article{arxiv.2011.08879,
  title  = {Ginkgo -- A Math Library designed for Platform Portability},
  author = {Terry Cojean and Yu-Hsiang "Mike" Tsai and Hartwig Anzt},
  journal= {arXiv preprint arXiv:2011.08879},
  year   = {2020}
}

Comments

Submitted to Parallel Computing Journal (PARCO)

R2 v1 2026-06-23T20:19:35.540Z