我目前求解 Ax=b 方程两次。
其中 A 是稀疏矩阵 NxN
x, b 是大小为 N 的向量。(我有 b1 和 b2)
我想通过使用 cusparse 函数一次性解决这两个问题来减少时间。
所以我想从我拥有的 2 个 b 构建一个大小为 Nx2 的矩阵,并用 A 求解它,就像方程 AX=B 可以做的那样。
- 理论上是对的吗?
- 我应该使用哪个 cusparse 函数?
请注意我正在使用稀疏矩阵而不是密集矩阵。
谢谢!
我目前求解 Ax=b 方程两次。
其中 A 是稀疏矩阵 NxN
x, b 是大小为 N 的向量。(我有 b1 和 b2)
我想通过使用 cusparse 函数一次性解决这两个问题来减少时间。
所以我想从我拥有的 2 个 b 构建一个大小为 Nx2 的矩阵,并用 A 求解它,就像方程 AX=B 可以做的那样。
请注意我正在使用稀疏矩阵而不是密集矩阵。
谢谢!
回答您的问题
是的,可以通过这种方式解决多个 RHS 向量的适当条件良好的稀疏问题。
除非您的 LHS 稀疏矩阵是三对角或三角形,否则您不能直接使用 cusparse。
cusolver 7.5 包含几个用于分解稀疏矩阵的“低级”例程,这意味着您可以分解一次并使用不同的 RHS 多次重复使用分解,例如可以在 LU 分解之后调用cusolverSpXcsrluSolve()以使用相同的预计算分解来求解根据您的需要多次。(注意,我最初假设 cusolve 中有一个稀疏的 getrs 函数,但似乎没有。几年前我确实与 NVIDIA 讨论过这个用例,并认为他们已经添加了它,很抱歉造成混淆那里)。