计算化学公社

标题: 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 软件包(根据实际环境选择版本),下载的时候会提示安装步骤,如下所示:
  1. $ wget https://developer.download.nvidia.com/hpc-sdk/21.9/nvhpc_2021_219_Linux_x86_64_cuda_11.4.tar.gz
  2. $ tar xpzf nvhpc_2021_219_Linux_x86_64_cuda_11.4.tar.gz
  3. $ nvhpc_2021_219_Linux_x86_64_cuda_11.4/install
复制代码
     注意:执行install安装的时候根据提示选择安装路径。

        2)QE 编译安装
         # 下载源码
  1. $ git clone https://gitlab.com/QEF/q-e-gpu.git --branch qe-gpu-6.8
复制代码
         # 加载环境
  1. $ module load nvhpc/21.9
  2. $ CUDADIR=/opt/nvidia-hpc-sdk/Linux_x86_64/20.9/cuda
复制代码
         # 配置
  1. $ ./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/"
复制代码
         # 编译
  1. $ make pw -j 8
复制代码
         # 运行
  1. $ 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