53 lines
1.9 KiB
Makefile
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
|