Scientists working with the Exascale Computing Project (ECP) have developed Ginkgo, a sparse linear algebra library designed to increase portability of software among heterogeneous supercomputing architectures. The portability problem is usually addressed by applying a portability layer, which generates language-specific kernels through interfaces like Kokkos, RAJA or OpenMP. The Ginkgo effort choses 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 low effort. Their work was published in the July 2022 issue of Parallel Computing.
Using library design to optimize performance portability enables library developers to focus on functionality, low-level optimizations, and mixed-precision techniques implementation. This method also allows them to introduce new capacities such as batched kernels for particular applications. Designing Ginkgo around platform portability allows applications to use high-performance sparse linear algebra functionality on all CPU and GPU architectures relevant to the ECP ecosystem. The scientists plan to add a Ginkgo backend optimized for ARM architectures and to leverage Ginkgo’s portability design to implement functionality currently missing in the ECP math library ecosystem.
Terry Cojean, Yu Hsiang “Mike” Tsai, Hartwig Anzt. “Ginkgo—A Math Library Designed for Platform Portability.” 2022. Parallel Computing (July).