It is well known since 1960s that by exploring the tensor product structure of the discrete Laplacian on Cartesian meshes, one can develop a simple direct Poisson solver with an $\mathcal O(N^{\frac{d+1}d})$ complexity in d-dimension, where N is the number of the total unknowns. The GPU acceleration of numerically solving PDEs has been explored successfully around fifteen years ago and become more and more popular in the past decade, driven by significant advancement in both hardware and software technologies, especially in the recent few years. We present in this paper a simple but extremely fast MATLAB implementation on a modern GPU, which can be easily reproduced, for solving 3D Poisson type equations using a spectral-element method. In particular, it costs less than one second on a Nvidia A100 for solving a Poisson equation with one billion degree of freedoms. We also present applications of this fast solver to solve a linear (time-independent) Schr\"odinger equation and a nonlinear (time-dependent) Cahn-Hilliard equation.
翻译:自20世纪60年代以来,人们已知通过利用笛卡尔网格上离散拉普拉斯算子的张量积结构,可构建一个复杂度为$\mathcal O(N^{\frac{d+1}d})$的简易直接泊松求解器(d为维度,N为总未知数数量)。约十五年前,GPU加速数值求解偏微分方程已获得成功探索,并在过去十年间随着软硬件技术的显著进步(尤其是最近几年)日益普及。本文提出一种在现代GPU上可轻松复现的简易且极快速的MATLAB实现,用于采用谱元法求解三维泊松型方程。特别是,在Nvidia A100上求解十亿自由度的泊松方程时,耗时不足一秒。我们还展示了该快速求解器在求解线性(时间无关)薛定谔方程和非线性(时间相关)卡恩-希利亚德方程中的应用。