首页 文章

求解Ax = B,其中A是openCL中的稀疏矩阵

提问于
浏览
3

有没有人知道一个库或openCL代码的例子,它将解决Ax = B,其中A是大而稀疏的?我不想计算A的倒数,因为它会非常大而且密集 . A矩阵稀疏度> 90%,只计算x可能远远少于内存和计算密集型 .

以下文章将帮助我了解CPU并且看起来是一个不错的选择,但我确实需要为此应用程序加速GPU .

C++ Memory Efficient Solution for Ax=b Linear Algebra System

3 回答

  • 3

    您正在寻找的是稀疏线性系统求解器 . 对于OpenCL,请查看ViennaCL:http://viennacl.sourceforge.net/它具有共轭梯度,稳定双共轭梯度,广义最小残差解算器 .

    但是,如果要有效地解决它,则需要多重网格方法 . 看看:http://www.paralution.com/

    PARALUTION是一个库,使您能够在多核/多核CPU和GPU设备上执行各种稀疏迭代求解器和预处理器 .

  • 2

    还有SpeedIT OpenCL

    此版本的SpeedIT利用OpenCL框架的强大功能,允许使用合适GPU的计算能力 . SpeedIT OpenCL库为稀疏线性方程组提供了一组加速求解器和函数,它们是:

    • 预处理共轭梯度求解器

    •预处理的稳定双共轭梯度求解器

    •加速稀疏矩阵 - 向量乘法

    •预处理器:

    ◦雅可比对角线

    ◦使用规范l1,l2和l∞进行行缩放

    ◦ILU0 - 不完整的LU,填充为0

  • 0

    您可以使用Sequalator求解AX = B形式的线性联立方程 . 您可以根据硬件要求使用OpenCL功能或多线程CPU功能 . 您还可以分析解决方案,以便在替换解决方案后了解方程式中的错误 .

相关问题