From 6357f19260179b7a054df4f8aa82e83c5f88f964 Mon Sep 17 00:00:00 2001 From: Trung Nguyen Date: Mon, 27 Dec 2021 00:14:04 -0600 Subject: [PATCH] Added back Makefile.mpi in lib/gpu/ to be consistent with documentation; updated Makefile.*; and removed the unnecessary Makefile.turing --- lib/gpu/Makefile.cuda_mps | 2 +- lib/gpu/Makefile.linux | 2 +- lib/gpu/Makefile.linux_multi | 4 +-- lib/gpu/Makefile.mpi | 59 ++++++++++++++++++++++++++++++++++++ lib/gpu/Makefile.serial | 26 ++++------------ lib/gpu/Makefile.turing | 23 -------------- 6 files changed, 69 insertions(+), 47 deletions(-) create mode 100644 lib/gpu/Makefile.mpi delete mode 100644 lib/gpu/Makefile.turing diff --git a/lib/gpu/Makefile.cuda_mps b/lib/gpu/Makefile.cuda_mps index f52bd07fcf..d7820e4c34 100644 --- a/lib/gpu/Makefile.cuda_mps +++ b/lib/gpu/Makefile.cuda_mps @@ -1,5 +1,5 @@ # /* ---------------------------------------------------------------------- -# Generic Linux Makefile for CUDA +# Generic Linux Makefile for CUDA with the Multi-Process Service (MPS) # - change CUDA_ARCH for your GPU # ------------------------------------------------------------------------- */ diff --git a/lib/gpu/Makefile.linux b/lib/gpu/Makefile.linux index 0b3084cbe9..fe4e57ac77 100644 --- a/lib/gpu/Makefile.linux +++ b/lib/gpu/Makefile.linux @@ -1,5 +1,5 @@ # /* ---------------------------------------------------------------------- -# Generic Linux Makefile for CUDA +# Generic Linux Makefile for CUDA # - Change CUDA_ARCH for your GPU # ------------------------------------------------------------------------- */ diff --git a/lib/gpu/Makefile.linux_multi b/lib/gpu/Makefile.linux_multi index 05b869879e..f3d89fd9f0 100644 --- a/lib/gpu/Makefile.linux_multi +++ b/lib/gpu/Makefile.linux_multi @@ -1,6 +1,6 @@ # /* ---------------------------------------------------------------------- -# Generic Linux Makefile for CUDA -# - Change CUDA_ARCH for your GPU +# Generic Linux Makefile for CUDA complied for multiple compute capabilities +# - Add your GPU to CUDA_CODE # ------------------------------------------------------------------------- */ # which file will be copied to Makefile.lammps diff --git a/lib/gpu/Makefile.mpi b/lib/gpu/Makefile.mpi new file mode 100644 index 0000000000..be3c582632 --- /dev/null +++ b/lib/gpu/Makefile.mpi @@ -0,0 +1,59 @@ +# /* ---------------------------------------------------------------------- +# Generic Linux Makefile for CUDA +# - Change CUDA_ARCH for your GPU +# ------------------------------------------------------------------------- */ + +# which file will be copied to Makefile.lammps + +EXTRAMAKE = Makefile.lammps.standard + +ifeq ($(CUDA_HOME),) +CUDA_HOME = /usr/local/cuda +endif + +NVCC = nvcc + +# Pascal hardware +CUDA_ARCH = -arch=sm_60 +#CUDA_ARCH = -arch=sm_61 + +# Volta hardware +#CUDA_ARCH = -arch=sm_70 + +# Turing hardware +#CUDA_ARCH = -arch=sm_75 + +# Ampere hardware +#CUDA_ARCH = -arch=sm_80 +#CUDA_ARCH = -arch=sm_86 + +# this setting should match LAMMPS Makefile +# one of LAMMPS_SMALLBIG (default), LAMMPS_BIGBIG and LAMMPS_SMALLSMALL + +LMP_INC = -DLAMMPS_SMALLBIG + +# precision for GPU calculations +# -D_SINGLE_SINGLE # Single precision for all calculations +# -D_DOUBLE_DOUBLE # Double precision for all calculations +# -D_SINGLE_DOUBLE # Accumulation of forces, etc. in double + +CUDA_PRECISION = -D_SINGLE_DOUBLE + +CUDA_INCLUDE = -I$(CUDA_HOME)/include +CUDA_LIB = -L$(CUDA_HOME)/lib64 -L$(CUDA_HOME)/lib64/stubs +CUDA_OPTS = -DUNIX -O3 --use_fast_math $(LMP_INC) -Xcompiler -fPIC + +CUDR_CPP = mpicxx -DMPI_GERYON -DUCL_NO_EXIT -DMPICH_IGNORE_CXX_SEEK -DOMPI_SKIP_MPICXX=1 -fPIC -std=c++11 +CUDR_OPTS = -O2 $(LMP_INC) # -xHost -no-prec-div -ansi-alias + +BIN_DIR = ./ +OBJ_DIR = ./ +LIB_DIR = ./ +AR = ar +BSH = /bin/sh + +# GPU binning not recommended for most modern GPUs +CUDPP_OPT = #-DUSE_CUDPP -Icudpp_mini + +include Nvidia.makefile + diff --git a/lib/gpu/Makefile.serial b/lib/gpu/Makefile.serial index d24b03f8d6..a1339fffec 100644 --- a/lib/gpu/Makefile.serial +++ b/lib/gpu/Makefile.serial @@ -1,5 +1,5 @@ # /* ---------------------------------------------------------------------- -# Generic Linux Makefile for CUDA +# Generic Linux Makefile for CUDA without MPI libraries # - Change CUDA_ARCH for your GPU # ------------------------------------------------------------------------- */ @@ -13,26 +13,8 @@ endif NVCC = nvcc -# obsolete hardware. not supported by current drivers anymore. -#CUDA_ARCH = -arch=sm_13 -#CUDA_ARCH = -arch=sm_10 -DCUDA_PRE_THREE - -# Fermi hardware -#CUDA_ARCH = -arch=sm_20 -#CUDA_ARCH = -arch=sm_21 - -# Kepler hardware -#CUDA_ARCH = -arch=sm_30 -#CUDA_ARCH = -arch=sm_32 -#CUDA_ARCH = -arch=sm_35 -#CUDA_ARCH = -arch=sm_37 - -# Maxwell hardware -CUDA_ARCH = -arch=sm_50 -#CUDA_ARCH = -arch=sm_52 - # Pascal hardware -#CUDA_ARCH = -arch=sm_60 +CUDA_ARCH = -arch=sm_60 #CUDA_ARCH = -arch=sm_61 # Volta hardware @@ -41,6 +23,10 @@ CUDA_ARCH = -arch=sm_50 # Turing hardware #CUDA_ARCH = -arch=sm_75 +# Ampere hardware +#CUDA_ARCH = -arch=sm_80 +#CUDA_ARCH = -arch=sm_86 + # this setting should match LAMMPS Makefile # one of LAMMPS_SMALLBIG (default), LAMMPS_BIGBIG and LAMMPS_SMALLSMALL diff --git a/lib/gpu/Makefile.turing b/lib/gpu/Makefile.turing deleted file mode 100644 index 390de9c558..0000000000 --- a/lib/gpu/Makefile.turing +++ /dev/null @@ -1,23 +0,0 @@ -NVCC = $(CUDA_HOME)/bin/nvcc -EXTRAMAKE = Makefile.lammps.standard - -CUDA_ARCH = -arch=sm_75 -CUDA_PRECISION = -D_SINGLE_DOUBLE -CUDA_INCLUDE = -I$(CUDA_HOME)/include -CUDA_LIB = -L$(CUDA_HOME)/lib64 -Xlinker -rpath -Xlinker $(CUDA_HOME)/lib64 -lcudart -CUDA_OPTS = -DUNIX -O3 --use_fast_math --ftz=true - -CUDR_CPP = mpic++ -DMPI_GERYON -DUCL_NO_EXIT -I$(CUDA_HOME)/include -CUDR_OPTS = -O3 -ffast-math -funroll-loops -DMPI_GERYON -DLAMMPS_SMALLBIG - -BIN_DIR = . -OBJ_DIR = obj -LIB_DIR = . -AR = ar -BSH = /bin/sh - -# GPU binning not recommended with most modern GPUs -CUDPP_OPT = #-DUSE_CUDPP -Icudpp_mini - -include Nvidia.makefile -