2

我目前求解 Ax=b 方程两次。

其中 A 是稀疏矩阵 NxN

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

我想通过使用 cusparse 函数一次性解决这两个问题来减少时间。

所以我想从我拥有的 2 个 b 构建一个大小为 Nx2 的矩阵,并用 A 求解它,就像方程 AX=B 可以做的那样。

  1. 理论上是对的吗?
  2. 我应该使用哪个 cusparse 函数?

请注意我正在使用稀疏矩阵而不是密集矩阵。

谢谢!

4

1 回答 1

1

回答您的问题

  1. 是的,可以通过这种方式解决多个 RHS 向量的适当条件良好的稀疏问题。

  2. 除非您的 LHS 稀疏矩阵是三对角或三角形,否则您不能直接使用 cusparse。

    cusolver 7.5 包含几个用于分解稀疏矩阵的“低级”例程,这意味着您可以分解一次并使用不同的 RHS 多次重复使用分解,例如可以在 LU 分解之后调用cusolverSpXcsrluSolve()以使用相同的预计算分解来求解根据您的需要多次。(注意,我最初假设 cusolve 中有一个稀疏的 getrs 函数,但似乎没有。几年前我确实与 NVIDIA 讨论过这个用例,并认为他们已经添加了它,很抱歉造成混淆那里)。

于 2016-03-02T17:36:51.973 回答