有谁知道一个库或openCL代码示例,它可以解决Ax = B,其中A大而稀疏?我不想计算 A 的倒数,因为它会非常大且密集。A 矩阵 > 90% 稀疏,仅计算 x 可能需要更少的内存和计算密集型。
以下帖子将对 CPU 有所帮助,看起来是一个不错的选择,但我确实需要为该应用程序加速 GPU。
有谁知道一个库或openCL代码示例,它可以解决Ax = B,其中A大而稀疏?我不想计算 A 的倒数,因为它会非常大且密集。A 矩阵 > 90% 稀疏,仅计算 x 可能需要更少的内存和计算密集型。
以下帖子将对 CPU 有所帮助,看起来是一个不错的选择,但我确实需要为该应用程序加速 GPU。
您正在寻找的是稀疏线性系统求解器。对于 OpenCL,请查看 ViennaCL: http: //viennacl.sourceforge.net/ 它具有共轭梯度、稳定双共轭梯度、广义最小残差求解器。
但是,如果您想有效地解决它,您需要一种多重网格方法。看看: http: //www.paralution.com/
PARALUTION 是一个库,使您能够在多核/多核 CPU 和 GPU 设备上执行各种稀疏迭代求解器和预处理器。
此版本的 SpeedIT 利用 OpenCL 框架的强大功能,允许使用合适 GPU 的计算能力。SpeedIT OpenCL 库为稀疏线性方程组提供了一组加速求解器和函数,这些方程组是:
预处理共轭梯度求解器
• 预条件稳定双共轭梯度求解器
• 加速稀疏矩阵向量乘法
• 预处理器:
◦ 雅可比对角线
◦ 具有范数 l1、l2 和 l∞ 的行缩放</p>
◦ ILU0 – 填充为 0 的不完整 LU
您可以使用Sequator 求解AX=B 形式的线性联立方程。您可以根据硬件要求使用 OpenCL 功能或多线程 CPU 功能。您还可以在代入解决方案后分析解决方案以了解方程式中的错误。