cndaqiang Web Linux DFT

Intel Parallel Studio XE & Cuda 10 编译GPU版本VASP-5.4.4

2019-04-01
cndaqiang
DFT
RSS

很多内容不解释了,前提工作同Intel Parallel Studio XE 编译VASP
按照Intel Parallel Studio XE 编译VASP安装编译器
按照Centos 7 安装Cuda10 过程记录安装Cuda

参考

GPU-ACCELERATED VASP

解压修改

 tar xzvf vasp.5.4.4.tar.gz 
 cd vasp.5.4.4
 cp arch/makefile.include.linux_intel makefile.include 
 vi makefile.include 

makefile.include 文件修改

MKL和编译器的配置同Intel Parallel Studio XE 编译VASP

cuda配置

针对intel 15 和cuda10
修改CUDA_LIB,指定-lcublas -lcuda的地址,如CUDA_LIB := -L$(CUDA_ROOT)/lib64 -lnvToolsExt -lcudart -lcufft -L/usr/lib64 -lcuda -lcublas
我在安装cuda时自定义了安装目录,因此指定了-L/home/data/software/usr/local/cuda-10.0/lib64 -lcublas

# GPU Stuff

CPP_GPU    = -DCUDA_GPU -DRPROMU_CPROJ_OVERLAP -DUSE_PINNED_MEMORY -DCUFFT_MIN=28 -UscaLAPACK

OBJECTS_GPU = fftmpiw.o fftmpi_map.o fft3dlib.o fftw3d_gpu.o fftmpiw_gpu.o

CC         = icc
CXX        = icpc
CFLAGS     = -fPIC -DADD_ -Wall -openmp -DMAGMA_WITH_MKL -DMAGMA_SETAFFINITY -DGPUSHMEM=300 -DHAVE_CUBLAS

CUDA_ROOT  ?= /usr/local/cuda/
NVCC       := $(CUDA_ROOT)/bin/nvcc -ccbin=icc
CUDA_LIB   := -L$(CUDA_ROOT)/lib64 -lnvToolsExt -lcudart -lcuda -lcufft \
              -L/home/data/software/usr/local/cuda-10.0/lib64 -lcublas

GENCODE_ARCH    := -gencode=arch=compute_30,code=\"sm_30,compute_30\" \
                   -gencode=arch=compute_35,code=\"sm_35,compute_35\" \
                   -gencode=arch=compute_60,code=\"sm_60,compute_60\"

MPI_INC    = $(I_MPI_ROOT)/include64/

针对intel19还需更改一处,将CFLAGS中的-openmp改为-oqpenmp

CFLAGS     = -fPIC -DADD_ -Wall -oqpenmp -DMAGMA_WITH_MKL -DMAGMA_SETAFFINITY -DGPUSHMEM=300 -DHAVE_CUBLAS

编译

make gpu

bin目录有GPU版本的vasp生成

$  ls bin
vasp_gam  vasp_gpu  vasp_ncl  vasp_std

运行

同非GPU版本一样mpirun -np 核数 vasp_gpu,运行过程

INCAR参数要添加

LREAL = .TRUE. or LREAL = A
NCORE = 1

运行途中,可以查看显卡的占用

Benchmark

在进行大体系计算时,计算速度明显 体系从小到大对比GPU-vasp测试.pdf


本文首发于我的博客@cndaqiang.
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!


目录

访客数据