千家信息网

VASP中GPU并行编译安装的示例分析

发表于:2024-11-23 作者:千家信息网编辑
千家信息网最后更新 2024年11月23日,小编给大家分享一下VASP中GPU并行编译安装的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!安装CUDACUDA版本11.0及以上略。。。安装Intel编译器##Intel
千家信息网最后更新 2024年11月23日VASP中GPU并行编译安装的示例分析

小编给大家分享一下VASP中GPU并行编译安装的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!

安装CUDA

CUDA版本11.0及以上略。。。

安装Intel编译器

##Intel编译器选择2021版免费的oneAPI,Base基础包+HPC包sudo bash l_BaseKit_p_2021.2.0.2883_offline.shsudo bash l_HPCKit_p_2021.2.0.2997_offline.sh##添加环境变量编辑.bashrc或/etc/profile添加source /opt/intel/oneapi/setvars.sh intel64##编译fftwcd /opt/intel/oneapi/mkl/2021.2.0/interfaces/fftw3xf/make libintel64                    #无权限可将/opt/intel/oneapi修改user属主属组

安装VASP

tar xvf vasp.6.1.0.tar.gzcd vasp.6.1.0cp arch/makefile.include.linux_intel makefile.include修改文件makefile.includemake all

测试VASP

unzip test.zipcd test mpirun  -np 30  vasp_stdmpirun  -np 30  vasp_gpu

makefile.include配置文件内容如下

#Precompiler optionsCPP_OPTIONS= -DHOST=\"LinuxIFC\"\                         -DMPI -DMPI_BLOCK=8000 -Duse_collective \                         -DscaLAPACK \                         -DCACHE_SIZE=4000 \                         -Davoidalloc \                         -Dvasp6 \                         -Duse_bse_te \                         -Dtbdyn \                         -Dfock_dblbufCPP        = fpp -f_com=no -free -w0  $*$(FUFFIX) $*$(SUFFIX) $(CPP_OPTIONS)FC         = mpiifortFCL        = mpiifort -mkl=sequentialFREE       = -free -names lowercaseFFLAGS     = -assume byterecl -w -xHOSTOFLAG      = -O2OFLAG_IN   = $(OFLAG)DEBUG      = -O0MKLROOT    = /opt/intel/oneapi/mkl/2021.2.0MKL_PATH   = $(MKLROOT)/lib/intel64BLAS       = -L$(MKL_PATH) -lmkl_intel_lp64 -lmkl_sequential -lmkl_core -lpthreadLAPACK     = -L$(MKL_PATH) -lmkl_intel_lp64 -lmkl_sequential -lmkl_core -lpthreadBLACS      = -lmkl_blacs_intelmpi_lp64SCALAPACK  = $(MKL_PATH)/libmkl_scalapack_lp64.a $(BLACS)OBJECTS    = fftmpiw.o fftmpi_map.o fft3dlib.o fftw3d.o \                         $(MKLROOT)/interfaces/fftw3xf/libfftw3xf_intel.aINCS       =-I$(MKLROOT)/include/fftwLLIBS      = $(SCALAPACK) $(LAPACK) $(BLAS)OBJECTS_O1 += fftw3d.o fftmpi.o fftmpiw.oOBJECTS_O2 += fft3dlib.o#For what used to be vasp.5.libCPP_LIB    = $(CPP)FC_LIB     = $(FC)CC_LIB     = iccCFLAGS_LIB = -OFFLAGS_LIB = -O1FREE_LIB   = $(FREE)OBJECTS_LIB= linpack_double.o getshmem.o#For the parser libraryCXX_PARS   = icpcLLIBS      += -lstdc++#Normally no need to change thisSRCDIR     = ../../srcBINDIR     = ../../bin#================================================#GPU StuffCPP_GPU    = -DCUDA_GPU -DRPROMU_CPROJ_OVERLAP -DUSE_PINNED_MEMORY -DCUFFT_MIN=28 -UscaLAPACK -Ufock_dblbufOBJECTS_GPU= fftmpiw.o fftmpi_map.o fft3dlib.o fftw3d_gpu.o fftmpiw_gpu.oCC         = iccCXX        = icpcCFLAGS     = -fPIC -DADD_ -Wall -qopenmp -DMAGMA_WITH_MKL -DMAGMA_SETAFFINITY -DGPUSHMEM=300 -DHAVE_CUBLASCUDA_ROOT  ?= /usr/local/cuda/NVCC       := $(CUDA_ROOT)/bin/nvcc -ccbin=icc -allow-unsupported-compilerCUDA_LIB   := -L$(CUDA_ROOT)/lib64 -lnvToolsExt -lcudart -lcuda -lcufft -lcublasGENCODE_ARCH    := -gencode=arch=compute_60,code=\"sm_60,compute_60\" \                                   -gencode=arch=compute_70,code=\"sm_70,compute_70\" \                                   -gencode=arch=compute_72,code=\"sm_72,compute_72\" \                                   -gencode=arch=compute_80,code=\"sm_80,compute_80\"I_MPI_ROOT = /opt/intel/oneapi/mpi/2021.2.0MPI_INC    = $(I_MPI_ROOT)/include/

看完了这篇文章,相信你对"VASP中GPU并行编译安装的示例分析"有了一定的了解,如果想了解更多相关知识,欢迎关注行业资讯频道,感谢各位的阅读!

0