计算化学公社
标题:
QE GPU版本使用【持续更新】
[打印本页]
作者Author:
kuangll
时间:
2021-12-6 00:29
标题:
QE GPU版本使用【持续更新】
本帖最后由 kuangll 于 2022-6-9 14:58 编辑
近期关注到Quantum Espresso (QE) 的GPU版本的一些安装、使用和测试。在网上搜了下,国内关于GPU版本的使用只有量子化学公社里面两篇帖子(
@喵星大佬
和
@MilkTeaLegend
)还有
知乎上的一篇
。可能还是QE的用户群体相对少很多。这里记录一下个人测试的一些情况,以供大家交流。
容器方式
从QE 6.6a1版本开始,就可以从
NVIDIA NGC目录
(目前更新到qe-7.0) 上获取QE的容器镜像来方便地使用GPU版本。实际上,在NGC QE页面上就详细比较详细介绍了QE容器镜像的使用方法,包括直接在物理机上运行docker容器、使用Slurm调度方式运行容器。(大家可以直接参考NGC 页面 Overview中的步骤,如果有需要我再在这里加上)
源码安装
下载源码安装的方式是之前提到的几个帖子中主要的使用方式。推荐使用NVIDIA HPC SDK软件包进行安装,因为它包含了所有需要的编译器、数学库和通讯库(包括nvfortran、CUDA、cuFFT、cuBLAS、cuSolver、OpenMPI等等),这样只需要安装HPC SDK,就能够编译QE GPU版本了。
1)HPC SDK安装
从NVIDIA官网
软件页面
下载HPC 软件包(根据实际环境选择版本),下载的时候会提示安装步骤,如下所示:
$ wget https://developer.download.nvidia.com/hpc-sdk/21.9/nvhpc_2021_219_Linux_x86_64_cuda_11.4.tar.gz
$ tar xpzf nvhpc_2021_219_Linux_x86_64_cuda_11.4.tar.gz
$ nvhpc_2021_219_Linux_x86_64_cuda_11.4/install
复制代码
注意:执行install安装的时候根据提示选择安装路径。
2)QE 编译安装
# 下载源码
$ git clone https://gitlab.com/QEF/q-e-gpu.git --branch qe-gpu-6.8
复制代码
# 加载环境
$ module load nvhpc/21.9
$ CUDADIR=/opt/nvidia-hpc-sdk/Linux_x86_64/20.9/cuda
复制代码
# 配置
$ ./configure --with-cuda=$CUDADIR --with-cuda-runtime=11.4 --with-cuda-cc=70 --enable-openmp --with-scalapack=no LIBS="-L$CUDADIR/../math_libs/lib64 -L$CUDADIR/lib64/stubs/"
复制代码
# 编译
$ make pw -j 8
复制代码
# 运行
$ mpirun -n $NGPUS ../q-e-gpu/bin/pw.x -i input.in
复制代码
其中,配置成功完成时候会生成make.inc文件,为了获得更好的性能可以修改 DFLAGS中,用-D__FFTW3替换-D__FFTW, 增加-D__GPU_MPI;
运行的时候,设置线程数 export OMP_NUM_THREADS=8 (数量根据实际情况设置)。
另外,对于使用数据中心级别GPU,如V100以上,可以使用MPS提高行性能,参考NGC提供的
运行脚本
。
关于QE GPU版本的问题也欢迎大家一起交流讨论。
作者Author:
kyuu
时间:
2022-2-24 15:40
好腻害
作者Author:
双核亲分子取代
时间:
2024-9-25 23:29
老师你好 我按照你的步骤 configure make 都成功了。 但是运行的时候会直接报错 0: ALLOCATE: 0 bytes requested; status = 0(no error) ;结果文件的在输出 Dense grid 就没有了
欢迎光临 计算化学公社 (http://bbs.keinsci.com/)
Powered by Discuz! X3.3