This repo integrates existing sparse linear solvers into JAX. I currently feature a single GPU-based linear solver (with plans to implement more):
For those that need sparsity pattern detection for jax jacobians/hessians I also offer this package.
I built this repo as part of a project to GPU-batch solve many IPOPT optimizations in jaxipm.
I expose most features of cuDSS (as of 0.8.0) to JAX with zero-copy arrays and full FFI jit/vmap integration including custom batching functionality to expose more information than cuDSS currently supports.
This currently supports:
We have also added a new Lineax-based API, which is now the recommended method of interfacing with spineax (example).
Requirements:
pip:
pip install spineax
uv:
uv pip install spineax
Using a uv-managed project instead? Just
uv add spineax.
@article{viljoen2026scaling,
title={Scaling Nonlinear Optimization: Many Problems One GPU},
author={Viljoen, John and Haffner, Johanna and Tomizuka, Masayoshi and Mehr, Negar},
journal={arXiv preprint arXiv:2606.26341},
year={2026}
}
Python
65.3%
C++
29.6%
CMake
5.1%
This repo integrates existing sparse linear solvers into JAX. I currently feature a single GPU-based linear solver (with plans to implement more):
For those that need sparsity pattern detection for jax jacobians/hessians I also offer this package.
I built this repo as part of a project to GPU-batch solve many IPOPT optimizations in jaxipm.
I expose most features of cuDSS (as of 0.8.0) to JAX with zero-copy arrays and full FFI jit/vmap integration including custom batching functionality to expose more information than cuDSS currently supports.
This currently supports:
We have also added a new Lineax-based API, which is now the recommended method of interfacing with spineax (example).
Requirements:
pip:
pip install spineax
uv:
uv pip install spineax
Using a uv-managed project instead? Just
uv add spineax.
@article{viljoen2026scaling,
title={Scaling Nonlinear Optimization: Many Problems One GPU},
author={Viljoen, John and Haffner, Johanna and Tomizuka, Masayoshi and Mehr, Negar},
journal={arXiv preprint arXiv:2606.26341},
year={2026}
}
Python
65.3%
C++
29.6%
CMake
5.1%