Updating Kokkos lib

This commit is contained in:
Stan Moore
2017-01-09 10:39:46 -07:00
parent 51fa33a407
commit a9f0b7d523
359 changed files with 20077 additions and 27456 deletions

View File

@ -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 $@)

View File

@ -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);

View File

@ -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}