隐式时间离散化的cuda和数值方法


10

我希望移植一些通过IMPLICIT形式的有限体积方法(用于时间离散化)解析一组偏微分方程(PDE)的代码。

结果,存在由ADI / TDMA方案处理的x,y,z方向上的三对角方程组。

我似乎找不到关于使用CUDA进行PDE的隐式解决方案的任何信息。

ADI / TDMA方案是否可以在CUDA中实现?某处是否有类似2D热扩散方程的示例?

我所能找到的是一个二维热扩散方程的CUDA示例代码,它具有有限的差异,但形式为EXPLICIT(剑桥大学)。

任何提示/参考将不胜感激。


2
您正在使用哪种PDE?这是线性的,非线性的吗?您的整个系统是三对角线的吗?(我不明白您所说的“在x,y,z方向上的对角线”是什么意思)。通常,由于全球化的内部乘积和不规则的通信,很难在GPU上实现稀疏求解器或迭代求解器(但是,如果这是三对角的,则通信可能不是一个大问题)。编辑:好吧,用google搜索ADI,在我自己之前从未使用过它。快速搜寻三对角线求解器的谷歌发现了这一点:Impact.crhc.illinois.edu/shared/papers/sc12_tridiagonal-1.pdf
Reid.Atcheson

谢谢你的链接。PDE来自动量,质量和能量的守恒方程,因此它们是强耦合且非线性的。看来Nikolai Sakharnykh先生已经做到了。这是感兴趣的链接:nvidia.com/content/GTC/documents/1058_GTC09.pdf。虽然找不到示例代码,这确实有帮助。
Khine 2013年

2
请删除您在SO上发布的重复帖子,或要求将其迁移到此处。
David Ketcheson

Answers:


1

此问题使其本身具有高度矢量化的形式。如您所述,ADI方法给出了三对角线系统的几个步骤。由于采用线性方程式,因此您可以使用CUsolverCUblas调用标准线性代数例程的并行GPU版本。使用这些,您应该能够获取显式代码,只需将内部循环更改为适当的CUsolver调用,并以某种方式使它看起来几乎与CPU实现完全相同,但是可以通过在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.