Cusparse: Difference between gtsv2 and gtsv

I was using cusparse gtsv for CFD application. I found that in CUDA 10.1 the gtsv would be deprecated in the future version. I would like to know that the new gtsv2 will be faster and better than gtsv?
Thank you very much.

I suggest reading the entire documentation section carefully. Some motivation for the shift from gtsv to gtsv2 is given there:


This function requires significant amount of temporary extra storage (min(m,8) ×(3+n)×sizeof())
The routine does not support asynchronous execution
The routine does not support CUDA graph capture


The routine requires no extra storage
The routine supports asynchronous execution
The routine supports CUDA graph capture

Hi Robert,
Thanks for your help.
I have updated my CUDA toolkit and PGI compiler from CUDA 9.2 and 18.4 to CUDA 10.1 and PGI 19.5, respectively. Then I compiled one of my fortran codes as follows
" pgf90 -c -Mcuda=cuda10.1 -Mcudalib=cusparse etauv_solver_gpu.f90 ",
However, the compiler said ‘cusparsesgtsv2stridedbatch, has not been explicitly declared (etauv_solver_gpu.f90)’. Though, using cusparseSgtsvStridedbatch was still OK. It seems that PGI fortran compiler has not recognized the CUDA 10.1 cusparse toolbox.
Do I need some C-Fortran binding codes to handle this?
Thank you.

Ye Yuan, UDel

Hi, Robert,
It seems that I need to ask the above question at PGI 's forum.

It seems like PGI 19.3 added support for CUDA 10.1:

You might want to ask PGI-specific questions on the PGI forum:

It may not be implemented by PGI yet:

Hi Robert,
It seems that gtsv2 have not been included.
Thanks for your information