I need to access the tridiagonal solving routines gtsv2StridedBatch and gtsvInterleavedBatch from the cuSPARSE library in a Python/C program. Is there a way to access/link to the cuSPARSE library using PyCUDA?
For background, I’m hoping to port a Python (with inner loops in C) application to leverage GPU computing. The most intensive part of the computation is solving tridiagonal systems, so I was excited to see that the standard cuSPARSE library includes routines for this. But I’m struggling to see how to access cuSPARSE using any of the existing Python to CUDA interfaces. For PyCUDA, I couldn’t find a similar example in the documentation. Pyculib has bindings for an older version of cuSPARSE, but it’s not maintained and I couldn’t get it installed easily: https://pyculib.readthedocs.io/en/latest/cusparse.html. CuPy seems to support only a very small fraction of cuSPARSE: https://docs-cupy.chainer.org/en/stable/reference/sparse.html .
I’ll need to write my own kernels for part of the project, so PyCUDA seems ideal. Any advice you can offer would be very appreciated.
Associate Professor and Associate Department Head
Department of Molecular and Cellular Biology, University of Arizona
phone: (520) 626-0569, office: LSS 325, web: http://gutengroup.mcb.arizona.edu