Please help me find the CUDA version of this function!

Hello everyone! I’m Adrian, I’m trying to make a C program parallel using both OpenACC (to make things parallel) and CUDA (for some functions).

The functions I have to change are these two: dgemm_ and dgesvd_.

I’ve found the CUDA version of dgemm_, which is cublasDgemm; but I can’t find the CUDA version of dgesvd_.

Can you help me? Thank you in advance!! ^^

The cusolver library has an equivalent.

https://docs.nvidia.com/cuda/cusolver/index.html#svd_examples

1 Like

Hi Robert! First of all, thank you for the amazingly fast reply!

I see multiple functions that may be the one that I’m looking for, like cusolverDnDDgesv, cusolverDnDDgesv_bufferSize, cusolverDnDgesvdj_bufferSize, cusolverDnDgesvdj, or cusolverDnDgesvdjBatched.

Here is an example of a call to the function I’m trying to replace:

dgesvd_(“S”, “S”, &bands, &bands, svdMat, &bands, D, U, &bands, VT, &bands, work, &lwork, &info);

Could you tell me which is one is the function that works for me? Thank you a lot!

The one that seemed closest to me is cusolverDnDgesvd, and that is the one that is used in the sample code I directly linked to.

1 Like

I see, thank you very much Robert!!

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.