Introducing new OFFLOAD_TARGET to controll cuda or hip backend in DBCSR (see https://github.com/cp2k/cp2k/pull/1582)

This commit is contained in:
alazzaro 2021-09-11 16:15:19 -05:00 committed by Alfio Lazzaro
parent 16e7279fad
commit f1a4892f2e
3 changed files with 28 additions and 10 deletions

View file

@ -19,6 +19,7 @@ GNU_PATH = /store/psi/psi01/mkrack/daint/gpu/gnu/8.3.0
MPI_PATH = $(GNU_PATH)/mpich
GPUVER = P100
OFFLOAD_TARGET = cuda
CC = cc
CXX = CC

View file

@ -7,12 +7,24 @@ EXTSDEPS_LIB = $(LIBEXTSDIR)/dbcsr/libdbcsr$(ARCHIVE_EXT)
EXTSDEPS_MOD = $(OBJEXTSDIR)/dbcsr/dbcsr_api.mod $(OBJEXTSDIR)/dbcsr/dbcsr_tensor_api.mod
$(EXTSDEPS_MOD) : ; # override builtin .mod rule to prevent circular dependency
# Set Acceleration flags
DBCSR_USE_ACCEL := ""
DBCSR_ACC := ""
DBCSR_ACCFLAGS := ""
ifneq (,$(findstring __DBCSR_ACC,$(OFFLOAD_FLAGS)))
ACC := $(OFFLOAD_CC)
ACCFLAGS := $(OFFLOAD_FLAGS)
# By default, we use CUDA if OFFLOAD_TARGET is not specified
ifeq (,$(OFFLOAD_TARGET))
DBCSR_USE_ACCEL=cuda
else
ACC := ""
ACCFLAGS := ""
DBCSR_USE_ACCEL = $(OFFLOAD_TARGET)
endif
ifeq (cuda,$(DBCSR_USE_ACCEL))
DBCSR_ACC := $(OFFLOAD_CC)
DBCSR_ACCFLAGS := $(OFFLOAD_FLAGS)
else ifeq (hip,$(DBCSR_USE_ACCEL))
DBCSR_ACC := $(CXX)
DBCSR_ACCFLAGS := $(CXXFLAGS)
endif
endif
extversions: dbcsrversion
@ -25,14 +37,16 @@ dbcsr:
ARCHFILE=$(ARCHDIR)/$(ARCH).$(ONEVERSION) \
LIBDIR=$(LIBEXTSDIR)/$@ \
OBJDIR=$(OBJEXTSDIR)/$@ \
ACC="$(ACC)" \
ACCFLAGS="$(ACCFLAGS)"
USE_ACCEL="$(DBCSR_USE_ACCEL)" \
ACC="$(DBCSR_ACC)" \
ACCFLAGS="$(DBCSR_ACCFLAGS)"
dbcsrversion:
@$(MAKE) -C $(EXTSHOME)/dbcsr -f $(EXTSHOME)/build_dbcsr/Makefile \
ARCHFILE=$(ARCHDIR)/$(ARCH).$(ONEVERSION) \
ACC="$(ACC)" \
ACCFLAGS="$(ACCFLAGS)" \
USE_ACCEL="$(DBCSR_USE_ACCEL)" \
ACC="$(DBCSR_ACC)" \
ACCFLAGS="$(DBCSR_ACCFLAGS)" \
version
dbcsrclean:
@ -41,6 +55,7 @@ dbcsrclean:
ARCHFILE=$(ARCHDIR)/$(ARCH).$(ONEVERSION) \
LIBDIR=$(LIBEXTSDIR)/$@ \
OBJDIR=$(OBJEXTSDIR)/$@ \
ACC="$(ACC)" \
ACCFLAGS="$(ACCFLAGS)" \
USE_ACCEL="$(DBCSR_USE_ACCEL)" \
ACC="$(DBCSR_ACC)" \
ACCFLAGS="$(DBCSR_ACCFLAGS)" \
clean

View file

@ -239,6 +239,7 @@ gen_arch_file() {
GPUVER = \${GPUVER}
OFFLOAD_CC = \${NVCC}
OFFLOAD_FLAGS = \${NVFLAGS}
OFFLOAD_TARGET = cuda
EOF
fi
@ -248,6 +249,7 @@ EOF
GPUVER = \${GPUVER}
OFFLOAD_CC = \${ROCM_PATH}/hip/bin/hipcc
OFFLOAD_FLAGS = \${HIP_FLAGS} \${HIP_INCLUDES}
OFFLOAD_TARGET = hip
EOF
fi