如何使用稀疏加速预条件共轭梯度

  • 本文关键字:条件 何使用 加速 cuda
  • 更新时间 :
  • 英文 :


我正在做一个CFD项目,我正在使用新的CUDA 5库"cusparse"来解决线性方程组。我测试了示例代码"conjugateGradientPrecond"。结果表明,使用ILU的预处理梯度比没有预处理的共轭梯度需要更多时间才能得到最终答案。前一种算法确实需要较少的迭代,但在"cusparseScsrsv_solve"上花费了很长时间,因此整体时间更长。

这是我的问题,是否有任何其他预条件共轭梯度可以大大减少迭代,同时不包含任何耗时的函数,如"cusparseScsrsv_solve"?

ILU0/ILUT、IC0/ICT 等预处理技术需要在每次 CG 迭代时求解三角系统两次(预处理矩阵的上部和下部分解)。从本质上讲,求解三角系统是一个顺序问题,但对于稀疏矩阵的情况,可以执行一些分析阶段以找到一定程度的并行化(请参阅这篇文章)。通常,对于稀疏系统,无法提供最佳的预处理技术,但是简单的对角线(又名雅可比)预处理,施加的开销可以忽略不计,并为GPU实现提供了高水平的并行化。

最新更新