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