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

时间:2013-08-25 02:26:40

标签: opencl sparse-matrix

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

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

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

3 个答案:

答案 0 :(得分:3)

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

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

  

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

答案 1 :(得分:2)

还有SpeedIT OpenCL

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

  • 预处理共轭梯度求解器

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

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

    •预处理器:

    ◦雅可比对角线

    ◦使用规范l1,l2和l∞

    进行行缩放

    ◦ILU0 - 不完整LU,0填充

答案 2 :(得分:0)

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