April 27, 2022 — Scientists working with the Exascale Computing Project (ECP) have developed Ginkgo, a sparse linear algebra library designed to increase software portability among heterogeneous supercomputing architectures. The portability problem is usually solved by applying a portability layer, which generates language-specific kernels through interfaces such as Kokkos, RAJA or OpenMP. The Ginkgo effort chooses a different strategy that combines performance optimization, portability, and developer productivity while leveraging native programming APIs for all hardware. The scientists also proved the adaptability of their approach to newer hardware by extending the initial scope to AMD and Intel ecosystems with little effort. Their work was published in the July 2022 issue of Parallel processing.
Using library design to optimize performance portability allows library developers to focus on functionality, low-level optimizations, and implementing mixed-precision techniques. This method also allows them to introduce new capabilities such as batch kernels for particular applications. Designing Ginkgo around platform portability enables applications to use high-performance sparse linear algebra functionality on all CPU and GPU architectures relevant to the ECP ecosystem. Scientists plan to add a Ginkgo backend optimized for ARM architectures and leverage Ginkgo’s portability design to implement functionality currently missing in the ECP math library ecosystem.
Quote: Terry Cojean, Yu Hsiang, Mike Tsai, Hartwig Anzt. “Ginkgo – A mathematical library designed for platform portability.” 2022. Parallel processing (July). Link: https://doi.org/10.1016/j.parco.2022.102902.