选择用于GPGPU计算(OpenCL)的线性求解器


10

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

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

我必须考虑特定的体系结构。交换可能非常昂贵。CG方法在GPGPU计算的上下文中很流行,但是我找不到CG与多前沿方法之间的任何比较(对于GPGPU)。能比CG更快的多面方法吗?这是一个普遍的问题,实际上,它仍然取决于实现。


2
您是否使用自己的FEM代码对矩阵进行全局组装?还是使用无矩阵实现?(即矩阵没有明确的形式)
艾伦·恩格西格·卡鲁普

3
您使用的是什么预处理器,域名是什么?使用良好算法的10年台式机将使用a脚的算法击败一系列GPU。
杰德·布朗

您使用的是六面体网格还是​​简单网格?如果存在内存问题,并且您正在使用具有张量乘积基函数的十六进制元素,则在某些情况下,您可以通过仅保存一维运算符并使用无矩阵实现(如Allan所述)来节省内存。
杰西·陈

Answers:


2

我是LibGeoDecomp的项目负责,所以我想我可能会喜欢上。

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

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


1

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.