Advertisement
Guest User

makefile

a guest
Jun 20th, 2019
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 5.02 KB | None | 0 0
  1. GPU=0
  2. CUDNN=0
  3. CUDNN_HALF=0
  4. OPENCV=1
  5. AVX=1
  6. OPENMP=1
  7. LIBSO=1
  8. ZED_CAMERA=0
  9.  
  10. # set GPU=1 and CUDNN=1 to speedup on GPU
  11. # set CUDNN_HALF=1 to further speedup 3 x times (Mixed-precision on Tensor Cores) GPU: Volta, Xavier, Turing and higher
  12. # set AVX=1 and OPENMP=1 to speedup on CPU (if error occurs then set AVX=0)
  13.  
  14. DEBUG=0
  15.  
  16. ARCH= -gencode arch=compute_30,code=sm_30 \
  17.       -gencode arch=compute_35,code=sm_35 \
  18.       -gencode arch=compute_50,code=[sm_50,compute_50] \
  19.       -gencode arch=compute_52,code=[sm_52,compute_52] \
  20.       -gencode arch=compute_61,code=[sm_61,compute_61]
  21.  
  22. OS := $(shell uname)
  23.  
  24. # Tesla V100
  25. # ARCH= -gencode arch=compute_70,code=[sm_70,compute_70]
  26.  
  27. # GeForce RTX 2080 Ti, RTX 2080, RTX 2070, Quadro RTX 8000, Quadro RTX 6000, Quadro RTX 5000, Tesla T4, XNOR Tensor Cores
  28. # ARCH= -gencode arch=compute_75,code=[sm_75,compute_75]
  29.  
  30. # Jetson XAVIER
  31. # ARCH= -gencode arch=compute_72,code=[sm_72,compute_72]
  32.  
  33. # GTX 1080, GTX 1070, GTX 1060, GTX 1050, GTX 1030, Titan Xp, Tesla P40, Tesla P4
  34. # ARCH= -gencode arch=compute_61,code=sm_61 -gencode arch=compute_61,code=compute_61
  35.  
  36. # GP100/Tesla P100 - DGX-1
  37. # ARCH= -gencode arch=compute_60,code=sm_60
  38.  
  39. # For Jetson TX1, Tegra X1, DRIVE CX, DRIVE PX - uncomment:
  40. # ARCH= -gencode arch=compute_53,code=[sm_53,compute_53]
  41.  
  42. # For Jetson Tx2 or Drive-PX2 uncomment:
  43. # ARCH= -gencode arch=compute_62,code=[sm_62,compute_62]
  44.  
  45.  
  46. VPATH=./src/
  47. EXEC=darknet
  48. OBJDIR=./obj/
  49.  
  50. ifeq ($(LIBSO), 1)
  51. LIBNAMESO=libdarknet.so
  52. APPNAMESO=uselib
  53. endif
  54.  
  55. CC=gcc
  56. CPP=g++
  57. NVCC=nvcc
  58. OPTS=-Ofast
  59. LDFLAGS= -lm -pthread
  60. COMMON= -Iinclude/ -I3rdparty/stb/include
  61. CFLAGS=-Wall -Wfatal-errors -Wno-unused-result -Wno-unknown-pragmas -fPIC
  62.  
  63. ifeq ($(DEBUG), 1)
  64. #OPTS= -O0 -g
  65. #OPTS= -Og -g
  66. COMMON+= -DDEBUG
  67. CFLAGS+= -DDEBUG
  68. else
  69. ifeq ($(AVX), 1)
  70. CFLAGS+= -ffp-contract=fast -mavx -mavx2 -msse3 -msse4.1 -msse4.2 -msse4a
  71. endif
  72. endif
  73.  
  74. CFLAGS+=$(OPTS)
  75.  
  76. ifeq ($(OPENCV), 1)
  77. COMMON+= -DOPENCV
  78. CFLAGS+= -DOPENCV
  79. LDFLAGS+= `pkg-config --libs opencv`
  80. COMMON+= `pkg-config --cflags opencv`
  81. endif
  82.  
  83. ifeq ($(OPENMP), 1)
  84. CFLAGS+= -fopenmp
  85. LDFLAGS+= -lgomp
  86. endif
  87.  
  88. ifeq ($(GPU), 1)
  89. COMMON+= -DGPU -I/usr/local/cuda/include/
  90. CFLAGS+= -DGPU
  91. ifeq ($(OS),Darwin) #MAC
  92. LDFLAGS+= -L/usr/local/cuda/lib -lcuda -lcudart -lcublas -lcurand
  93. else
  94. LDFLAGS+= -L/usr/local/cuda/lib64 -lcuda -lcudart -lcublas -lcurand
  95. endif
  96. endif
  97.  
  98. ifeq ($(CUDNN), 1)
  99. COMMON+= -DCUDNN
  100. ifeq ($(OS),Darwin) #MAC
  101. CFLAGS+= -DCUDNN -I/usr/local/cuda/include
  102. LDFLAGS+= -L/usr/local/cuda/lib -lcudnn
  103. else
  104. CFLAGS+= -DCUDNN -I/usr/local/cudnn/include
  105. LDFLAGS+= -L/usr/local/cudnn/lib64 -lcudnn
  106. endif
  107. endif
  108.  
  109. ifeq ($(CUDNN_HALF), 1)
  110. COMMON+= -DCUDNN_HALF
  111. CFLAGS+= -DCUDNN_HALF
  112. ARCH+= -gencode arch=compute_70,code=[sm_70,compute_70]
  113. endif
  114.  
  115. ifeq ($(ZED_CAMERA), 1)
  116. CFLAGS+= -DZED_STEREO -I/usr/local/zed/include
  117. LDFLAGS+= -L/usr/local/zed/lib -lsl_core -lsl_input -lsl_zed
  118. #-lstdc++ -D_GLIBCXX_USE_CXX11_ABI=0
  119. endif
  120.  
  121. OBJ=image_opencv.o http_stream.o gemm.o utils.o dark_cuda.o convolutional_layer.o list.o image.o activations.o im2col.o col2im.o blas.o crop_layer.o dropout_layer.o maxpool_layer.o softmax_layer.o data.o matrix.o network.o connected_layer.o cost_layer.o parser.o option_list.o darknet.o detection_layer.o captcha.o route_layer.o writing.o box.o nightmare.o normalization_layer.o avgpool_layer.o coco.o dice.o yolo.o detector.o layer.o compare.o classifier.o local_layer.o swag.o shortcut_layer.o activation_layer.o rnn_layer.o gru_layer.o rnn.o rnn_vid.o crnn_layer.o demo.o tag.o cifar.o go.o batchnorm_layer.o art.o region_layer.o reorg_layer.o reorg_old_layer.o super.o voxel.o tree.o yolo_layer.o upsample_layer.o lstm_layer.o conv_lstm_layer.o scale_channels_layer.o
  122. ifeq ($(GPU), 1)
  123. LDFLAGS+= -lstdc++
  124. OBJ+=convolutional_kernels.o activation_kernels.o im2col_kernels.o col2im_kernels.o blas_kernels.o crop_layer_kernels.o dropout_layer_kernels.o maxpool_layer_kernels.o network_kernels.o avgpool_layer_kernels.o
  125. endif
  126.  
  127. OBJS = $(addprefix $(OBJDIR), $(OBJ))
  128. DEPS = $(wildcard src/*.h) Makefile include/darknet.h
  129.  
  130. all: obj backup results setchmod $(EXEC) $(LIBNAMESO) $(APPNAMESO)
  131.  
  132. ifeq ($(LIBSO), 1)
  133. CFLAGS+= -fPIC
  134.  
  135. $(LIBNAMESO): $(OBJS) include/yolo_v2_class.hpp src/yolo_v2_class.cpp
  136.     $(CPP) -shared -std=c++11 -fvisibility=hidden -DLIB_EXPORTS $(COMMON) $(CFLAGS) $(OBJS) src/yolo_v2_class.cpp -o $@ $(LDFLAGS)
  137.  
  138. $(APPNAMESO): $(LIBNAMESO) include/yolo_v2_class.hpp src/yolo_console_dll.cpp
  139.     $(CPP) -std=c++11 $(COMMON) $(CFLAGS) -o $@ src/yolo_console_dll.cpp $(LDFLAGS) -L ./ -l:$(LIBNAMESO)
  140. endif
  141.  
  142. $(EXEC): $(OBJS)
  143.     $(CPP) -std=c++11 $(COMMON) $(CFLAGS) $^ -o $@ $(LDFLAGS)
  144.  
  145. $(OBJDIR)%.o: %.c $(DEPS)
  146.     $(CC) $(COMMON) $(CFLAGS) -c $< -o $@
  147.  
  148. $(OBJDIR)%.o: %.cpp $(DEPS)
  149.     $(CPP) -std=c++11 $(COMMON) $(CFLAGS) -c $< -o $@
  150.  
  151. $(OBJDIR)%.o: %.cu $(DEPS)
  152.     $(NVCC) $(ARCH) $(COMMON) --compiler-options "$(CFLAGS)" -c $< -o $@
  153.  
  154. obj:
  155.     mkdir -p obj
  156. backup:
  157.     mkdir -p backup
  158. results:
  159.     mkdir -p results
  160. setchmod:
  161.     chmod +x *.sh
  162.  
  163. .PHONY: clean
  164.  
  165. clean:
  166.     rm -rf $(OBJS) $(EXEC) $(LIBNAMESO) $(APPNAMESO)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement