|
本帖最后由 五十八 于 2018-3-28 18:38 编辑
17th Apr发布了新版本的呢的VASP 5.4.4 加入了SCAN 于是决定试一试这个方法:
环境说明
CPU E5 2667 V4
GPU K80*2
MEM 128G
INTEL PARALLEL XE 2017
CUDA 8.0.44
因为之前一直在用Terachem 忘记把CUDA换回来了,就这么用吧,不过竟然也成功了,确实是做了适配。
一 编译器环境
source /path of intel parallel xe 2017/bin/psxevars.sh
接着最好把CUDA也加到env里面去
二 编译
然后把intel的那个arch cp成makefile.include 放到vasp makefile一起的目录下
然后make all 会直接出现std gam 和 ncl 三个版本在bin路径下,如果跟我一样的K80 记得comment掉sm_60的部分
然后make gpu的时候由于使用了2017版本的编译器 会出现cuda报错 说只支持2015、2016的ic编译器 这个时候找到这个文件 找到那一行 把1500改成1700 就妥了_(:з」∠)_
实际测试也没有问题
当然 这期间我也在FLAG中加入了-heap-arrays 64 来以防万一。
总结
VASP新的版本有了54pot文件,而且有了metaGGA和SCAN等等 同时从代码的规整程度看得出 要么是换了新的人整理过程序要么就是写程序的人换了星座(大雾)
其次,intel的版本最好大于2015 (我觉着2015就好都不用改了cuda7.5和8.0都支持)
以上
############################################################
对于arch=compute_60 因为我针对k80删减了CUDA 实在抱歉因为(CUDA7.5的用户请注意还是要去掉sm_60的部分):
sm_61 => GTX 1080, GTX 1070
sm_62 =>?
REF:https://reviews.llvm.org/D22068
偶然想到这个用到的是OPENACC,神威也是OPENACC不知道移植的可能性
下面的是现在makefile.include 在本地台式机的GTX1070 SLI上测试成功
作为一款优秀的软件 VASP如今的makefile非常人性化稍加修改而且留给了大家很多余地
# Precompiler options
CPP_OPTIONS= -DHOST=\"LinuxIFC\"\
-DMPI -DMPI_BLOCK=16000 \
-Duse_collective \
-DscaLAPACK \
-DCACHE_SIZE=16000 \
-Davoidalloc \
-Duse_bse_te \
-Dtbdyn \
-Duse_shmem
CPP = fpp -f_com=no -free -w0 $*$(FUFFIX) $*$(SUFFIX) $(CPP_OPTIONS)
FC = mpiifort
FCL = mpiifort -mkl=sequential -lstdc++
FREE = -free -names lowercase -heap-arrays 64
FFLAGS = -assume byterecl -w
OFLAG = -O2
OFLAG_IN = $(OFLAG)
DEBUG = -O0
MKL_PATH = $(MKLROOT)/lib/intel64
BLAS =
LAPACK =
BLACS = -lmkl_blacs_intelmpi_lp64
SCALAPACK = $(MKL_PATH)/libmkl_scalapack_lp64.a $(BLACS)
OBJECTS = fftmpiw.o fftmpi_map.o fft3dlib.o fftw3d.o
INCS =-I$(MKLROOT)/include/fftw
LLIBS = $(SCALAPACK) $(LAPACK) $(BLAS)
OBJECTS_O1 += fftw3d.o fftmpi.o fftmpiw.o
OBJECTS_O2 += fft3dlib.o
# For what used to be vasp.5.lib
CPP_LIB = $(CPP)
FC_LIB = $(FC)
CC_LIB = icc
CFLAGS_LIB = -O
FFLAGS_LIB = -O1
FREE_LIB = $(FREE)
OBJECTS_LIB= linpack_double.o getshmem.o
# For the parser library
CXX_PARS = icpc
LIBS += parser
LLIBS += -Lparser -lparser -lstdc++
# Normally no need to change this
SRCDIR = ../../src
BINDIR = ../../bin
#================================================
# 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 -lcublas
GENCODE_ARCH := -gencode=arch=compute_30,code=\"sm_30,compute_30\" \
-gencode=arch=compute_35,code=\"sm_35,compute_35\" \
-gencode=arch=compute_61,code=\"sm_61,compute_61\"
MPI_INC = $(I_MPI_ROOT)/include64/
http://pan.baidu.com/s/1nv2rsu9
68r2
>>>>>>>>>>>>>>
补充:
如果大家使用v4的cpu或者scale的cpu 请使用 AVX2/AVX512 来编译 如果在KNL上运行VASP 请务必使用SIMD/OMP来编译(此时采用-mkl=parallel)
添加AVX方法如下:
-xCORE-AVX2
-xCORE-AVX512
此时候推荐使用(-mkl=cluster)
|
评分 Rate
-
查看全部评分 View all ratings
|