我需要用 cuda 计算矩阵( double 组)的行列式,我想使用 LU 分解来执行此操作。
我在 cusolverSp.h
中找不到设备函数,但只有主机函数 cusolverSpDcsrlsvluHost
。
我查看 cuda 7.0 和 cuda 7.5。
我不明白为什么我找不到它,因为它在官方文档中有描述:http://docs.nvidia.com/cuda/cusolver/index.html#api
设备上的 Cholesky 分解等其他功能有效。
是否实现? 如果是,我在哪里可以找到它?
感谢您的帮助!
最佳答案
查看您指出的文档,我看到:
Remark 5: only CPU (Host) path is provided
阅读页面上的一些内容可以得出以下结论:
Next, cuSolverSP provides a new set of sparse routines based on a sparse QR factorization. Not all matrices have a good sparsity pattern for parallelism in factorization, so the cuSolverSP library also provides a CPU path to handle those sequential-like matrices. For those matrices with abundant parallelism, the GPU path will deliver higher performance. The library is designed to be called from C and C++.
结合这两句话,我猜设备功能不值得提供......不过这只是我的解释。
关于c++ - 我在使用 cuSolver 的设备上找不到 LU 分解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32242677/