|
本帖最后由 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/"
复制代码 # 编译
# 运行
- $ 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版本的问题也欢迎大家一起交流讨论。
|
评分 Rate
-
查看全部评分 View all ratings
|