Statistiques
| Révision :

root / Pi / C / Kokkos / Makefile @ 188

Historique | Voir | Annoter | Télécharger (1,46 ko)

1
KOKKOS_PATH = ./kokkos-2.7.00
2
KOKKOS_SRC_PATH = ${KOKKOS_PATH}
3
# SRC = $(wildcard ${KOKKOS_SRC_PATH}/example/tutorial/07_Pi/*.cpp)
4
SRC = Pi_Kokkos.cpp
5
vpath %.cpp $(sort $(dir $(SRC)))
6

    
7
COMPUTING=INT32 INT64 FP32 FP64
8
MARSAGLIA=SHR3 CONG MWC KISS
9

    
10
# COMPUTING=FP32
11
# MARSAGLIA=MWC
12

    
13
default: build
14
	echo "Start Build"
15

    
16
ifneq (,$(findstring Cuda,$(KOKKOS_DEVICES)))
17
CXX = ${KOKKOS_PATH}/bin/nvcc_wrapper
18
CXXFLAGS = -O3
19
LINK = ${CXX}
20
LDFLAGS = 
21
EXE=cuda
22
else
23
CXX = g++
24
CXXFLAGS = -O3
25
LINK = ${CXX}
26
LDFLAGS =  
27
EXE=host
28
endif
29

    
30
DEPFLAGS = -M
31

    
32
OBJ = $(foreach TVAR,$(COMPUTING),$(foreach TRND,$(MARSAGLIA),$(notdir $(SRC:.cpp=))_$(TVAR)_$(TRND).o ) )
33
LIB =
34

    
35
include $(KOKKOS_PATH)/Makefile.kokkos
36

    
37
build: $(EXE)
38

    
39
test: $(EXE)
40
	./$(EXE)
41

    
42
$(EXE): $(OBJ) $(KOKKOS_LINK_DEPENDS)
43
	@echo $(OBJ)
44
	$(foreach TVAR,$(COMPUTING),$(foreach TRND,$(MARSAGLIA), $(LINK) $(KOKKOS_LDFLAGS) $(LDFLAGS) $(EXTRA_PATH) $(SRC:.cpp=)_$(TVAR)_$(TRND).o $(KOKKOS_LIBS) $(LIB)  -o $(SRC:.cpp=)_$(TVAR)_$(TRND).$(EXE) ; ) )
45

    
46
clean: kokkos-clean 
47
	rm -f *.o
48

    
49
mrproper: kokkos-clean 
50
	rm -f *.o *.cuda *.host
51

    
52
# Compilation rules
53

    
54
$(OBJ):$(SRC) $(KOKKOS_CPP_DEPENDS)
55
	$(foreach TVAR,$(COMPUTING),$(foreach TRND,$(MARSAGLIA),$(CXX) $(CFLAGS) -DT$(TVAR) -DT$(TRND) -DLONG -DTIME $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) $(EXTRA_INC) -c -o $(<:.cpp=)_$(TVAR)_$(TRND).o $< ; ) )
56

    
57
# %.o:%.cpp $(KOKKOS_CPP_DEPENDS)
58
# 	@echo $(OBJ2) 
59
# 	$(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) $(EXTRA_INC) -c $< -o $(notdir $@)
60