求解AX = B的线性方程

时间:2016-03-02 15:09:26

标签: cuda linear-algebra sparse-matrix cusp-library cusolver

我目前解决Ax = b等式两次。

其中A是稀疏矩阵NxN

x,b是大小为N的向量。(我有b1和b2)

我想通过使用cusparse函数一次性解决它们来减少时间。

所以我应该从我所拥有的2 b,一个大小为Nx2的矩阵构建,并用A来解决它,因为AX = B可以做到。

  1. 理论上是对的吗?
  2. 我应该使用哪种cusparse函数?
  3. 请注意我使用稀疏矩阵而不是密集矩阵。

    谢谢!

2 个答案:

答案 0 :(得分:1)

回答你的问题

  1. 是的,有可能以这种方式解决多个RHS向量的适当条件稀疏问题。
  2. 除非你的LHS稀疏矩阵是三角形或三角形,否则你不能直接使用cusparse。

    cusolver 7.5包含几个用于分解稀疏矩阵的“低级”例程,这意味着您可以分解一次并使用不同的RHS重复使用因子分解,例如在LU分解后可以调用cusolverSpXcsrluSolve()来解决使用根据需要进行相同的预计算因子分解。 (注意我最初假设在cusolve中有类似稀疏的getrs函数,而且看起来没有。我当然和NVIDIA谈过几年前的用例并且认为他们已经添加了它,抱歉混淆了有)。

答案 1 :(得分:0)

cuSPARSE支持3级blas操作SpMM(稀疏矩阵多向量乘法)此函数允许您同时将稀疏矩阵乘以几个密集向量。