Updating Kokkos lib
This commit is contained in:
@ -1,15 +1,17 @@
|
||||
KOKKOS_PATH = ../../../..
|
||||
SRC = $(wildcard *.cpp)
|
||||
KOKKOS_SRC_PATH = ${KOKKOS_PATH}
|
||||
SRC = $(wildcard ${KOKKOS_SRC_PATH}/example/tutorial/Algorithms/01_random_numbers/*.cpp)
|
||||
vpath %.cpp $(sort $(dir $(SRC)))
|
||||
|
||||
default: build
|
||||
echo "Start Build"
|
||||
|
||||
ifneq (,$(findstring Cuda,$(KOKKOS_DEVICES)))
|
||||
CXX = ../../../../config/nvcc_wrapper
|
||||
CXX = ${KOKKOS_PATH}/bin/nvcc_wrapper
|
||||
CXXFLAGS = -O3
|
||||
LINK = ${CXX}
|
||||
LINKFLAGS =
|
||||
EXE = $(SRC:.cpp=.cuda)
|
||||
EXE = 01_random_numbers.cuda
|
||||
KOKKOS_DEVICES = "Cuda,OpenMP"
|
||||
KOKKOS_ARCH = "SNB,Kepler35"
|
||||
else
|
||||
@ -17,20 +19,23 @@ CXX = g++
|
||||
CXXFLAGS = -O3
|
||||
LINK = ${CXX}
|
||||
LINKFLAGS =
|
||||
EXE = $(SRC:.cpp=.host)
|
||||
EXE = 01_random_numbers.host
|
||||
KOKKOS_DEVICES = "OpenMP"
|
||||
KOKKOS_ARCH = "SNB"
|
||||
endif
|
||||
|
||||
DEPFLAGS = -M
|
||||
|
||||
OBJ = $(SRC:.cpp=.o)
|
||||
OBJ = $(notdir $(SRC:.cpp=.o))
|
||||
LIB =
|
||||
|
||||
include $(KOKKOS_PATH)/Makefile.kokkos
|
||||
|
||||
build: $(EXE)
|
||||
|
||||
test: $(EXE)
|
||||
./$(EXE)
|
||||
|
||||
$(EXE): $(OBJ) $(KOKKOS_LINK_DEPENDS)
|
||||
$(LINK) $(KOKKOS_LDFLAGS) $(LINKFLAGS) $(EXTRA_PATH) $(OBJ) $(KOKKOS_LIBS) $(LIB) -o $(EXE)
|
||||
|
||||
@ -40,4 +45,4 @@ clean: kokkos-clean
|
||||
# Compilation rules
|
||||
|
||||
%.o:%.cpp $(KOKKOS_CPP_DEPENDS)
|
||||
$(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) $(EXTRA_INC) -c $<
|
||||
$(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) $(EXTRA_INC) -c $< -o $(notdir $@)
|
||||
|
||||
@ -71,11 +71,13 @@ typedef Kokkos::HostSpace::execution_space DefaultHostType;
|
||||
template<class GeneratorPool>
|
||||
struct generate_random {
|
||||
|
||||
// The GeneratorPool
|
||||
GeneratorPool rand_pool;
|
||||
|
||||
// Output View for the random numbers
|
||||
Kokkos::View<uint64_t*> vals;
|
||||
|
||||
// The GeneratorPool
|
||||
GeneratorPool rand_pool;
|
||||
|
||||
int samples;
|
||||
|
||||
// Initialize all members
|
||||
@ -139,8 +141,8 @@ int main(int argc, char* args[]) {
|
||||
Kokkos::fence();
|
||||
double time_1024 = timer.seconds();
|
||||
|
||||
printf("#Time XorShift64*: %lf %lf\n",time_64,1.0e-9*samples*size/time_64 );
|
||||
printf("#Time XorShift1024*: %lf %lf\n",time_1024,1.0e-9*samples*size/time_1024 );
|
||||
printf("#Time XorShift64*: %e %e\n",time_64,1.0e-9*samples*size/time_64 );
|
||||
printf("#Time XorShift1024*: %e %e\n",time_1024,1.0e-9*samples*size/time_1024 );
|
||||
|
||||
Kokkos::deep_copy(vals.h_view,vals.d_view);
|
||||
|
||||
|
||||
@ -1,24 +1,43 @@
|
||||
default:
|
||||
cd ./01_random_numbers; \
|
||||
make -j 4
|
||||
ifndef KOKKOS_PATH
|
||||
MAKEFILE_PATH := $(abspath $(lastword $(MAKEFILE_LIST)))
|
||||
KOKKOS_PATH = $(subst Makefile,,$(MAKEFILE_PATH))../../..
|
||||
endif
|
||||
|
||||
openmp:
|
||||
cd ./01_random_numbers; \
|
||||
make -j 4 KOKKOS_DEVICES=OpenMP
|
||||
ifndef KOKKOS_SETTINGS
|
||||
KOKKOS_SETTINGS = "KOKKOS_PATH=${KOKKOS_PATH}"
|
||||
ifdef KOKKOS_ARCH
|
||||
KOKKOS_SETTINGS += "KOKKOS_ARCH=${KOKKOS_ARCH}"
|
||||
endif
|
||||
ifdef KOKKOS_DEVICES
|
||||
KOKKOS_SETTINGS += "KOKKOS_DEVICES=${KOKKOS_DEVICES}"
|
||||
endif
|
||||
ifdef KOKKOS_OPTIONS
|
||||
KOKKOS_SETTINGS += "KOKKOS_OPTIONS=${KOKKOS_OPTIONS}"
|
||||
endif
|
||||
ifdef KOKKOS_CUDA_OPTIONS
|
||||
KOKKOS_SETTINGS += "KOKKOS_CUDA_OPTIONS=${KOKKOS_CUDA_OPTIONS}"
|
||||
endif
|
||||
endif
|
||||
|
||||
pthreads:
|
||||
build:
|
||||
mkdir -p 01_random_numbers
|
||||
cd ./01_random_numbers; \
|
||||
make -j 4 KOKKOS_DEVICES=Pthreads
|
||||
make build -j 4 -f ${KOKKOS_PATH}/example/tutorial/Algorithms/01_random_numbers/Makefile ${KOKKOS_SETTINGS}
|
||||
|
||||
serial:
|
||||
build-insource:
|
||||
cd ./01_random_numbers; \
|
||||
make -j 4 KOKKOS_DEVICES=Serial
|
||||
|
||||
cuda:
|
||||
make build -j 4 ${KOKKOS_SETTINGS}
|
||||
test:
|
||||
cd ./01_random_numbers; \
|
||||
make -j 4 KOKKOS_DEVICES=Cuda,Serial
|
||||
make test -j 4 -f ${KOKKOS_PATH}/example/tutorial/Algorithms/01_random_numbers/Makefile ${KOKKOS_SETTINGS}
|
||||
|
||||
test-insource:
|
||||
cd ./01_random_numbers; \
|
||||
make test -j 4 ${KOKKOS_SETTINGS}
|
||||
clean:
|
||||
cd ./01_random_numbers; \
|
||||
make clean
|
||||
make clean -f ${KOKKOS_PATH}/example/tutorial/Algorithms/01_random_numbers/Makefile ${KOKKOS_SETTINGS}
|
||||
|
||||
clean-insource:
|
||||
cd ./01_random_numbers; \
|
||||
make clean ${KOKKOS_SETTINGS}
|
||||
|
||||
Reference in New Issue
Block a user