Files
lammps/lib/kokkos/core/unit_test/UnitTestConfig.make
2017-12-15 16:42:06 -07:00

53 lines
1.9 KiB
Makefile

KOKKOS_PATH = ../..
# See $(KOKKOS_PATH)/Makefile.kokkos and $(KOKKOS_PATH)/generate_makefile.bash
KOKKOS_ARCH_OPTIONS="None AMDAVX ARMv80 ARMv81 ARMv8-ThunderX \
BGQ Power7 Power8 Power9 \
WSM SNB HSW BDW SKX KNC KNL \
Kepler Kepler30 Kepler32 Kepler35 Kepler37 \
Maxwell Maxwell50 Maxwell52 Maxwell53 Pascal60 Pascal61"
#KOKKOS_ARCH_OPTIONS="AMDAVX"
KOKKOS_DEVICE_OPTIONS="Cuda ROCm OpenMP Pthread Serial Qthreads"
#KOKKOS_DEVICE_OPTIONS="Cuda"
# Configure paths to enable environment query in Makefile.kokkos to work
ROCM_HCC_PATH="config"
CXX="./config/cxx"
ipath=env CXX=$(CXX) env PATH=./config:$$PATH env ROCM_HCC_PATH=$(ROCM_HCC_PATH)
# Defined in core/src/Makefile -- this should be consistent
KOKKOS_MAKEFILE=Makefile.kokkos
KOKKOS_CMAKEFILE=kokkos_generated_settings.cmake
# Defined in Makefile.kokkos -- this should be consistent
KOKKOS_INTERNAL_CONFIG_TMP=KokkosCore_config.tmp
KOKKOS_CONFIG_HEADER=KokkosCore_config.h
d='\#'
# diff => 0 is no difference. if => 0 is false
testmake=if test "`testmake.sh $1 $2 $3`" = 'Passed'; then echo OK $d $1; else echo not OK $d $1; fi
testconf=if test "`diffconfig.sh $1`" = 'Passed'; then echo OK $d $1; else echo not OK $d $1; fi
# testing tmp and cmakefile files is unnecessary here
test:
@for karch in "$(KOKKOS_ARCH_OPTIONS)"; do \
for device in "$(KOKKOS_DEVICE_OPTIONS)"; do \
$(ipath) KOKKOS_DEVICES=$$device KOKKOS_ARCH=$$karch make -e -f ../src/Makefile build-makefile-cmake-kokkos; \
rm -f $(KOKKOS_INTERNAL_CONFIG_TMP) $(KOKKOS_CMAKEFILE); \
prfx="$$karch"_"$$device"_; \
newmake="$$prfx"$(KOKKOS_MAKEFILE); \
newconf="$$prfx"$(KOKKOS_CONFIG_HEADER); \
mv $(KOKKOS_MAKEFILE) config/tmpstore/$$newmake; \
mv $(KOKKOS_CONFIG_HEADER) config/tmpstore/$$newconf; \
$(call testmake,$$newmake,$$karch,$$device); \
$(call testconf,$$newconf); \
done; \
done
test-cmake:
@cd config/cmaketest; \
cmake . ; \
make test