【发布时间】:2016-11-07 02:32:54
【问题描述】:
我是 cuda 的初学者。我想尝试使用 cusolver API 为行主矩阵求解 svd。但我对矩阵 A 的前导维度感到困惑。
我有一个 100x10 的行主矩阵。(例如,我在 10 维空间中有 100 个数据。) 作为 CUDA 文档,cusolverDnDgesvd 函数需要 lda 参数(矩阵 A 的前导维度)。我的矩阵是行优先的,所以我给了 cusolver gesvd 函数 10。但功能不起作用。此函数表明我的 lda 参数错误。 好的,我给了 cusolver gesvd 函数 100。函数正在运行,但函数 (U, S, Vt) 的结果似乎是错误的。我的意思是,我无法从 USVt 中得到矩阵 A。
据我所知,cuSolver API 假设所有矩阵都是列优先的。 如果我将矩阵更改为列优先,则 m 低于 n(10x100)。但是 gesvd 函数只适用于 m >= n。
是的,我遇到了麻烦。我该如何解决这个问题?
【问题讨论】: