mirror of https://github.com/lammps/lammps.git
105 lines
2.3 KiB
Makefile
105 lines
2.3 KiB
Makefile
# Settings that the LAMMPS build will import when this package library is used
|
|
|
|
OMP = yes
|
|
CUDA = no
|
|
HWLOC = no
|
|
AVX = no
|
|
MIC = no
|
|
LIBRT = no
|
|
DEBUG = no
|
|
|
|
CUDA_PATH = /usr/local/cuda
|
|
|
|
KOKKOS_PATH = ../../lib/kokkos
|
|
kokkos_SYSINC = -I$(KOKKOS_PATH)/core/src -I$(KOKKOS_PATH)/containers/src -I../
|
|
SRC_KOKKOS = $(wildcard $(KOKKOS_PATH)/core/src/impl/*.cpp)
|
|
|
|
ifeq ($(CUDA), yes)
|
|
kokkos_SYSINC += -x cu -DDEVICE=2 -DKOKKOS_HAVE_CUDA
|
|
SRC_KOKKOS += $(wildcard $(KOKKOS_PATH)/core/src/Cuda/*.cpp)
|
|
SRC_KOKKOS += $(wildcard $(KOKKOS_PATH)/core/src/Cuda/*.cu)
|
|
USRLIB += -L$(CUDA_PATH)/lib64 -lcudart -lcuda
|
|
ifeq ($(UVM), yes)
|
|
kokkos_SYSINC += -DKOKKOS_USE_UVM
|
|
endif
|
|
else
|
|
kokkos_SYSINC += -DDEVICE=1
|
|
endif
|
|
|
|
ifeq ($(CUSPARSE), yes)
|
|
kokkos_SYSINC += -DKOKKOS_USE_CUSPARSE
|
|
USRLIB += -lcusparse
|
|
endif
|
|
|
|
ifeq ($(CUBLAS), yes)
|
|
kokkos_SYSINC += -DKOKKOS_USE_CUBLAS
|
|
USRLIB += -lcublas
|
|
endif
|
|
|
|
ifeq ($(AVX), yes)
|
|
ifeq ($(CUDA), yes)
|
|
kokkos_SYSINC += -Xcompiler -mavx
|
|
else
|
|
kokkos_SYSINC += -mavx
|
|
endif
|
|
LINKFLAGS += -mavx
|
|
endif
|
|
|
|
ifeq ($(MIC), yes)
|
|
kokkos_SYSINC += -mmic
|
|
LINKFLAGS += -mmic
|
|
endif
|
|
|
|
ifeq ($(OMP),yes)
|
|
kokkos_SYSINC += -DKOKKOS_HAVE_OPENMP
|
|
SRC_KOKKOS += $(wildcard $(KOKKOS_PATH)/core/src/OpenMP/*.cpp)
|
|
ifeq ($(CUDA), yes)
|
|
kokkos_SYSINC += -Xcompiler -fopenmp
|
|
else
|
|
kokkos_SYSINC += -fopenmp
|
|
endif
|
|
LINKFLAGS += -fopenmp
|
|
else
|
|
kokkos_SYSINC += -DKOKKOS_HAVE_PTHREAD
|
|
USRLIB += -lpthread
|
|
SRC_KOKKOS += $(wildcard $(KOKKOS_PATH)/core/src/Threads/*.cpp)
|
|
endif
|
|
|
|
ifeq ($(HWLOC),yes)
|
|
kokkos_SYSINC += -DKOKKOS_HAVE_HWLOC -I$(HWLOCPATH)/include
|
|
USRLIB += -L$(HWLOCPATH)/lib -lhwloc
|
|
endif
|
|
|
|
ifeq ($(RED_PREC), yes)
|
|
kokkos_SYSINC += --use_fast_math
|
|
endif
|
|
|
|
ifeq ($(DEBUG), yes)
|
|
kokkos_SYSINC += -g -G -DKOKKOS_EXPRESSION_CHECK -DENABLE_TRACEBACK
|
|
LINKFLAGS += -g
|
|
endif
|
|
|
|
ifeq ($(LIBRT),yes)
|
|
kokkos_SYSINC += -DKOKKOS_USE_LIBRT -DPREC_TIMER
|
|
USRLIB += -lrt
|
|
endif
|
|
|
|
ifeq ($(CUDALDG), yes)
|
|
kokkos_SYSINC += -DKOKKOS_USE_LDG_INTRINSIC
|
|
endif
|
|
|
|
OBJ_KOKKOS_TMP = $(SRC_KOKKOS:.cpp=.o)
|
|
OBJ_KOKKOS = $(OBJ_KOKKOS_TMP:.cu=.o)
|
|
OBJ_KOKKOS_LINK = $(notdir $(OBJ_KOKKOS))
|
|
|
|
override OBJ += kokkos_depend.o
|
|
|
|
libkokkoscore.a: $(OBJ_KOKKOS)
|
|
ar cr libkokkoscore.a $(OBJ_KOKKOS_LINK)
|
|
|
|
kokkos_depend.o: libkokkoscore.a
|
|
touch kokkos_depend.cpp
|
|
$(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c kokkos_depend.cpp
|
|
|
|
kokkos_SYSLIB = -L./ $(LINKFLAGS) $(USRLIB)
|