algorithm - GPU 的稀疏 Cholesky 分解算法

标签 algorithm math cuda opencl gpgpu

<分区>

谁能为我提供计算稀疏 Cholesky 分解的并行算法?它必须适合在 GPU 上执行。非常感谢 CUDA、OpenCL 甚至伪代码中的任何答案。

最佳答案

一般来说,直接稀疏方法不太适合 GPU。虽然最好的直接求解器(在这里考虑像 CHOLMOD、SuperLU、MUMPS 这样的包)使用策略生成可以使用 L3 BLAS 处理的密集子 block ,但 block 的大小和形状往往不会从使用 GPU BLAS 中获益为加速。这并不意味着它不能完成,只是性能改进可能不值得付出努力。

鉴于您询问的是稀疏 Cholesky 分解,我假设矩阵是对称正定矩阵。在这种情况下,您可能会考虑使用迭代求解器——共轭梯度和其他 Krylov 子空间方法有许多很好的实现,带有简单的预条件器,可能会有一些用处。 Cusp如果您的问题适用于迭代方法,CUDA 库可能值得研究。 ViennaCL如果您正在寻找 OpenCL,库会提供类似的东西。

关于algorithm - GPU 的稀疏 Cholesky 分解算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7123101/

相关文章:

javascript - 计算时差

c - 用指针返回一个值(C 程序)

java - 如何将数字限制在一个范围内

cuda - 可以从设备端代码触发 CUDA 事件吗?

javascript - 根据坐标识别顺序

algorithm - 有效地生成具有排序限制的排列(可能没有回溯)?

java - 如何在 Java 中获取 Double 的最大最安全整数

javascript - 流程图 : how to add a beginning and ending tick?

arrays - CUDA如何比较两个二维数组?

opengl - 使用 OpenGL 提供的矩阵在 CUDA 中设置光线