You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Hi,
pull request #11878 brought an implementation of the SVD on the GPU. But at the moment, only real values are supported.
The current status when applying the SVD (M=USV') on a complex matrix M:
The python interface declares U,V as complex, S as real
The C++ kernel definition declares both U,V and S as complex
(This simplified the CPU implementation using Eigen)
The python code then immediately casts S to the reals
The GPU solver (cuSolver) would, however, output the singular values directly as reals
This leads to the following questions / ideas / suggestions
(credit goes also to @rmlarsen for discussion this the first time with me)
Change the kernel definition: Add a new kernel (V2 suffix) that returns S as a real type
Implement the complex support on GPUs
Adopt the CPU code to also use the new kernel definition
OR
Keep both definitions and let the python wrapper to choose between the two versions based on the target device (CPU vs GPU)
...?
What do you think?
The text was updated successfully, but these errors were encountered:
Automatically closing due to lack of recent activity. Please update the issue when new information becomes available, and we will reopen the issue. Thanks!
Hi,
pull request #11878 brought an implementation of the SVD on the GPU. But at the moment, only real values are supported.
The current status when applying the SVD (M=USV') on a complex matrix M:
(This simplified the CPU implementation using Eigen)
This leads to the following questions / ideas / suggestions
(credit goes also to @rmlarsen for discussion this the first time with me)
OR
Keep both definitions and let the python wrapper to choose between the two versions based on the target device (CPU vs GPU)
What do you think?
The text was updated successfully, but these errors were encountered: