-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathmakefile
56 lines (39 loc) · 2.87 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
55
56
# For windows && opencv 4.2
# nvcc -w -I ..\opencv\build\include -L ..\opencv\build\x64\vc15\lib main.cu network.cu layers/layers.cu layers/pooling_layer.cu layers/relu_layer.cu layers/input_layer.cu layers/conv_layer.cu layers/fc_layer.cu layers/softmax_layer.cu layers/flatten_layer.cu kernels/softmax_kernel.cu kernels/update_kernel.cu kernels/fc_kernel.cu kernels/transpose_kernel.cu mnist_dataset/mnist.cpp data_core/data_loader.cu vmm/vmm.cpp trainer/utils.cu trainer/full_mem_trainer.cu trainer/min_mem_trainer.cu trainer/prefetching_heuristic_fetch_next.cu trainer/prefetching_heuristic_half_window.cu -lcudnn -lcublas -o test -lopencv_world420
home = /lustre/ssingh37/MoDNN
layers = conv_layer.o fc_layer.o flatten_layer.o input_layer.o layers.o pooling_layer.o softmax_layer.o relu_layer.o
layers_headers = $(home)/layers/conv_layer.h $(home)/layers/fc_layer.h $(home)/layers/flatten_layer.h $(home)/layers/input_layer.h $(home)/layers/layers.h $(home)/layers/pooling_layer.h $(home)/layers/softmax_layer.h $(home)/layers/relu_layer.h
kernels = fc_kernel.o transpose_kernel.o softmax_kernel.o update_kernel.o
trainers = full_mem_trainer.o min_mem_trainer.o prefetching_heuristic_half_window.o prefetching_heuristic_fetch_next.o offload_when_needed.o
cc = nvcc
flags = -arch=sm_35 -std=c++11
nvidia_flags = -lcudnn -lcublas
opencv_flags = -lopencv_imgcodecs -lopencv_imgproc -lopencv_core
CFLAGS = -I$(CUDNN_INCDIR)
LDFLAGS = -L$(CUDNN_LIBDIR)
all: main.o network.o $(layers) $(kernels) mnist.o data_loader.o vmm.o $(trainers) utils.o
$(cc) $(CFLAGS) $(LDFLAGS) $(flags) -o test main.o network.o $(layers) $(kernels) $(trainers) mnist.o data_loader.o vmm.o utils.o $(nvidia_flags)
main.o: $(home)/main.cu $(home)/layers/layers.h $(home)/mnist_dataset/mnist.h $(home)/data_core/data_loader.h $(home)/trainer/trainer.h
$(cc) -c $(CFLAGS) $(flags) $(home)/main.cu
network.o: $(home)/network.cu $(layer_headers) $(home)/vmm/vmm.h
$(cc) -c $(CFLAGS) $(flags) $(home)/network.cu
$(layers): %.o: $(home)/layers/%.cu $(home)/layers/%.h
$(cc) -c $(CFLAGS) $(flags) $< -o $@
$(kernels): %.o: $(home)/kernels/%.cu $(home)/layers/layers.h
$(cc) -c $(CFLAGS) $(flags) $< -o $@
$(trainers): %.o: $(home)/trainer/%.cu $(home)/trainer/trainer.h
$(cc) -c $(CFLAGS) $(flags) $< -o $@
mnist.o : $(home)/mnist_dataset/mnist.cpp $(home)/mnist_dataset/mnist.h $(home)/data_core/dataset.h
$(cc) -c $(CFLAGS) $(flags) $(home)/mnist_dataset/mnist.cpp
data_loader.o : $(home)/data_core/data_loader.cu $(home)/data_core/data_loader.h
$(cc) -c $(CFLAGS) $(flags) $(home)/data_core/data_loader.cu
vmm.o : $(home)/vmm/vmm.cpp $(home)/vmm/vmm.h
$(cc) -c $(CFLAGS) $(flags) $(home)/vmm/vmm.cpp
utils.o : $(home)/trainer/utils.cu $(home)/trainer/trainer.h
$(cc) -c $(CFLAGS) $(flags) $(home)/trainer/utils.cu
clean:
rm $(layers) $(kernels) test mnist.o data_loader.o vmm.o
submit: all
sbatch --share submit.sh
run: all
./test