pyGinkgo: A Sparse Linear Algebra Operator Framework for Python
Abstract
Sparse linear algebra is a cornerstone of many scientific computing and machine learning applications. Python has become a popular choice for these applications due to its simplicity and ease of use. Yet high performance sparse kernels in Python remain limited in functionality, especially on modern CPU and GPU architectures. We present pyGinkgo, a lightweight and Pythonic interface to the Ginkgo library, offering high-performance sparse linear algebra support with platform portability across CUDA, HIP, and OpenMP backends. pyGinkgo bridges the gap between high-performance C++ backends and Python usability by exposing Ginkgo's capabilities via Pybind11 and a NumPy and PyTorch compatible interface. We benchmark pyGinkgo's performance against state-of-the-art Python libraries including SciPy, CuPy, PyTorch, and TensorFlow. Results across hardware from different vendors demonstrate that pyGinkgo consistently outperforms existing Python tools in both sparse matrix vector (SpMV) product and iterative solver performance, while maintaining performance parity with native Ginkgo C++ code. Our work positions pyGinkgo as a compelling backend for sparse machine learning models and scientific workflows.
Keywords
Cite
@article{arxiv.2510.08230,
title = {pyGinkgo: A Sparse Linear Algebra Operator Framework for Python},
author = {Keshvi Tuteja and Gregor Olenik and Roman Mishchuk and Yu-Hsiang Tsai and Markus Götz and Achim Streit and Hartwig Anzt and Charlotte Debus},
journal= {arXiv preprint arXiv:2510.08230},
year = {2025}
}
Comments
Accepted for publication at the 54th International Conference on Parallel Processing (ICPP'25)