1# /* ---------------------------------------------------------------------- 2# Generic Linux Makefile for CUDA 3# - Change CUDA_ARCH for your GPU 4# ------------------------------------------------------------------------- */ 5 6# which file will be copied to Makefile.lammps 7 8EXTRAMAKE = Makefile.lammps.standard 9 10ifeq ($(CUDA_HOME),) 11CUDA_HOME = /usr/local/cuda 12endif 13 14NVCC = nvcc 15 16# obsolete hardware. not supported by current drivers anymore. 17#CUDA_ARCH = -arch=sm_13 18#CUDA_ARCH = -arch=sm_10 -DCUDA_PRE_THREE 19 20# Fermi hardware 21#CUDA_ARCH = -arch=sm_20 22#CUDA_ARCH = -arch=sm_21 23 24# Kepler hardware 25#CUDA_ARCH = -arch=sm_30 26#CUDA_ARCH = -arch=sm_32 27#CUDA_ARCH = -arch=sm_35 28#CUDA_ARCH = -arch=sm_37 29 30# Maxwell hardware 31CUDA_ARCH = -arch=sm_50 32#CUDA_ARCH = -arch=sm_52 33 34# Pascal hardware 35#CUDA_ARCH = -arch=sm_60 36#CUDA_ARCH = -arch=sm_61 37 38# Volta hardware 39#CUDA_ARCH = -arch=sm_70 40 41# Turing hardware 42#CUDA_ARCH = -arch=sm_75 43 44# this setting should match LAMMPS Makefile 45# one of LAMMPS_SMALLBIG (default), LAMMPS_BIGBIG and LAMMPS_SMALLSMALL 46 47LMP_INC = -DLAMMPS_SMALLBIG 48 49# precision for GPU calculations 50# -D_SINGLE_SINGLE # Single precision for all calculations 51# -D_DOUBLE_DOUBLE # Double precision for all calculations 52# -D_SINGLE_DOUBLE # Accumulation of forces, etc. in double 53 54CUDA_PRECISION = -D_SINGLE_DOUBLE 55 56CUDA_INCLUDE = -I$(CUDA_HOME)/include 57CUDA_LIB = -L$(CUDA_HOME)/lib64 -L$(CUDA_HOME)/lib64/stubs -L../../src/STUBS -lmpi_stubs 58CUDA_OPTS = -DUNIX -O3 --use_fast_math $(LMP_INC) -Xcompiler -fPIC 59 60CUDR_CPP = g++ -DMPI_GERYON -DUCL_NO_EXIT -fPIC -I../../src/STUBS -std=c++11 61CUDR_OPTS = -O2 $(LMP_INC) # -xHost -no-prec-div -ansi-alias 62 63BIN_DIR = ./ 64OBJ_DIR = ./ 65LIB_DIR = ./ 66AR = ar 67BSH = /bin/sh 68 69# GPU binning not recommended for most modern GPUs 70CUDPP_OPT = #-DUSE_CUDPP -Icudpp_mini 71 72include Nvidia.makefile 73 74