为 GPGPU 计算选择线性求解器 (OpenCL)

计算科学 并行计算 开放式 线性求解器
2021-12-11 06:29:14

我已经开发了一个有限元方法的工作解决方案,以使用 GPU 和 OpenCL 使用共轭梯度方法解决传热问题。这种方法的主要缺点是对内存的要求很高。此外,在显卡的情况下,内存通常非常有限。我看到两个选项:

  1. 创建子域并使用主机内存交换部分网格
  2. 使用多面方法

我必须考虑到具体的架构。交换可能非常昂贵。CG 方法在 GPGPU 计算的背景下很流行,但我找不到 CG 和 multifrontal 方法(在 GPGPU 的情况下)之间的任何比较。multifrontal 方法可以比 CG 更快吗?这是一个笼统的问题,其实还是要看实现的。

2个回答

我是LibGeoDecomp的项目负责人,所以我想我可能会加入。

是的,您可以使用 LibGeoDecomp 实现 FEM。我们目前正在为这个用例开发一个改进的数据容器。但公平地说:完成这项工作还有几个月的时间,在此之前性能不会是最佳的。如果您仍想尝试 LibGeoDecomp,请随时通过电子邮件与我联系。

另一种选择是Fenics,它具有针对不规则问题的优化求解器。但是在这种情况下,您无法编写自己的求解器。

不知道对你有没有帮助。在这里,您会找到libgeodecomp的链接,该工具采用可定制的域分解技术(来自该站点)。据我所知,它可以与 GPU 一起使用。如果它对你有帮助,请投票给我;-)