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.
翻译:自1960年代以来,人们已知通过探索笛卡尔网格上离散拉普拉斯算子的张量积结构,可以开发一种简单的直接泊松求解器,其在d维空间中的计算复杂度为$\mathcal O(N^{\frac{d+1}d})$,其中N为总未知量数。大约十五年前,GPU加速数值求解偏微分方程的研究已取得初步成功,并在过去十年间因软硬件技术的显著进步(尤其是近几年的发展)而日益普及。本文提出一种基于现代GPU的简单且极快速的MATLAB实现方法(易于复现),用于采用谱元法求解三维泊松型方程。特别地,在Nvidia A100上求解具有十亿自由度的泊松方程时,耗时不足一秒。我们还展示了该快速求解器在求解线性(时间无关)薛定谔方程和非线性(时间相关)Cahn-Hilliard方程中的应用。