猿代码 — 科研/AI模型/高性能计算
0

基于OpenACC的VASP在 GPU的移植

摘要: 1)随着VASP.6.2.0,我们正式发布了VASP:Official的OpenACC GPU端口,因为我们现在强烈建议使用此OpenACC版本在GPU加速系统上运行VASP。VASP以前的CUDA-C GPU端口被认为已弃用,不再积极开发、维护或支持。截至VASP. ...
1)
随着VASP.6.2.0,我们正式发布了VASP:Official的OpenACC GPU端口,因为我们现在强烈建议使用此OpenACC版本在GPU加速系统上运行VASP。
VASP以前的CUDA-C GPU端口被认为已弃用,不再积极开发、维护或支持。截至VASP.6.3.0,VASP的CUDA-C GPU端口已完全断开。

CUDA C已经GG了,不太明白原因,应该CUDA C性能会好一些吧?

2)
软件堆栈

编译器



要编译VASP的OpenACC版本,您需要NVIDIA HPC-SDK的最新版本(>=21.2)。

原则上,任何至少支持OpenACC标准2.6的编译器都应该做到这一点,但我们只尝试并测试了上述编译器。

注意:NVIDIA HPC-SDK版本22.1和22.2有一个严重的错误,禁止将OpenACC版本与OpenMP线程一起执行。当使用这些编译器版本时,您应该在不支持OpenMP的情况下进行编译。自NVIDIA HPC-SDK版本22.3起,此错误已修复。

图书馆



数字库:FFTW、BLAS、LAPACK和scaLAPACK。如果您使用的是NVIDIA HPC-SDK,您必须自己安装的唯一数字库是FFTW。后三种(BLAS、LAPACK和scaLAPACK)随SDK一起提供。或者,您也可以链接到提供这四种功能的英特尔oneAPI MKL库的安装。

NVIDIA CUDA工具包(>=10.0)。所有必需的CUDA工具包组件都作为NVIDIA HPC-SDK的一部分提供。

一个支持CUDA的MPI版本。与NVIDIA HPC-SDK一起打包的OpenMPI安装具有CUDA意识。

NVIDIA集体通信库(NCCL)(>=2.7.8)。这个库不是一个严格的要求,但出于性能原因,强烈建议使用它。NCCL的适当安装作为NVIDIA HPC-SDK的一部分进行装运。

驱动程序



您需要一个至少支持CUDA-10.0的CUDA驱动程序。

3)
硬件

我们只使用以下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)功能。

4)

特点和限制

VASP的大多数功能都已使用OpenACC移植到GPU,但涉及RPA:GW和ACFDT的所有功能除外。这是正在进行的工作。

出于性能原因,应避免使用波函数的并行FFT(NCORE>1)。目前,即使INCAR文件中另有规定,OpenACC版本也会自动切换到NCORE=1。

由于使用了NCCL,VASP的OpenACC版本只能使用每个可用GPU的单个MPI列来执行:

在大多数情况下,使用NCCL具有很大的性能优势。然而,我们意识到,对于小型系统上的计算,保留多个MPI列共享GPU的能力是有用的,并计划使NCCL的使用成为可选的,以消除这一限制。

5)











说点什么...

已有0条评论

最新评论...

本文作者
2024-2-16 22:44
  • 0
    粉丝
  • 183
    阅读
  • 0
    回复
资讯幻灯片
热门评论
热门专题
排行榜
Copyright   ©2015-2023   猿代码-超算人才智造局 高性能计算|并行计算|人工智能      ( 京ICP备2021026424号-2 )