Cuda 解AX=B的线性方程
我现在解了两次Ax=b方程 其中A是稀疏矩阵NxN x、 b是大小为N的向量(我有b1和b2) 我想通过使用cusparse函数一次性解决这两个问题来减少时间 所以我想从我的2b中建立一个大小为Nx2的矩阵,用A来解它,就像方程AX=b所能做的那样Cuda 解AX=B的线性方程,cuda,linear-algebra,sparse-matrix,cusp-library,cusolver,Cuda,Linear Algebra,Sparse Matrix,Cusp Library,Cusolver,我现在解了两次Ax=b方程 其中A是稀疏矩阵NxN x、 b是大小为N的向量(我有b1和b2) 我想通过使用cusparse函数一次性解决这两个问题来减少时间 所以我想从我的2b中建立一个大小为Nx2的矩阵,用A来解它,就像方程AX=b所能做的那样 理论上正确吗 我应该使用哪个cusparse函数 请注意,我使用的是稀疏矩阵,而不是密集矩阵 谢谢 来回答您的问题 是的,用这种方法可以解决多个RHS向量的适当条件良好的稀疏问题 除非您的LHS稀疏矩阵是三对角矩阵或三角形矩阵,否则您不能直接使用c
谢谢 来回答您的问题
cusolver可能有用。看一看,batch在这里没有帮助,因为它指的是a矩阵而不是b向量。无论如何,谢谢你,只是为了确保我理解正确-我需要将我的左手作为三角形(或三对角)来使用cusparse。对的另外,getrs用于密集矩阵-它如何适合这里?谢谢@Rotem.O:是的,cusparse实际上没有一个解算器,只是稀疏的blas类操作。所以有上下三角矩阵或三对角矩阵的反向替换例程,但仅此而已。您可以使用另一个包(如cusolver)进行因式分解(即Cholesky或LU,具体取决于您的矩阵)。getrs引用是一个错误。我陷入了文档的错误部分,寻找一个函数来解决多个RHS问题。我会在有机会时更新答案当前,
cusolverSpXcsrluSolve()
仅提供CPU路径。作为一种替代方案,我们可以随时使用该解决方案。