0
votes

In my CUDA code I am using cusparse<t>gtsv() function (more precisely, cusparseZgtsv and cusparseZgtsvStridedBatch ones).

In the documentaion it is said, that this function solves the equation A*x=alpha *B. My question is - what is alpha? I didn't find it as an input parameter. I have no idea how to specify it. Is it always equals to 1?

1
I believe the documentation is wrong. gtsv usually solved AX=B, with b containing one or more RHStalonmies
I agree with @talonmies (although I don't have confirmation yet) and have filed an internal documentation bug at NVIDIA to get the docs updated.Robert Crovella
@RobertCrovella thanks for filing. Another thing is that the values dl(0) and du(m-1) (the first value of low diagonal and the last of upper diagonal) are not used by the solver. In the documentation, it is said that these values should be set to zero. In reality, these values can be arbitrary. It is worth to submit as wellMikhail Genkin
You might observe that they don't matter in the current implementation, but it's possible that another variant or a future implementation may expect or require these to be zero. That strikes me as a different issue than what you are reporting here. I wouldn't consider that a defect. In any event, you can file bugs on your own at developer.nvidia.com It's entirely possible for an API to require things that don't seem necessary or sensible to you. Failure to follow the API requirements means that your code may be broken.Robert Crovella

1 Answers

1
votes

I performed some testing (solved some random systems of equations where tridiagonal matrices were always diagonally dominant and checked my solution using direct matrix by vector multiplication). It looks like in the current version alpha = 1 always, so one can just ignore it. I suspect that it will be added as an input parameter in future releases.