25 cusolverDnHandle_t handle =
30 Blob dinfo(
sizeof(
int), device);
32 OPEN3D_CUSOLVER_CHECK(
33 gesvd_cuda_buffersize<scalar_t>(handle, m, n, &len),
34 "gesvd_buffersize failed in SVDCUDA");
36 Blob workspace(len *
sizeof(scalar_t), device);
38 OPEN3D_CUSOLVER_CHECK_WITH_DINFO(
40 handle,
'A',
'A', m, n,
41 const_cast<scalar_t*
>(
42 static_cast<const scalar_t*
>(A_data)),
43 m,
static_cast<scalar_t*
>(S_data),
44 static_cast<scalar_t*
>(U_data), m,
45 static_cast<scalar_t*
>(VT_data), n,
46 static_cast<scalar_t*
>(workspace.
GetDataPtr()), len,
47 static_cast<scalar_t*
>(superb_data),
49 "gesvd failed in SVDCUDA",
50 static_cast<int*
>(dinfo.
GetDataPtr()), device);
#define DISPATCH_LINALG_DTYPE_TO_TEMPLATE(DTYPE,...)
ccGuiPythonInstance * GetInstance() noexcept
void SVDCUDA(const void *A_data, void *U_data, void *S_data, void *VT_data, void *superb_data, int64_t m, int64_t n, Dtype dtype, const Device &device)
Generic file read and write utility for python interface.