lebedov / scikit-cuda

Python interface to GPU-powered libraries
http://scikit-cuda.readthedocs.org/
Other
986 stars 179 forks source link

Wrap tridiagonal methods from cuSPARSE #297

Open RyanGutenkunst opened 4 years ago

RyanGutenkunst commented 4 years ago

I've wrapped the methods for solving batch tridiagonal systems in cuSPARSE.

Unit tests are in tests/test_cusparse. The code has been put into production use on a Windows box at home and two Linux clusters, so it seems relatively robust.

My software dadi https://bitbucket.org/gutenkunstlab/dadi now (optionally) depends on this, so it would very much appreciate getting it merged into the distribution.

I could use feedback on the following.

  1. I tried creating the appropriate file in docs to get the methods I implemented documented, but I'm getting a bunch of errors when I try to run Sphinx, and the docs aren't getting fully created. I'm not experience with Sphinx. Can anyone help with debugging that?

  2. I removed the incomplete previously existing methods from cusparse.py . I don't know if that's preferred to keep the source clean, or whether I should put them back to preserve that incomplete work.

RyanGutenkunst commented 4 years ago

Bumping for visibility. Is @lebedov still actively maintaining this repository?

RyanGutenkunst commented 4 years ago

Hello @lebedov, I'm about to submit a manuscript about our software using the newly wrapped library functions. (You can see the current draft here: https://www.overleaf.com/read/mrdcvpvxpshc .) I can move this support into my software itself, but I think it would be better for users if it lived in skcuda. Is there any chance of getting this pulled into the main skcuda distribution? Thanks, Ryan

wingkitlee0 commented 4 years ago

@RyanGutenkunst Do you mind giving a list of functions you added?

RyanGutenkunst commented 4 years ago

The important ones I wrapped are cusparseSgtsv2StridedBatch, cusparseDgtsv2StridedBatch, cusparseSgtsvInterleavedBatch, and cusparseDgtsvInterleavedBatch. I also wrapped the corresponding functions for calculating buffer sizes.

wingkitlee0 commented 4 years ago

Thanks! I helped you send Lev a message.. I previously contributed something to this repo but don't have permission to accept PR. Hope this do not block you anything.

RyanGutenkunst commented 4 years ago

Thanks Kit! I was able to pull the code into my own software, so it's not a big hold up for me now.