7. 加速性能
7.1.基准测试
7.2.测试性能
7.3.通用技巧
7.4.加速器包
LAMMPS 中添加了各种pair_style、fixes、compute 和其他命令的加速版本,其运行速度通常比标准非加速版本更快。有些需要您的系统上存在适当的硬件,例如GPU 或 Intel Xeon Phi 协处理器。
所有这些命令都包含在 LAMMPS 提供的软件包中。软件包页面上提供了包的概述。
以下为当前 LAMMPS 中的加速器包:
通过 CUDA、OpenCL 或 ROCm HIP 适用于 GPU | |
适用于 Intel CPU 和 Intel Xeon Phi | |
适用于 NVIDIA GPU、Intel Xeon Phi 和 OpenMP 线程 | |
用于 OpenMP 线程和通用 CPU 优化 | |
通用 CPU 优化 |
反过来,LAMMPS 目前通过列出的软件包对三种硬件提供加速支持:
Many-core CPUs | |
GPUs | |
Intel Phi/AVX |
哪个包对于您的硬件来说速度最快可能取决于您正在运行的大小问题以及输入脚本调用的命令(加速和非加速)。虽然这些文档页面包含性能指南,但尝试适合您的硬件的不同软件包是无可替代的。
任何加速样式都与相应的标准样式具有相同的名称,只是附加了后缀。否则,使用该样式的命令的语法是相同的,它们的功能是相同的,并且它产生的数值结果也应该是相同的,除了精度和舍入效果之外。
例如,所有这些样式都是 Lennard-Jonespair_style lj/cut 的加速变体:
要查看当前可用于特定样式的加速样式,请在命令样式页面中找到样式名称(fix,compute,pair等),并查看列出的后缀(g、i、k、o、t) 。各个命令的文档页面(例如pair lj/cut 或fix nve)还列出了该样式可用的任何加速变体。
要在 LAMMPS 中使用加速器包及其提供的一种或多种样式,请按照以下常规步骤操作。详细信息因软件包而异,并在上面列出的各个加速器文档页面中进行了解释:
build the accelerator library | only for GPU package 仅适用于 GPU 封装 |
install the accelerator package | make yes-opt, make yes-intel, etc |
add compile/link flags to Makefile.machine in src/MAKE | only for INTEL, KOKKOS, OPENMP, OPT packages |
re-build LAMMPS 重建LAMMPS | make machine 制造机器 |
prepare and test a regular LAMMPS simulation | lmp_machine -in in.script; mpirun -np 32 lmp_machine -in in.script |
enable specific accelerator support via ‘-k on’ command-line switch, | only needed for KOKKOS package |
set any needed options for the package via “-pk” command-line switch or package command, | only if defaults need to be changed |
use accelerated styles in your input via “-sf” command-line switch or suffix command | lmp_machine -in in.script -sf gpu |
请注意,前 4 个步骤可以通过适当的 make 命令调用作为单个命令来完成。这在 Packages 文档页面上进行了讨论,其使用在各个加速器部分中进行了说明。通常,这些步骤只需完成一次,即可创建使用一个或多个加速器包的可执行文件。
最后 4 个步骤都可以在启动 LAMMPS 时从命令行完成,而无需更改输入脚本,如各个加速器部分所示。或者您可以将包和后缀命令添加到输入脚本中。
注:除了少数例外,您可以构建一个安装了所有加速器包的 LAMMPS 可执行文件。但请注意,INTEL 和 KOKKOS 软件包要求您在针对特定平台进行构建时选择其硬件选项之一。 IE。 INTEL 封装的 CPU 或 Phi 选项。或者 KOKKOS 包的 OpenMP、CUDA、HIP、SYCL 或 Phi 选项。或者 GPU 包的 OpenCL、HIP 或 CUDA 选项。
这些都是例外。您不能使用以下命令构建单个可执行文件:
-
INTEL Phi 和 KOKKOS Phi 选项
-
INTEL Phi 或 Kokkos Phi 选项以及 GPU 包
如上所述,LAMMPS 网站的基准页面给出了多个标准 LAMMPS 基准问题的各种加速器包的性能结果,作为不同硬件平台上问题大小和计算节点数量的函数。
以下是各种软件包提供的内容的简要总结。详细信息位于各个加速器部分。
- 带有“gpu”后缀的样式是 GPU 包的一部分,可以在 Intel、NVIDIA 或 AMD GPU 上运行。 GPU 的加速取决于多种因素,这些因素将在加速器部分讨论。
- 带有“intel”后缀的样式是 INTEL 包的一部分。除了全双精度之外,这些样式还支持矢量化单精度和混合精度计算。在极端情况下,这可以使 CPU 加速超过 3.5 倍。该软件包还支持英特尔(R) 至强融核(TM) 协处理器的“卸载”模式加速。根据硬件配置,这可能会导致超过 2 倍的额外加速。
- 带有“kk”后缀的样式是 KOKKOS 包的一部分,可以在多核 CPU、NVIDIA 或 AMD GPU 或 Intel Xeon Phi 上以“本机”模式运行 OpenMP。正如 KOKKOS 加速器页面上所讨论的,加速取决于多种因素。
- 带有“omp”后缀的样式是 OPENMP 包的一部分,允许使用 OpenMP 在多线程模式下运行对样式。当使用比核心更少的 MPI 进程时,这对于具有高核心数量的节点非常有用,例如当使用 PPPM 运行以便 FFT 在较少的 MPI 处理器上运行时,或者当许多 MPI 任务会使通信的可用带宽过载时。
- 带有“opt”后缀的样式是 OPT 包的一部分,通常可以将 CPU 上的模拟成对计算速度加快 5-25%。
各个加速器包文档页面解释了:
- 加速包需要哪些硬件和软件
- 如何使用加速包构建 LAMMPS
- 如何通过命令行开关或修改输入脚本来运行加速包
- 预期的加速
- 最佳性能指南
- 限制