1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > gpu 测试软件 VASP 电子结构预测应用程序和 GPU 加速 | NVIDIA

gpu 测试软件 VASP 电子结构预测应用程序和 GPU 加速 | NVIDIA

时间:2023-11-06 14:50:33

相关推荐

gpu 测试软件 VASP 电子结构预测应用程序和 GPU 加速 | NVIDIA

完成基准测试后,可以重置这些显卡,使它们以受支持的最高频率运行:

性能数据的免责声明

虽然已在生产系统上生成表示性能的数据,但它们仅用作指南以说明下面介绍的方法。请注意,您系统上的性能可能会不同,原因是 CPU 和GPU 的性能受到多个方面的影响。

最简单的方法:每个 GPU 一个进程

要使用我们系统中的所有 4 个 GPU,最简单的方法就是启动 VASP 的 4 个 MPI 进程,并让系统自动处理映射(即进程将在哪些 CPU 核心上运行):

mpirun -n 4 ~/bin/vasp_gpu

英特尔 MPI 环境自动将进程固定到特定的 CPU 核心,这就使操作系统无法在作业执行期间将进程移到其他核心,从而防止在一些不利的情况下进行数据移动。但是,这样做仍可能导致获得的是次佳的解决方案,原因是所实现的 MPI 并不了解 GPU 拓扑。我们可以通过增加详细程度来研究进程固定:

mpirun -n 4 -genv I_MPI_DEBUG=4 ~/bin/vasp_gpu

查看输出,并与我们有关互连拓扑的发现进行比较,可以看到事情似乎并不理想:

...

[0] MPI startup():

Rank

Pid

Node name

Pin cpu

[0] MPI startup():

0

41587

hsw227

{16,17,18,19,20,21,22,23}

[0] MPI startup():

1

41588

hsw227

{24,25,26,27,28,29,30,31}

[0] MPI startup():

2

41589

hsw227

{0,1,2,3,4,5,6,7}

[0] MPI startup():

3

41590

hsw227

{8,9,10,11,12,13,14,15}

Using device 0 (rank 0, local rank 0, local size 4) : Tesla P100-PCIE-16GB

Using device 1 (rank 1, local rank 1, local size 4) : Tesla P100-PCIE-16GB

Using device 2 (rank 2, local rank 2, local size 4) : Tesla P100-PCIE-16GB

Using device 3 (rank 3, local rank 3, local size 4) : Tesla P100-PCIE-16GB

...

rank 0 使用 GPU0,但绑定到更远的 CPU 核心 16-23。rank 2 和 3 同样出现此问题。只有 rank 1 使用 GPU1 并固定到核心 24-31,从而提供最佳传输性能。

我们现在来看看一些实际的性能数据。如果使用我们系统中的两个 Intel® Xeon® E5-2698 v3 CPU 的所有 32 个核心,并且不进行任何 GPU 加速,则需要 607.142 秒来完成 siHugeShort 基准测试。1如果以这种默认但次佳的方式使用 4 个 GPU,执行时间将为 273.320 秒(速度提高 2.22 倍)。使用 VASP 中包含的以下指标快速知道计算的运行时间

1 如果您以前编译过 VASP 的仅限 CPU 的版本,则可以使用以下命令知道它在您的系统上要运行多长时间:mpirun -n 32 -env I_MPI_PIN_PROCESSOR_LIST=allcores:map=scatter ~/bin/vasp_std

grep Elapsed\ time OUTCAR

VASP 将 GPU 连续映射到 MPI rank 进程,同时忽略计算能力不足的 GPU(如果有的话)。通过这样做并且使用以下语法,我们可以手动控制 CPU 上的进程放置和分配 rank,让每个进程均使用具有最短内存传输路径的 GPU:

mpirun -n 4 -genv I_MPI_DEBUG=4 -env I_MPI_PIN_PROCESSOR_LIST=0,16,21,26 ~/bin/vasp_gpu

这样做并未改善系统性能(运行时间为 273.370 秒),原因可能是没有均衡地使用公共的 CPU 资源,例如内存带宽和缓存(3 个进程共享一个 CPU)。作为折衷,用户可以分配 rank,让它们在 CPU 插座之间均匀分布,但只有一个 rank 必须使用较慢的内存路径向 GPU 传输数据:

mpirun -n 4 -genv I_MPI_DEBUG=4 -env I_MPI_PIN_PROCESSOR_LIST=0,8

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。