有限差分法 – 拉普拉斯算子 第 1 部分

Originally posted:
最后更新时间:
Justin Chang's avatar
Justin Chang
通讯作者
Rajat Arora's avatar
Rajat Arora
作者
Thomas H. Gibson's avatar
Thomas H. Gibson
作者
Sean Miller's avatar
Sean Miller
作者
Ossian O'Reilly's avatar
Ossian O'Reilly
作者

有限差分法是计算物理学中一种典型的网格离散化方法,广泛应用于从地球物理学(天气和石油天然气)和电磁学(半导体和天体物理学)到气体动力学(气流和等离子体)的各种应用中。网格计算代码的特点是需要访问网格点(模板)的局部邻域,以便计算单个网格点的值,这意味着算法的性能与其内存访问模式密切相关。GPU 由于其算法的规则结构、高度暴露的并行性和对 GPU 高内存带宽的有效利用,已被证明非常适合加速网格计算代码。在本篇博文中,我们将使用 AMD 的 Heterogeneous Interface for Portability (HIP) API 开发一个 GPU 加速的网格计算代码,这将让我们能够显式控制内存访问模式。在本次开发过程中,我们将讨论以下概念:

  1. 使用有限差分法离散化拉普拉斯算子

  2. 展示离散化的直接 HIP 实现

  3. 指导读者选择优化策略来提高网格计算代码的性能

  4. 演示如何使用 rocprof 获取内核的性能指标

拉普拉斯算子

拉普拉斯算子 2\nabla^2 是一种微分算子,可以使用偏微分方程描述各种物理现象。例如,它可用于描述声波传播(波动方程)、热流(热方程)以及静电和引力势(泊松方程)。它在计算机视觉和网格生成领域也有应用。有关更多信息,请参阅 wikipedia

作为可由拉普拉斯算子描述的物理现象的一个例子,下面的动画是热方程的二维数值模拟,显示了热量从热区域(凸起的字母)向冷区域(平面)的传递。

初始条件模拟

在笛卡尔坐标系中,拉普拉斯算子表现为标量场 u(x,y,z)u(x,y,z) 的梯度的散度

u=2u=2ux2+2uy2+2uz2,\nabla \cdot \nabla u = \nabla^2 u = \frac{\partial^2u}{\partial x^2} + \frac{\partial^2u}{\partial y^2} + \frac{\partial^2u}{\partial z^2},
Justin Chang's avatar

Justin Chang

通讯作者
Justin Chang 是 AMD 数据中心 GPU 软件解决方案部门的高级技术人员 (SMTS) 软件系统设计工程师,负责管理 AMD lab notes 博文系列。他获得了休斯顿大学土木工程博士学位,并发表了多篇关于多孔介质传输的结构保持高性能计算方法的期刊论文。作为博士后,他曾在莱斯大学和美国国家可再生能源实验室工作,以加速电动汽车所用双孔隙多孔介质和锂离子电池的地下流体模拟时间。他还曾在石油和天然气行业工作,专注于关键 FWI、RTM 和其他地震成像工作负载的 GPU 移植和优化。
Rajat Arora's avatar

Rajat Arora

作者
Rajat Arora 是 AMD 数据中心 GPU 软件解决方案部门的高级技术人员 (SMTS) 软件系统设计工程师,他致力于为 AMD GPU 移植和优化高性能计算应用程序。他获得了卡内基梅隆大学计算力学博士学位。他的博士研究集中在高​​性能科学计算、数值分析和材料科学的交叉领域。最近,他的研究兴趣已扩展到包括物理信息机器学习模型的开发以及加速科学发现和工程设计的工具。
Thomas H. Gibson's avatar

Thomas H. Gibson

作者
Thomas Gibson 是 AMD 数据中心 GPU 软件解决方案部门的技术人员 (MTS) 软件系统设计工程师。他获得了伦敦帝国理工学院计算数学博士学位,专注于数值天气模拟代码的混合有限元离散化。博士毕业后,Thomas 继续从事关于天气应用的结构保持(“兼容”)有限元方法和多重网格预处理器的研究。此外,他还开始将研究重点转向使用 GPU 加速流体动力学代码,并开发了用于 GPU 上湍流/燃烧模型的高保真/低耗散不连续伽辽金方法。他目前的研究兴趣包括优化 C/C++/Fortran GPU 应用程序、迭代求解器和预处理、有限元离散化以及数值天气预报应用。
Sean Miller's avatar

Sean Miller

作者
Sean Miller 是 AMD 数据中心 GPU 软件解决方案部门的高级技术人员 (SMTS) 软件系统设计工程师。他获得了华盛顿大学的博士学位,专注于聚变能源应用的计算等离子体物理学。Sean 在桑迪亚国家实验室继续他的研究,开发了高能密度物理建模工具,之后转到 AMD,在那里他支持科学软件在 GPU 加速 HPC 环境下的移植和优化。
Ossian O'Reilly's avatar

Ossian O'Reilly

作者
Ossian O'Reilly 是 AMD 数据中心 GPU 软件解决方案部门的技术人员 (MTS) 软件系统设计工程师。他致力于为 AMD GPU 移植和优化科学计算和工程应用程序。他拥有斯坦福大学地球物理学博士学位和瑞典林雪平大学计算数学博士学位。他的博士研究专注于用于包含摩擦界面和充满流体的裂缝的地震波传播的高阶数值方法,这些方法可应用于地震和火山学以及石油和天然气行业。作为博士后,他从事用于地形地震波传播的数值方法开发和分析,并针对 OLCF Summit 超级计算机实现了 GPU 模板内核。Ossian 的一些技术兴趣包括用于偏微分方程的高阶数值方法、基于模板和无矩阵方法,以及 GPU 内核开发和优化。
© . This site is unofficial and not affiliated with AMD.