80 lines
2.6 KiB
Makefile
80 lines
2.6 KiB
Makefile
CC := nvcc -m64 -std=c++17 -ccbin g++-12 -Xcompiler -m64,-std=c++17
|
|
OBJ_DIR := bin
|
|
$(shell mkdir -p $(OBJ_DIR))
|
|
MODELS_DIR := models
|
|
OUT_DIR := out
|
|
SRC_DIR := .
|
|
#CFLAGS := -O0 -Werror=all-warnings -g -G
|
|
#CFLAGS := $(CFLAGS) -pg
|
|
#CFLAGS := $(CFLAGS) -Xptxas=-w
|
|
#CFLAGS := $(CFLAGS) -Xcompiler -Wall,-O0,-g,-Werror,-Werror=implicit-fallthrough=0,-Wextra,-rdynamic
|
|
CFLAGS := -O4 -Xcompiler -O4
|
|
EXEC := $(OBJ_DIR)/ViolaJones
|
|
DATA := ../data/X_train.bin ../data/X_test.bin ../data/y_train.bin ../data/y_test.bin
|
|
SRC := $(shell find $(SRC_DIR) -name "*.cpp" -o -name "*.cu" )
|
|
OBJ_EXT := o
|
|
ifeq ($(OS), Windows_NT)
|
|
EXEC:=$(EXEC).exe
|
|
OBJ_EXT:=obj
|
|
endif
|
|
OBJ := $(SRC:$(SRC_DIR)/%.cpp=$(OBJ_DIR)/%.$(OBJ_EXT))
|
|
OBJ := $(OBJ:$(SRC_DIR)/%.cu=$(OBJ_DIR)/%.$(OBJ_EXT))
|
|
|
|
.PHONY: all start reset clean mrproper debug check
|
|
|
|
all: $(EXEC) $(DATA)
|
|
|
|
# Compiling host code
|
|
$(OBJ_DIR)/%.$(OBJ_EXT): $(SRC_DIR)/%.cpp
|
|
@echo Compiling $<
|
|
@$(CC) $(CFLAGS) -c $< -o $@
|
|
|
|
# Compiling gpu code
|
|
$(OBJ_DIR)/%.$(OBJ_EXT): $(SRC_DIR)/%.cu
|
|
@echo Compiling $<
|
|
@$(CC) $(CFLAGS) -c $< -o $@
|
|
|
|
$(EXEC): $(OBJ)
|
|
@echo Linking objects files to $@
|
|
@$(CC) $(CFLAGS) $^ -o $@
|
|
|
|
$(DATA):
|
|
@bash ../download_data.sh ..
|
|
|
|
start: $(EXEC) $(DATA)
|
|
@./$(EXEC)
|
|
|
|
profile: start
|
|
@gprof $(EXEC) gmon.out | gprof2dot | dot -Tpng -o output.png
|
|
#@gprof $(EXEC) gmon.out > analysis.txt
|
|
|
|
debug: $(EXEC) $(DATA)
|
|
#@cuda-gdb -q $(EXEC)
|
|
@gdb -q --tui $(EXEC)
|
|
|
|
check: $(EXEC) $(DATA)
|
|
@valgrind -q -s --leak-check=full --show-leak-kinds=all $(EXEC)
|
|
|
|
cudacheck: $(EXEC) $(DATA)
|
|
@cuda-memcheck --destroy-on-device-error kernel --tool memcheck --leak-check full --report-api-errors all $(EXEC)
|
|
#@cuda-memcheck --destroy-on-device-error kernel --tool racecheck --racecheck-report all $(EXEC)
|
|
#@cuda-memcheck --destroy-on-device-error kernel --tool initcheck --track-unused-memory yes $(EXEC)
|
|
#@cuda-memcheck --destroy-on-device-error kernel --tool synccheck $(EXEC)
|
|
#@compute-sanitizer --destroy-on-device-error kernel --tool memcheck --leak-check full --report-api-errors all --track-stream-ordered-races all $(EXEC)
|
|
#@compute-sanitizer --destroy-on-device-error kernel --tool racecheck --racecheck-detect-level info --racecheck-report all $(EXEC)
|
|
#@compute-sanitizer --destroy-on-device-error kernel --tool initcheck --track-unused-memory yes $(EXEC)
|
|
#@compute-sanitizer --destroy-on-device-error kernel --tool synccheck $(EXEC)
|
|
|
|
r2: $(EXEC) $(DATA)
|
|
@r2 $(EXEC)
|
|
|
|
reset:
|
|
@echo Deleting generated states and models
|
|
@rm -rf $(OUT_DIR)/* $(MODELS_DIR)/* | true
|
|
|
|
clean:
|
|
@rm $(EXEC)
|
|
|
|
mrproper:
|
|
@rm -r $(OBJ_DIR)
|