-
Notifications
You must be signed in to change notification settings - Fork 40
/
Copy pathmakefile
54 lines (43 loc) · 1.53 KB
/
makefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
CU=/usr/local/cuda/bin/nvcc
CC=g++
LIBS=-lcublas -lcusparse
CPP_SOURCE=./src/cpp
CUDA_SOURCE=./src/cuda
TEST_SOURCE=./test
MAIN_SOURCE=./benchmark
SCRIPT_SOURCE=./scripts
INCLUDE_DIR=-I./src/cpp/include -I./src/cuda/include -I./src/cuda/
BUILD=./builds
STD=c++11
FLAGS=-gencode=arch=compute_35,code=sm_35 \
-gencode=arch=compute_50,code=sm_50 \
-gencode=arch=compute_52,code=sm_52 \
-gencode=arch=compute_60,code=sm_60 \
-gencode=arch=compute_61,code=sm_61 \
-gencode=arch=compute_70,code=sm_70 \
-gencode=arch=compute_75,code=sm_75 \
-gencode=arch=compute_60,code=compute_60
DEP=$(CUDA_SOURCE)/dense.cu \
$(CUDA_SOURCE)/sparse.cu \
$(CUDA_SOURCE)/quantization_int.cu \
$(CUDA_SOURCE)/quantization_8bit.cu \
$(CUDA_SOURCE)/quantization_4bit.cu \
$(BUILD)/%.o: $(CPP_SOURCE)/%.cpp
$(CC) -std=$(STD) $(INCLUDE_DIR) -c $< -o $@
$(BUILD)/%.o: $(TEST_SOURCE)/%.cpp
$(CC) -std=$(STD) $(INCLUDE_DIR) -c $< -o $@
$(BUILD)/%.o: $(CUDA_SOURCE)/%.cu
$(CU) -std=$(STD) $(INCLUDE_DIR) -c $< -o $@ $(FLAGS)
$(BUILD)/%.o: $(MAIN_SOURCE)/%.cu $(DEP)
$(CU) -std=$(STD) $(INCLUDE_DIR) -c $< -o $@ $(FLAGS)
benchmark_%: $(BUILD)/benchmark_%.o $(BUILD)/utils.o
$(CU) $^ -std=$(STD) -o $(BUILD)/$@ $(LIBS) $(FLAGS)
# sh ${SCRIPT_SOURCE}/[email protected]
test: $(BUILD)/test.o $(BUILD)/utils.o
$(CC) $^ -std=$(STD) -o $(BUILD)/$@ -g
./builds/test
dense_ptx: $(MAIN_SOURCE)/benchmark_dense.cu
$(CU) $^ $(INCLUDE_DIR) -ptx -src-in-ptx -lineinfo -gencode=arch=compute_60,code=compute_60 --ptxas-options=-v
.PHONY: clean
clean:
rm $(BUILD)/*