Ginkgo -- A Math Library designed for Platform Portability
Terry Cojean, Yu-Hsiang "Mike" Tsai, Hartwig Anzt

TL;DR
Ginkgo is a platform-portable math library that separates algorithms from hardware-specific kernels, enabling effective porting and performance across diverse GPU architectures.
Contribution
The paper introduces Ginkgo's design that isolates algorithms from hardware kernels, facilitating portability and performance on multiple GPU platforms.
Findings
Successful implementation of backends for NVIDIA, AMD, and Intel GPUs.
Achieved competitive performance across different hardware architectures.
Demonstrated the effectiveness of separating algorithms from hardware kernels.
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…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
