24小时热门版块排行榜    

查看: 1390  |  回复: 0

A宝禄计算

银虫 (初入文坛)

[交流] VASP 的 OpenACC GPU 端口

在 VASP.6.2.0 中,我们正式发布了 VASP 的 OpenACC GPU 端口:正式的意思是我们现在强烈建议使用此 OpenACC 版本在 GPU 加速系统上运行 VASP。
VASP之前的CUDA-C GPU 端口被认为已弃用,不再积极开发、维护或支持。从 VASP.6.3.0 开始,VASP 的 CUDA-C GPU 端口已完全删除。

内容
1个要求
1.1软件栈
1.2硬件
2个建筑
3个特点和限制
4个运行 OpenACC 版本
5个学分
6个相关文章
要求
软件栈
编译器
要编译 VASP 的 OpenACC 版本,您需要最新版本的NVIDIA HPC-SDK (>=21.2)。
原则上,任何至少支持 OpenACC 标准 2.6 的编译器都应该可以做到这一点,但我们只尝试和测试了上述编译器。
注意:NVIDIA HPC-SDK 版本 22.1 和 22.2 有一个严重的错误,禁止与 OpenMP 线程一起执行 OpenACC 版本。使用这些编译器版本时,您应该在没有 OpenMP 支持的情况下进行编译。此错误已从 NVIDIA HPC-SDK 版本 22.3 开始修复。
图书馆
数值库:FFTW、BLAS、LAPACK 和 scaLAPACK。如果您使用的是NVIDIA HPC-SDK,您必须自己安装的唯一数值库是FFTW。后三个(BLAS、LAPACK 和 scaLAPACK)随 SDK 一起提供。或者,您可以链接到提供所有四个的Intel oneAPI MKL库的安装。
NVIDIA CUDA 工具包(>=10.0)。所有必要的 CUDA 工具包组件都作为 NVIDIA HPC-SDK 的一部分提供。
MPI 的 CUDA 感知版本。与 NVIDIA HPC-SDK 一起打包的 OpenMPI 安装是 CUDA 感知的。
NVIDIA 集体通信库 (NCCL) (>=2.7.8)。这个库不是一个严格的要求,但出于性能原因强烈建议使用它。合适的 NCCL 安装作为 NVIDIA HPC-SDK 的一部分提供。
司机
您需要一个至少支持 CUDA-10.0 的 CUDA 驱动程序。
硬件
我们仅使用以下 NVIDIA GPU 测试了 VASP 的 OpenACC GPU 端口:
NVIDIA 数据中心 GPU:P100 (Pascal)、V100 (Volta) 和 A100 (Ampere)。
NVIDIA Quadro GPU:GP100 (Pascal) 和 GV100 (Volta)。
注意:在其他 NVIDIA GPU(例如“游戏”硬件)上运行 VASP 在技术上是可行的,但不可取:这些 GPU 不太适合,因为它们不提供快速双精度浮点运算 (FP64) 性能,并且通常具有更小的没有纠错码 (ECC) 功能的存储器。
建筑
要构建 VASP 的 OpenACC 端口,最好将您的makefile.include文件基于其中一个原型模板,并根据您系统的具体情况调整这些模板。
特点和限制
VASP 的大部分功能都已使用 OpenACC 移植到 GPU,但涉及 RPA 的所有功能除外:GW 和 ACFDT。这是正在进行的工作。
出于性能原因,应避免使用波函数的并行 FFT ( NCORE >1)。目前,即使在INCAR文件中另有指定,OpenACC 版本也会自动切换到NCORE =1 。
由于使用 NCCL,VASP 的 OpenACC 版本只能使用每个可用 GPU 的单个 MPI 等级来执行:
在大多数情况下,使用 NCCL 具有很大的性能优势。但是,我们知道这样一个事实,即对于小型系统上的计算,保留让多个 MPI 级数共享一个 GPU 的能力将很有用,并计划使 NCCL 的使用成为可选的以消除此限制。
运行 OpenACC 版本
1.每个 GPU 使用单个 MPI 等级(目前,NCCL 的使用排除了每个 GPU 使用多个等级)。
2.除了 MPI 等级之外,还使用 ​​OpenMP 线程来利用更多可用的 CPU 能力。OpenACC 版本目前仅限于使用 1 个 MPI-rank/GPU,这意味着可能有相当多的 CPU 能力未被使用。由于仍然有部分代码在 CPU 端运行,因此允许每个 MPI 等级使用多个 OpenMP 线程可能是有益的:
o要了解如何使用 OpenACC和OpenMP 支持构建 VASP,请查看makefile.include.nvhpc_ompi_mkl_omp_acc文件。
注意:这里我们链接了用于 CPU 端 FFTW、BLAS、LAPACK 和 scaLAPACK 调用的英特尔 MKL 库和英特尔 OpenMP 运行时库 ( libiomp5.so 。在为 Intel CPU 编译时强烈建议这样做,尤其是在使用多线程时。为确保 MKL 使用英特尔 OpenMP 运行时库,您需要通过以下方式设置环境变量:
export MKL_THREADING_LAYER=INTEL
或者通过添加:
-x MKL_THREADING_LAYER=intel
作为命令的选项mpirun。
o将 OpenMPI 等级和 OpenMP 线程正确放置和固定到 CPU 内核上可能有点棘手,这取决于使用的 MPI 的特定风格。
3.要获得最佳性能,明智地选择KPAR和NSIM非常重要。不幸的是,理想值将取决于您系统的具体情况,包括工作负载和硬件,因此您将不得不尝试不同的设置。但是,根据经验,可以说:
o将KPAR设置为您将要使用的 GPU 数量(= MPI-ranks)。不过,这仅在计算中不可约k点的数量或多或少可被KPAR整除时才有意义,否则 MPI 等级上的工作分布将严重不平衡。这意味着您在选择此参数时的选项有些受限。
oNSIM确定在许多电子求解器(例如 RMM-DIIS 和 blocked-Davidson)中同时优化的波段数。作为一项规则,与 CPU 端执行相比,应该选择更大的参数以获得 GPU 上的良好性能。
注意:为了优化 VASP 的 CPU 端执行,通常也会对NCORE进行不同的设置。当在 GPU 上运行时,任何不同于NCORE =1 的东西都会对性能产生不利影响,并且 VASP 将自动切换到NCORE =1,即使在INCAR文件中另有指定也是如此。
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 A宝禄计算 的主题更新
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[基金申请] 今天维护系统维护 祝所有人 高中 +8 gjjjzhong 2026-08-18 9/450 2026-08-18 13:01 by 家与远方
[基金申请] 欢迎发来filecode的Mz6后的代码验证其规律 +45 医学老男孩 2026-08-13 99/4950 2026-08-18 12:56 by dotnetchen9056
[硕博家园] 售SCI-T0P文章,我:8O.5.5.1.O.54,科目齐全,可+急 +3 KZyU1THERRVo 2026-08-18 3/150 2026-08-18 12:52 by vHWVV9D5Deb5
[基金申请] 哪位老哥知道今年的国自然具体哪一天放榜? +13 Ldrop2023 2026-08-13 16/800 2026-08-18 12:25 by 淀粉搬运工
[基金申请] 2027广东省杰青 +3 奶牛小黑 2026-08-15 8/400 2026-08-18 11:47 by gltch
[基金申请] 快农历七夕节了,轻松一下,男人悄悄话,女施主请不要进来。 +4 Tide man 2026-08-14 5/250 2026-08-18 11:35 by Tide man
[论文投稿] 投稿咨询 +4 wwm09 2026-08-17 5/250 2026-08-18 11:25 by 無關想念
[基金申请] 时间戳变了,能看出什么问题? +5 基诺咪客 2026-08-17 6/300 2026-08-18 11:06 by hunter无悔
[基金申请] 93BebMhtakh前后11位开头都是大写 +4 且听虎啸 2026-08-17 5/250 2026-08-18 00:49 by 蔡棒棒菂
[基金申请] 感觉是下周放榜了 +6 angus9576 2026-08-17 11/550 2026-08-17 23:57 by angus9576
[基金申请] filecode=后面第一个是大写字母 +8 wangze12014 2026-08-14 10/500 2026-08-17 17:05 by xter9665
[基金申请] 今天系统多次维护,明天很可能放榜! +8 zju2000 2026-08-16 9/450 2026-08-17 12:20 by lmz0216
[基金申请] 时间戳又变了8-15 +13 archvillain 2026-08-15 25/1250 2026-08-16 20:13 by zhaosm1982
[基金申请] 咱们一起用铁证分析2026国家社科基金中标与否 +7 启萌科技 2026-08-12 26/1300 2026-08-16 12:35 by 启萌科技
[精细化工] 招聘 金属平磨液,抛光液研发工程师 +3 小天0311 2026-08-14 3/150 2026-08-16 07:31 by H9PLUS
[基金申请] 是这周出结果还是下周出结果? +4 yuleib84 2026-08-11 4/200 2026-08-14 23:05 by lfy8008
[基金申请] 重要来源:本周末出结果 +10 瞬息宇宙 2026-08-12 10/500 2026-08-13 15:46 by likettle
[基金申请] 不应该看fileCode +7 且听虎啸 2026-08-12 9/450 2026-08-13 14:27 by flydreamws
[基金申请] 结合人工智能,周易传统文化,filecode打分制来了,3分以上希望很大。 +3 Tide man 2026-08-12 4/200 2026-08-13 08:35 by ZJTJZ
[基金申请] 2019年青年基金涵评意见,大家看看几个A,几个B? +11 Tide man 2026-08-11 11/550 2026-08-13 07:35 by 撸猫猫
信息提示
请填处理意见