diff --git a/hpvm/test/dnn_benchmarks/benchmarks/alexnet/Makefile b/hpvm/test/dnn_benchmarks/benchmarks/alexnet/Makefile index 00b4cd0b836f81eecd0d1d3b509b0bff7673821b..0e3294437bdb00854cd3cbdec7d9dacc405e85f2 100644 --- a/hpvm/test/dnn_benchmarks/benchmarks/alexnet/Makefile +++ b/hpvm/test/dnn_benchmarks/benchmarks/alexnet/Makefile @@ -1,4 +1,4 @@ -DNN_BENCHMARK_ROOT = $(LLVM_SRC_ROOT)/test/VISC/DNN_Benchmarks +DNN_BENCHMARK_ROOT = $(LLVM_SRC_ROOT)/tools/hpvm/test/dnn_benchmarks HPVM_BUILD_DIR = $(LLVM_BUILD_ROOT) CC = $(HPVM_BUILD_DIR)/bin/clang++ @@ -25,30 +25,28 @@ LINKER_FLAGS = -lpthread -lcudart -lcurand -lcudnn -lcublas -lcufft -lOpenCL -ls HPVM_LIB_DIR = $(HPVM_BUILD_DIR)/lib -VISC_OPTFLAGS = -load $(HPVM_LIB_DIR)/LLVMBuildDFG.so -load $(HPVM_LIB_DIR)/LLVMInPlaceDFGAnalysis.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_CUDNN.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_X86.so -load $(HPVM_LIB_DIR)/LLVMClearDFG.so -inplace -dfg2llvm-cudnn -dfg2llvm-x86 -clearDFG +HPVM_OPTFLAGS = -load $(HPVM_LIB_DIR)/LLVMBuildDFG.so -load $(HPVM_LIB_DIR)/LLVMInPlaceDFGAnalysis.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_CUDNN.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_X86.so -load $(HPVM_LIB_DIR)/LLVMClearDFG.so -inplace -dfg2llvm-cudnn -dfg2llvm-x86 -clearDFG -PROMISE_QUANT_FILE_PATH=$(LLVM_SRC_ROOT)/test/VISC/DNN_Benchmarks/benchmarks/$(APP)/data/quant_ranges.txt +PROMISE_QUANT_FILE_PATH=$(LLVM_SRC_ROOT)/test/dnn_benchmarks/benchmarks/$(APP)/data/quant_ranges.txt -VISC_OPTFLAGS2 = -load $(HPVM_LIB_DIR)/LLVMBuildDFG.so -load $(HPVM_LIB_DIR)/LLVMInPlaceDFGAnalysis.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_PROMISE.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_CUDNN.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_X86.so -load $(HPVM_LIB_DIR)/LLVMFuseHPVMTensorNodes.so -load $(HPVM_LIB_DIR)/LLVMClearDFG.so -inplace -hpvm-fuse -dfg2llvm-promise -quantization-levels-filename=$(PROMISE_QUANT_FILE_PATH) -dfg2llvm-cudnn -dfg2llvm-x86 -clearDFG +WRAPPER_API_QUANT_FILE_PATH=$(LLVM_SRC_ROOT)/test/dnn_benchmarks/benchmarks/$(APP)/data/quant_ranges_rt.txt +CONF_FILE_PATH=$(LLVM_SRC_ROOT)/test/dnn_benchmarks/benchmarks/$(APP)/data/tuner_confs.txt -WRAPPER_API_QUANT_FILE_PATH=$(LLVM_SRC_ROOT)/test/VISC/DNN_Benchmarks/benchmarks/$(APP)/data/quant_ranges_rt.txt -CONF_FILE_PATH=$(LLVM_SRC_ROOT)/test/VISC/DNN_Benchmarks/benchmarks/$(APP)/data/tuner_confs.txt +HPVM_OPTFLAGS3 = -load $(HPVM_LIB_DIR)/LLVMBuildDFG.so -load $(HPVM_LIB_DIR)/LLVMInPlaceDFGAnalysis.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_WrapperAPI.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_X86.so -load $(HPVM_LIB_DIR)/LLVMFuseHPVMTensorNodes.so -load $(HPVM_LIB_DIR)/LLVMClearDFG.so -inplace -hpvm-fuse -dfg2llvm-wrapperapi -quantization-levels-filename=$(WRAPPER_API_QUANT_FILE_PATH) -configuration-inputs-filename=$(CONF_FILE_PATH) -dfg2llvm-x86 -clearDFG -VISC_OPTFLAGS3 = -load $(HPVM_LIB_DIR)/LLVMBuildDFG.so -load $(HPVM_LIB_DIR)/LLVMInPlaceDFGAnalysis.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_WrapperAPI.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_X86.so -load $(HPVM_LIB_DIR)/LLVMFuseHPVMTensorNodes.so -load $(HPVM_LIB_DIR)/LLVMClearDFG.so -inplace -hpvm-fuse -dfg2llvm-wrapperapi -quantization-levels-filename=$(WRAPPER_API_QUANT_FILE_PATH) -configuration-inputs-filename=$(CONF_FILE_PATH) -dfg2llvm-x86 -clearDFG +TEMP_CONF_FILE_PATH=$(LLVM_SRC_ROOT)/test/dnn_benchmarks/benchmarks/$(APP)/predictive/temp.txt -TEMP_CONF_FILE_PATH=$(LLVM_SRC_ROOT)/test/VISC/DNN_Benchmarks/benchmarks/$(APP)/predictive/temp.txt - -VISC_PRED_OPTFLAGS3 = -load $(HPVM_LIB_DIR)/LLVMBuildDFG.so -load $(HPVM_LIB_DIR)/LLVMInPlaceDFGAnalysis.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_WrapperAPI.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_X86.so -load $(HPVM_LIB_DIR)/LLVMFuseHPVMTensorNodes.so -load $(HPVM_LIB_DIR)/LLVMClearDFG.so -inplace -hpvm-fuse -dfg2llvm-wrapperapi -quantization-levels-filename=$(WRAPPER_API_QUANT_FILE_PATH) -configuration-inputs-filename=$(TEMP_CONF_FILE_PATH) -dfg2llvm-x86 -clearDFG +HPVM_PRED_OPTFLAGS3 = -load $(HPVM_LIB_DIR)/LLVMBuildDFG.so -load $(HPVM_LIB_DIR)/LLVMInPlaceDFGAnalysis.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_WrapperAPI.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_X86.so -load $(HPVM_LIB_DIR)/LLVMFuseHPVMTensorNodes.so -load $(HPVM_LIB_DIR)/LLVMClearDFG.so -inplace -hpvm-fuse -dfg2llvm-wrapperapi -quantization-levels-filename=$(WRAPPER_API_QUANT_FILE_PATH) -configuration-inputs-filename=$(TEMP_CONF_FILE_PATH) -dfg2llvm-x86 -clearDFG TARGET = $(BUILD_DIR)/$(APP).opt.bc SOURCES = $(SRC_DIR)/$(APP).cpp -VISC_RT_PATH = $(LLVM_SRC_ROOT)/../build/projects/visc-rt/visc-rt.ll +HPVM_RT_PATH = $(LLVM_SRC_ROOT)/../build/projects/hpvm-rt/visc-rt.ll -.PRECIOUS: $(BUILD_DIR)/$(APP).ll $(BUILD_DIR)/$(APP).visc.ll +.PRECIOUS: $(BUILD_DIR)/$(APP).ll $(BUILD_DIR)/$(APP).hpvm.ll default: $(BUILD_DIR) $(TARGET) @@ -58,14 +56,14 @@ $(BUILD_DIR)/%.ll: $(SRC_DIR)/%.cpp $(BUILD_DIR)/%.opt.bc: $(BUILD_DIR)/%.ll - $(OPT) -load LLVMGenVISC.so -genvisc -globaldce $(BUILD_DIR)/$(APP).ll -S -o $(BUILD_DIR)/$(APP).visc.ll - $(OPT) -load LLVMGenVISC.so -genvisc -globaldce $(BUILD_DIR)/$(APP)_loop.ll -S -o $(BUILD_DIR)/$(APP)_loop.visc.ll - $(OPT) $(VISC_OPTFLAGS) $(BUILD_DIR)/$(APP).visc.ll -o $(BUILD_DIR)/$(APP)_cudnn.bc - $(OPT) $(VISC_OPTFLAGS3) $(BUILD_DIR)/$(APP)_loop.visc.ll -o $(BUILD_DIR)/$(APP)_loop_wrapperapi.bc - $(OPT) $(VISC_PRED_OPTFLAGS3) $(BUILD_DIR)/$(APP)_loop.visc.ll -o $(BUILD_DIR)/$(APP)_pred_loop_wrapperapi.bc - $(LLVM_LINK) $(BUILD_DIR)/$(APP)_cudnn.bc $(VISC_RT_PATH) -o $(BUILD_DIR)/$(APP)_cudnn_linked.bc - $(LLVM_LINK) $(BUILD_DIR)/$(APP)_loop_wrapperapi.bc $(VISC_RT_PATH) -o $(BUILD_DIR)/$(APP)_loop_wrapperapi_linked.bc - $(LLVM_LINK) $(BUILD_DIR)/$(APP)_pred_loop_wrapperapi.bc $(VISC_RT_PATH) -o $(BUILD_DIR)/$(APP)_pred_loop_wrapperapi_linked.bc + $(OPT) -load LLVMGenHPVM.so -genhpvm -globaldce $(BUILD_DIR)/$(APP).ll -S -o $(BUILD_DIR)/$(APP).visc.ll + $(OPT) -load LLVMGenHPVM.so -genhpvm -globaldce $(BUILD_DIR)/$(APP)_loop.ll -S -o $(BUILD_DIR)/$(APP)_loop.visc.ll + $(OPT) $(HPVM_OPTFLAGS) $(BUILD_DIR)/$(APP).hpvm.ll -o $(BUILD_DIR)/$(APP)_cudnn.bc + $(OPT) $(HPVM_OPTFLAGS3) $(BUILD_DIR)/$(APP)_loop.hpvm.ll -o $(BUILD_DIR)/$(APP)_loop_wrapperapi.bc + $(OPT) $(HPVM_PRED_OPTFLAGS3) $(BUILD_DIR)/$(APP)_loop.hpvm.ll -o $(BUILD_DIR)/$(APP)_pred_loop_wrapperapi.bc + $(LLVM_LINK) $(BUILD_DIR)/$(APP)_cudnn.bc $(HPVM_RT_PATH) -o $(BUILD_DIR)/$(APP)_cudnn_linked.bc + $(LLVM_LINK) $(BUILD_DIR)/$(APP)_loop_wrapperapi.bc $(HPVM_RT_PATH) -o $(BUILD_DIR)/$(APP)_loop_wrapperapi_linked.bc + $(LLVM_LINK) $(BUILD_DIR)/$(APP)_pred_loop_wrapperapi.bc $(HPVM_RT_PATH) -o $(BUILD_DIR)/$(APP)_pred_loop_wrapperapi_linked.bc $(CC) $(BUILD_DIR)/$(APP)_cudnn_linked.bc $(TENSOR_LIB_DIR) $(PROFILER_LIB_DIR) $(SOC_SIMULATOR_LIB_DIR) -o $(BUILD_DIR)/$(APP)_cudnn_linked $(LINKER_FLAGS) $(CC) $(BUILD_DIR)/$(APP)_loop_wrapperapi_linked.bc $(TENSOR_LIB_DIR) $(PROFILER_LIB_DIR) $(SOC_SIMULATOR_LIB_DIR) -o $(BUILD_DIR)/$(APP)_loop_wrapperapi_linked $(LINKER_FLAGS) $(CC) $(BUILD_DIR)/$(APP)_pred_loop_wrapperapi_linked.bc $(TENSOR_LIB_DIR) $(PROFILER_LIB_DIR) $(SOC_SIMULATOR_LIB_DIR) -o $(BUILD_DIR)/$(APP)_pred_loop_wrapperapi_linked $(LINKER_FLAGS) diff --git a/hpvm/test/dnn_benchmarks/benchmarks/alexnet2/Makefile b/hpvm/test/dnn_benchmarks/benchmarks/alexnet2/Makefile index dbee3a43acff912da0f534f1f944cecbd9f1c3ee..002ecfc92ec6cf546f3cf1cb5c0d0bef5fac7419 100644 --- a/hpvm/test/dnn_benchmarks/benchmarks/alexnet2/Makefile +++ b/hpvm/test/dnn_benchmarks/benchmarks/alexnet2/Makefile @@ -1,4 +1,4 @@ -DNN_BENCHMARK_ROOT = $(LLVM_SRC_ROOT)/test/VISC/DNN_Benchmarks +DNN_BENCHMARK_ROOT = $(LLVM_SRC_ROOT)/tools/hpvm/test/dnn_benchmarks HPVM_BUILD_DIR = $(LLVM_BUILD_ROOT) CC = $(HPVM_BUILD_DIR)/bin/clang++ @@ -25,30 +25,28 @@ LINKER_FLAGS = -lpthread -lcudart -lcurand -lcudnn -lcublas -lcufft -lOpenCL -ls HPVM_LIB_DIR = $(HPVM_BUILD_DIR)/lib -VISC_OPTFLAGS = -load $(HPVM_LIB_DIR)/LLVMBuildDFG.so -load $(HPVM_LIB_DIR)/LLVMInPlaceDFGAnalysis.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_CUDNN.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_X86.so -load $(HPVM_LIB_DIR)/LLVMClearDFG.so -inplace -dfg2llvm-cudnn -dfg2llvm-x86 -clearDFG +HPVM_OPTFLAGS = -load $(HPVM_LIB_DIR)/LLVMBuildDFG.so -load $(HPVM_LIB_DIR)/LLVMInPlaceDFGAnalysis.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_CUDNN.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_X86.so -load $(HPVM_LIB_DIR)/LLVMClearDFG.so -inplace -dfg2llvm-cudnn -dfg2llvm-x86 -clearDFG -PROMISE_QUANT_FILE_PATH=$(LLVM_SRC_ROOT)/test/VISC/DNN_Benchmarks/benchmarks/$(APP)/data/quant_ranges.txt +PROMISE_QUANT_FILE_PATH=$(LLVM_SRC_ROOT)/test/dnn_benchmarks/benchmarks/$(APP)/data/quant_ranges.txt -VISC_OPTFLAGS2 = -load $(HPVM_LIB_DIR)/LLVMBuildDFG.so -load $(HPVM_LIB_DIR)/LLVMInPlaceDFGAnalysis.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_PROMISE.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_CUDNN.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_X86.so -load $(HPVM_LIB_DIR)/LLVMFuseHPVMTensorNodes.so -load $(HPVM_LIB_DIR)/LLVMClearDFG.so -inplace -hpvm-fuse -dfg2llvm-promise -quantization-levels-filename=$(PROMISE_QUANT_FILE_PATH) -dfg2llvm-cudnn -dfg2llvm-x86 -clearDFG +WRAPPER_API_QUANT_FILE_PATH=$(LLVM_SRC_ROOT)/test/dnn_benchmarks/benchmarks/$(APP)/data/quant_ranges_rt.txt +CONF_FILE_PATH=$(LLVM_SRC_ROOT)/test/dnn_benchmarks/benchmarks/$(APP)/data/tuner_confs.txt -WRAPPER_API_QUANT_FILE_PATH=$(LLVM_SRC_ROOT)/test/VISC/DNN_Benchmarks/benchmarks/$(APP)/data/quant_ranges_rt.txt -CONF_FILE_PATH=$(LLVM_SRC_ROOT)/test/VISC/DNN_Benchmarks/benchmarks/$(APP)/data/tuner_confs.txt +HPVM_OPTFLAGS3 = -load $(HPVM_LIB_DIR)/LLVMBuildDFG.so -load $(HPVM_LIB_DIR)/LLVMInPlaceDFGAnalysis.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_WrapperAPI.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_X86.so -load $(HPVM_LIB_DIR)/LLVMFuseHPVMTensorNodes.so -load $(HPVM_LIB_DIR)/LLVMClearDFG.so -inplace -hpvm-fuse -dfg2llvm-wrapperapi -quantization-levels-filename=$(WRAPPER_API_QUANT_FILE_PATH) -configuration-inputs-filename=$(CONF_FILE_PATH) -dfg2llvm-x86 -clearDFG -VISC_OPTFLAGS3 = -load $(HPVM_LIB_DIR)/LLVMBuildDFG.so -load $(HPVM_LIB_DIR)/LLVMInPlaceDFGAnalysis.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_WrapperAPI.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_X86.so -load $(HPVM_LIB_DIR)/LLVMFuseHPVMTensorNodes.so -load $(HPVM_LIB_DIR)/LLVMClearDFG.so -inplace -hpvm-fuse -dfg2llvm-wrapperapi -quantization-levels-filename=$(WRAPPER_API_QUANT_FILE_PATH) -configuration-inputs-filename=$(CONF_FILE_PATH) -dfg2llvm-x86 -clearDFG +TEMP_CONF_FILE_PATH=$(LLVM_SRC_ROOT)/test/dnn_benchmarks/benchmarks/$(APP)/predictive/temp.txt -TEMP_CONF_FILE_PATH=$(LLVM_SRC_ROOT)/test/VISC/DNN_Benchmarks/benchmarks/$(APP)/predictive/temp.txt - -VISC_PRED_OPTFLAGS3 = -load $(HPVM_LIB_DIR)/LLVMBuildDFG.so -load $(HPVM_LIB_DIR)/LLVMInPlaceDFGAnalysis.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_WrapperAPI.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_X86.so -load $(HPVM_LIB_DIR)/LLVMFuseHPVMTensorNodes.so -load $(HPVM_LIB_DIR)/LLVMClearDFG.so -inplace -hpvm-fuse -dfg2llvm-wrapperapi -quantization-levels-filename=$(WRAPPER_API_QUANT_FILE_PATH) -configuration-inputs-filename=$(TEMP_CONF_FILE_PATH) -dfg2llvm-x86 -clearDFG +HPVM_PRED_OPTFLAGS3 = -load $(HPVM_LIB_DIR)/LLVMBuildDFG.so -load $(HPVM_LIB_DIR)/LLVMInPlaceDFGAnalysis.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_WrapperAPI.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_X86.so -load $(HPVM_LIB_DIR)/LLVMFuseHPVMTensorNodes.so -load $(HPVM_LIB_DIR)/LLVMClearDFG.so -inplace -hpvm-fuse -dfg2llvm-wrapperapi -quantization-levels-filename=$(WRAPPER_API_QUANT_FILE_PATH) -configuration-inputs-filename=$(TEMP_CONF_FILE_PATH) -dfg2llvm-x86 -clearDFG TARGET = $(BUILD_DIR)/$(APP).opt.bc SOURCES = $(SRC_DIR)/$(APP).cpp -VISC_RT_PATH = $(LLVM_SRC_ROOT)/../build/projects/visc-rt/visc-rt.ll +HPVM_RT_PATH = $(LLVM_SRC_ROOT)/../build/projects/hpvm-rt/visc-rt.ll -.PRECIOUS: $(BUILD_DIR)/$(APP).ll $(BUILD_DIR)/$(APP).visc.ll +.PRECIOUS: $(BUILD_DIR)/$(APP).ll $(BUILD_DIR)/$(APP).hpvm.ll default: $(BUILD_DIR) $(TARGET) @@ -58,14 +56,14 @@ $(BUILD_DIR)/%.ll: $(SRC_DIR)/%.cpp $(BUILD_DIR)/%.opt.bc: $(BUILD_DIR)/%.ll - $(OPT) -load LLVMGenVISC.so -genvisc -globaldce $(BUILD_DIR)/$(APP).ll -S -o $(BUILD_DIR)/$(APP).visc.ll - $(OPT) -load LLVMGenVISC.so -genvisc -globaldce $(BUILD_DIR)/$(APP)_loop.ll -S -o $(BUILD_DIR)/$(APP)_loop.visc.ll - $(OPT) $(VISC_OPTFLAGS) $(BUILD_DIR)/$(APP).visc.ll -o $(BUILD_DIR)/$(APP)_cudnn.bc - $(OPT) $(VISC_OPTFLAGS3) $(BUILD_DIR)/$(APP)_loop.visc.ll -o $(BUILD_DIR)/$(APP)_loop_wrapperapi.bc - $(OPT) $(VISC_PRED_OPTFLAGS3) $(BUILD_DIR)/$(APP)_loop.visc.ll -o $(BUILD_DIR)/$(APP)_pred_loop_wrapperapi.bc - $(LLVM_LINK) $(BUILD_DIR)/$(APP)_cudnn.bc $(VISC_RT_PATH) -o $(BUILD_DIR)/$(APP)_cudnn_linked.bc - $(LLVM_LINK) $(BUILD_DIR)/$(APP)_loop_wrapperapi.bc $(VISC_RT_PATH) -o $(BUILD_DIR)/$(APP)_loop_wrapperapi_linked.bc - $(LLVM_LINK) $(BUILD_DIR)/$(APP)_pred_loop_wrapperapi.bc $(VISC_RT_PATH) -o $(BUILD_DIR)/$(APP)_pred_loop_wrapperapi_linked.bc + $(OPT) -load LLVMGenHPVM.so -genhpvm -globaldce $(BUILD_DIR)/$(APP).ll -S -o $(BUILD_DIR)/$(APP).visc.ll + $(OPT) -load LLVMGenHPVM.so -genhpvm -globaldce $(BUILD_DIR)/$(APP)_loop.ll -S -o $(BUILD_DIR)/$(APP)_loop.visc.ll + $(OPT) $(HPVM_OPTFLAGS) $(BUILD_DIR)/$(APP).hpvm.ll -o $(BUILD_DIR)/$(APP)_cudnn.bc + $(OPT) $(HPVM_OPTFLAGS3) $(BUILD_DIR)/$(APP)_loop.hpvm.ll -o $(BUILD_DIR)/$(APP)_loop_wrapperapi.bc + $(OPT) $(HPVM_PRED_OPTFLAGS3) $(BUILD_DIR)/$(APP)_loop.hpvm.ll -o $(BUILD_DIR)/$(APP)_pred_loop_wrapperapi.bc + $(LLVM_LINK) $(BUILD_DIR)/$(APP)_cudnn.bc $(HPVM_RT_PATH) -o $(BUILD_DIR)/$(APP)_cudnn_linked.bc + $(LLVM_LINK) $(BUILD_DIR)/$(APP)_loop_wrapperapi.bc $(HPVM_RT_PATH) -o $(BUILD_DIR)/$(APP)_loop_wrapperapi_linked.bc + $(LLVM_LINK) $(BUILD_DIR)/$(APP)_pred_loop_wrapperapi.bc $(HPVM_RT_PATH) -o $(BUILD_DIR)/$(APP)_pred_loop_wrapperapi_linked.bc $(CC) $(BUILD_DIR)/$(APP)_cudnn_linked.bc $(TENSOR_LIB_DIR) $(PROFILER_LIB_DIR) $(SOC_SIMULATOR_LIB_DIR) -o $(BUILD_DIR)/$(APP)_cudnn_linked $(LINKER_FLAGS) $(CC) $(BUILD_DIR)/$(APP)_loop_wrapperapi_linked.bc $(TENSOR_LIB_DIR) $(PROFILER_LIB_DIR) $(SOC_SIMULATOR_LIB_DIR) -o $(BUILD_DIR)/$(APP)_loop_wrapperapi_linked $(LINKER_FLAGS) $(CC) $(BUILD_DIR)/$(APP)_pred_loop_wrapperapi_linked.bc $(TENSOR_LIB_DIR) $(PROFILER_LIB_DIR) $(SOC_SIMULATOR_LIB_DIR) -o $(BUILD_DIR)/$(APP)_pred_loop_wrapperapi_linked $(LINKER_FLAGS) diff --git a/hpvm/test/dnn_benchmarks/benchmarks/alexnet_imagenet/Makefile b/hpvm/test/dnn_benchmarks/benchmarks/alexnet_imagenet/Makefile index 56306e01f1e8121fdef55208588b6c5cb2b73e7f..787eda03df21939f201d0a668680d5e69df72e84 100644 --- a/hpvm/test/dnn_benchmarks/benchmarks/alexnet_imagenet/Makefile +++ b/hpvm/test/dnn_benchmarks/benchmarks/alexnet_imagenet/Makefile @@ -1,4 +1,4 @@ -DNN_BENCHMARK_ROOT = $(LLVM_SRC_ROOT)/test/VISC/DNN_Benchmarks +DNN_BENCHMARK_ROOT = $(LLVM_SRC_ROOT)/tools/hpvm/test/dnn_benchmarks HPVM_BUILD_DIR = $(LLVM_BUILD_ROOT) CC = $(HPVM_BUILD_DIR)/bin/clang++ @@ -25,30 +25,28 @@ LINKER_FLAGS = -lpthread -lcudart -lcurand -lcudnn -lcublas -lcufft -lOpenCL -ls HPVM_LIB_DIR = $(HPVM_BUILD_DIR)/lib -VISC_OPTFLAGS = -load $(HPVM_LIB_DIR)/LLVMBuildDFG.so -load $(HPVM_LIB_DIR)/LLVMInPlaceDFGAnalysis.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_CUDNN.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_X86.so -load $(HPVM_LIB_DIR)/LLVMClearDFG.so -inplace -dfg2llvm-cudnn -dfg2llvm-x86 -clearDFG +HPVM_OPTFLAGS = -load $(HPVM_LIB_DIR)/LLVMBuildDFG.so -load $(HPVM_LIB_DIR)/LLVMInPlaceDFGAnalysis.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_CUDNN.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_X86.so -load $(HPVM_LIB_DIR)/LLVMClearDFG.so -inplace -dfg2llvm-cudnn -dfg2llvm-x86 -clearDFG -PROMISE_QUANT_FILE_PATH=$(LLVM_SRC_ROOT)/test/VISC/DNN_Benchmarks/benchmarks/$(APP)/data/quant_ranges.txt +PROMISE_QUANT_FILE_PATH=$(LLVM_SRC_ROOT)/test/dnn_benchmarks/benchmarks/$(APP)/data/quant_ranges.txt -VISC_OPTFLAGS2 = -load $(HPVM_LIB_DIR)/LLVMBuildDFG.so -load $(HPVM_LIB_DIR)/LLVMInPlaceDFGAnalysis.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_PROMISE.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_CUDNN.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_X86.so -load $(HPVM_LIB_DIR)/LLVMFuseHPVMTensorNodes.so -load $(HPVM_LIB_DIR)/LLVMClearDFG.so -inplace -hpvm-fuse -dfg2llvm-promise -quantization-levels-filename=$(PROMISE_QUANT_FILE_PATH) -dfg2llvm-cudnn -dfg2llvm-x86 -clearDFG +WRAPPER_API_QUANT_FILE_PATH=$(LLVM_SRC_ROOT)/test/dnn_benchmarks/benchmarks/$(APP)/data/quant_ranges_rt.txt +CONF_FILE_PATH=$(LLVM_SRC_ROOT)/test/dnn_benchmarks/benchmarks/$(APP)/data/tuner_confs.txt -WRAPPER_API_QUANT_FILE_PATH=$(LLVM_SRC_ROOT)/test/VISC/DNN_Benchmarks/benchmarks/$(APP)/data/quant_ranges_rt.txt -CONF_FILE_PATH=$(LLVM_SRC_ROOT)/test/VISC/DNN_Benchmarks/benchmarks/$(APP)/data/tuner_confs.txt +HPVM_OPTFLAGS3 = -load $(HPVM_LIB_DIR)/LLVMBuildDFG.so -load $(HPVM_LIB_DIR)/LLVMInPlaceDFGAnalysis.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_WrapperAPI.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_X86.so -load $(HPVM_LIB_DIR)/LLVMFuseHPVMTensorNodes.so -load $(HPVM_LIB_DIR)/LLVMClearDFG.so -inplace -hpvm-fuse -dfg2llvm-wrapperapi -quantization-levels-filename=$(WRAPPER_API_QUANT_FILE_PATH) -configuration-inputs-filename=$(CONF_FILE_PATH) -dfg2llvm-x86 -clearDFG -VISC_OPTFLAGS3 = -load $(HPVM_LIB_DIR)/LLVMBuildDFG.so -load $(HPVM_LIB_DIR)/LLVMInPlaceDFGAnalysis.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_WrapperAPI.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_X86.so -load $(HPVM_LIB_DIR)/LLVMFuseHPVMTensorNodes.so -load $(HPVM_LIB_DIR)/LLVMClearDFG.so -inplace -hpvm-fuse -dfg2llvm-wrapperapi -quantization-levels-filename=$(WRAPPER_API_QUANT_FILE_PATH) -configuration-inputs-filename=$(CONF_FILE_PATH) -dfg2llvm-x86 -clearDFG +TEMP_CONF_FILE_PATH=$(LLVM_SRC_ROOT)/test/dnn_benchmarks/benchmarks/$(APP)/predictive/temp.txt -TEMP_CONF_FILE_PATH=$(LLVM_SRC_ROOT)/test/VISC/DNN_Benchmarks/benchmarks/$(APP)/predictive/temp.txt - -VISC_PRED_OPTFLAGS3 = -load $(HPVM_LIB_DIR)/LLVMBuildDFG.so -load $(HPVM_LIB_DIR)/LLVMInPlaceDFGAnalysis.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_WrapperAPI.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_X86.so -load $(HPVM_LIB_DIR)/LLVMFuseHPVMTensorNodes.so -load $(HPVM_LIB_DIR)/LLVMClearDFG.so -inplace -hpvm-fuse -dfg2llvm-wrapperapi -quantization-levels-filename=$(WRAPPER_API_QUANT_FILE_PATH) -configuration-inputs-filename=$(TEMP_CONF_FILE_PATH) -dfg2llvm-x86 -clearDFG +HPVM_PRED_OPTFLAGS3 = -load $(HPVM_LIB_DIR)/LLVMBuildDFG.so -load $(HPVM_LIB_DIR)/LLVMInPlaceDFGAnalysis.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_WrapperAPI.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_X86.so -load $(HPVM_LIB_DIR)/LLVMFuseHPVMTensorNodes.so -load $(HPVM_LIB_DIR)/LLVMClearDFG.so -inplace -hpvm-fuse -dfg2llvm-wrapperapi -quantization-levels-filename=$(WRAPPER_API_QUANT_FILE_PATH) -configuration-inputs-filename=$(TEMP_CONF_FILE_PATH) -dfg2llvm-x86 -clearDFG TARGET = $(BUILD_DIR)/$(APP).opt.bc SOURCES = $(SRC_DIR)/$(APP).cpp -VISC_RT_PATH = $(LLVM_SRC_ROOT)/../build/projects/visc-rt/visc-rt.ll +HPVM_RT_PATH = $(LLVM_SRC_ROOT)/../build/projects/hpvm-rt/visc-rt.ll -.PRECIOUS: $(BUILD_DIR)/$(APP).ll $(BUILD_DIR)/$(APP).visc.ll +.PRECIOUS: $(BUILD_DIR)/$(APP).ll $(BUILD_DIR)/$(APP).hpvm.ll default: $(BUILD_DIR) $(TARGET) @@ -58,14 +56,14 @@ $(BUILD_DIR)/%.ll: $(SRC_DIR)/%.cpp $(BUILD_DIR)/%.opt.bc: $(BUILD_DIR)/%.ll - $(OPT) -load LLVMGenVISC.so -genvisc -globaldce $(BUILD_DIR)/$(APP).ll -S -o $(BUILD_DIR)/$(APP).visc.ll - $(OPT) -load LLVMGenVISC.so -genvisc -globaldce $(BUILD_DIR)/$(APP)_loop.ll -S -o $(BUILD_DIR)/$(APP)_loop.visc.ll - $(OPT) $(VISC_OPTFLAGS) $(BUILD_DIR)/$(APP).visc.ll -o $(BUILD_DIR)/$(APP)_cudnn.bc - $(OPT) $(VISC_OPTFLAGS3) $(BUILD_DIR)/$(APP)_loop.visc.ll -o $(BUILD_DIR)/$(APP)_loop_wrapperapi.bc - $(OPT) $(VISC_PRED_OPTFLAGS3) $(BUILD_DIR)/$(APP)_loop.visc.ll -o $(BUILD_DIR)/$(APP)_pred_loop_wrapperapi.bc - $(LLVM_LINK) $(BUILD_DIR)/$(APP)_cudnn.bc $(VISC_RT_PATH) -o $(BUILD_DIR)/$(APP)_cudnn_linked.bc - $(LLVM_LINK) $(BUILD_DIR)/$(APP)_loop_wrapperapi.bc $(VISC_RT_PATH) -o $(BUILD_DIR)/$(APP)_loop_wrapperapi_linked.bc - $(LLVM_LINK) $(BUILD_DIR)/$(APP)_pred_loop_wrapperapi.bc $(VISC_RT_PATH) -o $(BUILD_DIR)/$(APP)_pred_loop_wrapperapi_linked.bc + $(OPT) -load LLVMGenHPVM.so -genhpvm -globaldce $(BUILD_DIR)/$(APP).ll -S -o $(BUILD_DIR)/$(APP).visc.ll + $(OPT) -load LLVMGenHPVM.so -genhpvm -globaldce $(BUILD_DIR)/$(APP)_loop.ll -S -o $(BUILD_DIR)/$(APP)_loop.visc.ll + $(OPT) $(HPVM_OPTFLAGS) $(BUILD_DIR)/$(APP).hpvm.ll -o $(BUILD_DIR)/$(APP)_cudnn.bc + $(OPT) $(HPVM_OPTFLAGS3) $(BUILD_DIR)/$(APP)_loop.hpvm.ll -o $(BUILD_DIR)/$(APP)_loop_wrapperapi.bc + $(OPT) $(HPVM_PRED_OPTFLAGS3) $(BUILD_DIR)/$(APP)_loop.hpvm.ll -o $(BUILD_DIR)/$(APP)_pred_loop_wrapperapi.bc + $(LLVM_LINK) $(BUILD_DIR)/$(APP)_cudnn.bc $(HPVM_RT_PATH) -o $(BUILD_DIR)/$(APP)_cudnn_linked.bc + $(LLVM_LINK) $(BUILD_DIR)/$(APP)_loop_wrapperapi.bc $(HPVM_RT_PATH) -o $(BUILD_DIR)/$(APP)_loop_wrapperapi_linked.bc + $(LLVM_LINK) $(BUILD_DIR)/$(APP)_pred_loop_wrapperapi.bc $(HPVM_RT_PATH) -o $(BUILD_DIR)/$(APP)_pred_loop_wrapperapi_linked.bc $(CC) $(BUILD_DIR)/$(APP)_cudnn_linked.bc $(TENSOR_LIB_DIR) $(PROFILER_LIB_DIR) $(SOC_SIMULATOR_LIB_DIR) -o $(BUILD_DIR)/$(APP)_cudnn_linked $(LINKER_FLAGS) $(CC) $(BUILD_DIR)/$(APP)_loop_wrapperapi_linked.bc $(TENSOR_LIB_DIR) $(PROFILER_LIB_DIR) $(SOC_SIMULATOR_LIB_DIR) -o $(BUILD_DIR)/$(APP)_loop_wrapperapi_linked $(LINKER_FLAGS) $(CC) $(BUILD_DIR)/$(APP)_pred_loop_wrapperapi_linked.bc $(TENSOR_LIB_DIR) $(PROFILER_LIB_DIR) $(SOC_SIMULATOR_LIB_DIR) -o $(BUILD_DIR)/$(APP)_pred_loop_wrapperapi_linked $(LINKER_FLAGS) diff --git a/hpvm/test/dnn_benchmarks/benchmarks/lenet_mnist/Makefile b/hpvm/test/dnn_benchmarks/benchmarks/lenet_mnist/Makefile index 031e83149284f01e14c27caa55f0236a05b89054..42be9998a0e259abe1ce29c7402e8e1f78d798c4 100644 --- a/hpvm/test/dnn_benchmarks/benchmarks/lenet_mnist/Makefile +++ b/hpvm/test/dnn_benchmarks/benchmarks/lenet_mnist/Makefile @@ -1,4 +1,4 @@ -DNN_BENCHMARK_ROOT = $(LLVM_SRC_ROOT)/test/VISC/DNN_Benchmarks +DNN_BENCHMARK_ROOT = $(LLVM_SRC_ROOT)/tools/hpvm/test/dnn_benchmarks HPVM_BUILD_DIR = $(LLVM_BUILD_ROOT) CC = $(HPVM_BUILD_DIR)/bin/clang++ @@ -25,30 +25,28 @@ LINKER_FLAGS = -lpthread -lcudart -lcurand -lcudnn -lcublas -lcufft -lOpenCL -ls HPVM_LIB_DIR = $(HPVM_BUILD_DIR)/lib -VISC_OPTFLAGS = -load $(HPVM_LIB_DIR)/LLVMBuildDFG.so -load $(HPVM_LIB_DIR)/LLVMInPlaceDFGAnalysis.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_CUDNN.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_X86.so -load $(HPVM_LIB_DIR)/LLVMClearDFG.so -inplace -dfg2llvm-cudnn -dfg2llvm-x86 -clearDFG +HPVM_OPTFLAGS = -load $(HPVM_LIB_DIR)/LLVMBuildDFG.so -load $(HPVM_LIB_DIR)/LLVMInPlaceDFGAnalysis.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_CUDNN.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_X86.so -load $(HPVM_LIB_DIR)/LLVMClearDFG.so -inplace -dfg2llvm-cudnn -dfg2llvm-x86 -clearDFG -PROMISE_QUANT_FILE_PATH=$(LLVM_SRC_ROOT)/test/VISC/DNN_Benchmarks/benchmarks/$(APP)/data/quant_ranges.txt +PROMISE_QUANT_FILE_PATH=$(LLVM_SRC_ROOT)/test/dnn_benchmarks/benchmarks/$(APP)/data/quant_ranges.txt -VISC_OPTFLAGS2 = -load $(HPVM_LIB_DIR)/LLVMBuildDFG.so -load $(HPVM_LIB_DIR)/LLVMInPlaceDFGAnalysis.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_PROMISE.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_CUDNN.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_X86.so -load $(HPVM_LIB_DIR)/LLVMFuseHPVMTensorNodes.so -load $(HPVM_LIB_DIR)/LLVMClearDFG.so -inplace -hpvm-fuse -dfg2llvm-promise -quantization-levels-filename=$(PROMISE_QUANT_FILE_PATH) -dfg2llvm-cudnn -dfg2llvm-x86 -clearDFG +WRAPPER_API_QUANT_FILE_PATH=$(LLVM_SRC_ROOT)/test/dnn_benchmarks/benchmarks/$(APP)/data/quant_ranges_rt.txt +CONF_FILE_PATH=$(LLVM_SRC_ROOT)/test/dnn_benchmarks/benchmarks/$(APP)/data/tuner_confs.txt -WRAPPER_API_QUANT_FILE_PATH=$(LLVM_SRC_ROOT)/test/VISC/DNN_Benchmarks/benchmarks/$(APP)/data/quant_ranges_rt.txt -CONF_FILE_PATH=$(LLVM_SRC_ROOT)/test/VISC/DNN_Benchmarks/benchmarks/$(APP)/data/tuner_confs.txt +HPVM_OPTFLAGS3 = -load $(HPVM_LIB_DIR)/LLVMBuildDFG.so -load $(HPVM_LIB_DIR)/LLVMInPlaceDFGAnalysis.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_WrapperAPI.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_X86.so -load $(HPVM_LIB_DIR)/LLVMFuseHPVMTensorNodes.so -load $(HPVM_LIB_DIR)/LLVMClearDFG.so -inplace -hpvm-fuse -dfg2llvm-wrapperapi -quantization-levels-filename=$(WRAPPER_API_QUANT_FILE_PATH) -configuration-inputs-filename=$(CONF_FILE_PATH) -dfg2llvm-x86 -clearDFG -VISC_OPTFLAGS3 = -load $(HPVM_LIB_DIR)/LLVMBuildDFG.so -load $(HPVM_LIB_DIR)/LLVMInPlaceDFGAnalysis.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_WrapperAPI.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_X86.so -load $(HPVM_LIB_DIR)/LLVMFuseHPVMTensorNodes.so -load $(HPVM_LIB_DIR)/LLVMClearDFG.so -inplace -hpvm-fuse -dfg2llvm-wrapperapi -quantization-levels-filename=$(WRAPPER_API_QUANT_FILE_PATH) -configuration-inputs-filename=$(CONF_FILE_PATH) -dfg2llvm-x86 -clearDFG +TEMP_CONF_FILE_PATH=$(LLVM_SRC_ROOT)/test/dnn_benchmarks/benchmarks/$(APP)/predictive/temp.txt -TEMP_CONF_FILE_PATH=$(LLVM_SRC_ROOT)/test/VISC/DNN_Benchmarks/benchmarks/$(APP)/predictive/temp.txt - -VISC_PRED_OPTFLAGS3 = -load $(HPVM_LIB_DIR)/LLVMBuildDFG.so -load $(HPVM_LIB_DIR)/LLVMInPlaceDFGAnalysis.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_WrapperAPI.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_X86.so -load $(HPVM_LIB_DIR)/LLVMFuseHPVMTensorNodes.so -load $(HPVM_LIB_DIR)/LLVMClearDFG.so -inplace -hpvm-fuse -dfg2llvm-wrapperapi -quantization-levels-filename=$(WRAPPER_API_QUANT_FILE_PATH) -configuration-inputs-filename=$(TEMP_CONF_FILE_PATH) -dfg2llvm-x86 -clearDFG +HPVM_PRED_OPTFLAGS3 = -load $(HPVM_LIB_DIR)/LLVMBuildDFG.so -load $(HPVM_LIB_DIR)/LLVMInPlaceDFGAnalysis.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_WrapperAPI.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_X86.so -load $(HPVM_LIB_DIR)/LLVMFuseHPVMTensorNodes.so -load $(HPVM_LIB_DIR)/LLVMClearDFG.so -inplace -hpvm-fuse -dfg2llvm-wrapperapi -quantization-levels-filename=$(WRAPPER_API_QUANT_FILE_PATH) -configuration-inputs-filename=$(TEMP_CONF_FILE_PATH) -dfg2llvm-x86 -clearDFG TARGET = $(BUILD_DIR)/$(APP).opt.bc SOURCES = $(SRC_DIR)/$(APP).cpp -VISC_RT_PATH = $(LLVM_SRC_ROOT)/../build/projects/visc-rt/visc-rt.ll +HPVM_RT_PATH = $(LLVM_SRC_ROOT)/../build/projects/hpvm-rt/visc-rt.ll -.PRECIOUS: $(BUILD_DIR)/$(APP).ll $(BUILD_DIR)/$(APP).visc.ll +.PRECIOUS: $(BUILD_DIR)/$(APP).ll $(BUILD_DIR)/$(APP).hpvm.ll default: $(BUILD_DIR) $(TARGET) @@ -58,14 +56,14 @@ $(BUILD_DIR)/%.ll: $(SRC_DIR)/%.cpp $(BUILD_DIR)/%.opt.bc: $(BUILD_DIR)/%.ll - $(OPT) -load LLVMGenVISC.so -genvisc -globaldce $(BUILD_DIR)/$(APP).ll -S -o $(BUILD_DIR)/$(APP).visc.ll - $(OPT) -load LLVMGenVISC.so -genvisc -globaldce $(BUILD_DIR)/$(APP)_loop.ll -S -o $(BUILD_DIR)/$(APP)_loop.visc.ll - $(OPT) $(VISC_OPTFLAGS) $(BUILD_DIR)/$(APP).visc.ll -o $(BUILD_DIR)/$(APP)_cudnn.bc - $(OPT) $(VISC_OPTFLAGS3) $(BUILD_DIR)/$(APP)_loop.visc.ll -o $(BUILD_DIR)/$(APP)_loop_wrapperapi.bc - $(OPT) $(VISC_PRED_OPTFLAGS3) $(BUILD_DIR)/$(APP)_loop.visc.ll -o $(BUILD_DIR)/$(APP)_pred_loop_wrapperapi.bc - $(LLVM_LINK) $(BUILD_DIR)/$(APP)_cudnn.bc $(VISC_RT_PATH) -o $(BUILD_DIR)/$(APP)_cudnn_linked.bc - $(LLVM_LINK) $(BUILD_DIR)/$(APP)_loop_wrapperapi.bc $(VISC_RT_PATH) -o $(BUILD_DIR)/$(APP)_loop_wrapperapi_linked.bc - $(LLVM_LINK) $(BUILD_DIR)/$(APP)_pred_loop_wrapperapi.bc $(VISC_RT_PATH) -o $(BUILD_DIR)/$(APP)_pred_loop_wrapperapi_linked.bc + $(OPT) -load LLVMGenHPVM.so -genhpvm -globaldce $(BUILD_DIR)/$(APP).ll -S -o $(BUILD_DIR)/$(APP).visc.ll + $(OPT) -load LLVMGenHPVM.so -genhpvm -globaldce $(BUILD_DIR)/$(APP)_loop.ll -S -o $(BUILD_DIR)/$(APP)_loop.visc.ll + $(OPT) $(HPVM_OPTFLAGS) $(BUILD_DIR)/$(APP).hpvm.ll -o $(BUILD_DIR)/$(APP)_cudnn.bc + $(OPT) $(HPVM_OPTFLAGS3) $(BUILD_DIR)/$(APP)_loop.hpvm.ll -o $(BUILD_DIR)/$(APP)_loop_wrapperapi.bc + $(OPT) $(HPVM_PRED_OPTFLAGS3) $(BUILD_DIR)/$(APP)_loop.hpvm.ll -o $(BUILD_DIR)/$(APP)_pred_loop_wrapperapi.bc + $(LLVM_LINK) $(BUILD_DIR)/$(APP)_cudnn.bc $(HPVM_RT_PATH) -o $(BUILD_DIR)/$(APP)_cudnn_linked.bc + $(LLVM_LINK) $(BUILD_DIR)/$(APP)_loop_wrapperapi.bc $(HPVM_RT_PATH) -o $(BUILD_DIR)/$(APP)_loop_wrapperapi_linked.bc + $(LLVM_LINK) $(BUILD_DIR)/$(APP)_pred_loop_wrapperapi.bc $(HPVM_RT_PATH) -o $(BUILD_DIR)/$(APP)_pred_loop_wrapperapi_linked.bc $(CC) $(BUILD_DIR)/$(APP)_cudnn_linked.bc $(TENSOR_LIB_DIR) $(PROFILER_LIB_DIR) $(SOC_SIMULATOR_LIB_DIR) -o $(BUILD_DIR)/$(APP)_cudnn_linked $(LINKER_FLAGS) $(CC) $(BUILD_DIR)/$(APP)_loop_wrapperapi_linked.bc $(TENSOR_LIB_DIR) $(PROFILER_LIB_DIR) $(SOC_SIMULATOR_LIB_DIR) -o $(BUILD_DIR)/$(APP)_loop_wrapperapi_linked $(LINKER_FLAGS) $(CC) $(BUILD_DIR)/$(APP)_pred_loop_wrapperapi_linked.bc $(TENSOR_LIB_DIR) $(PROFILER_LIB_DIR) $(SOC_SIMULATOR_LIB_DIR) -o $(BUILD_DIR)/$(APP)_pred_loop_wrapperapi_linked $(LINKER_FLAGS) diff --git a/hpvm/test/dnn_benchmarks/benchmarks/mobilenet/Makefile b/hpvm/test/dnn_benchmarks/benchmarks/mobilenet/Makefile index b271c2d37d7378a20525dec789272cb3808dcc7d..e91c4bd2c2184c9411b93ce6f7d98d6540a15e4e 100644 --- a/hpvm/test/dnn_benchmarks/benchmarks/mobilenet/Makefile +++ b/hpvm/test/dnn_benchmarks/benchmarks/mobilenet/Makefile @@ -1,4 +1,4 @@ -DNN_BENCHMARK_ROOT = $(LLVM_SRC_ROOT)/test/VISC/DNN_Benchmarks +DNN_BENCHMARK_ROOT = $(LLVM_SRC_ROOT)/tools/hpvm/test/dnn_benchmarks HPVM_BUILD_DIR = $(LLVM_BUILD_ROOT) CC = $(HPVM_BUILD_DIR)/bin/clang++ @@ -25,30 +25,28 @@ LINKER_FLAGS = -lpthread -lcudart -lcurand -lcudnn -lcublas -lcufft -lOpenCL -ls HPVM_LIB_DIR = $(HPVM_BUILD_DIR)/lib -VISC_OPTFLAGS = -load $(HPVM_LIB_DIR)/LLVMBuildDFG.so -load $(HPVM_LIB_DIR)/LLVMInPlaceDFGAnalysis.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_CUDNN.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_X86.so -load $(HPVM_LIB_DIR)/LLVMClearDFG.so -inplace -dfg2llvm-cudnn -dfg2llvm-x86 -clearDFG +HPVM_OPTFLAGS = -load $(HPVM_LIB_DIR)/LLVMBuildDFG.so -load $(HPVM_LIB_DIR)/LLVMInPlaceDFGAnalysis.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_CUDNN.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_X86.so -load $(HPVM_LIB_DIR)/LLVMClearDFG.so -inplace -dfg2llvm-cudnn -dfg2llvm-x86 -clearDFG -PROMISE_QUANT_FILE_PATH=$(LLVM_SRC_ROOT)/test/VISC/DNN_Benchmarks/benchmarks/$(APP)/data/quant_ranges.txt +PROMISE_QUANT_FILE_PATH=$(LLVM_SRC_ROOT)/test/dnn_benchmarks/benchmarks/$(APP)/data/quant_ranges.txt -VISC_OPTFLAGS2 = -load $(HPVM_LIB_DIR)/LLVMBuildDFG.so -load $(HPVM_LIB_DIR)/LLVMInPlaceDFGAnalysis.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_PROMISE.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_CUDNN.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_X86.so -load $(HPVM_LIB_DIR)/LLVMFuseHPVMTensorNodes.so -load $(HPVM_LIB_DIR)/LLVMClearDFG.so -inplace -hpvm-fuse -dfg2llvm-promise -quantization-levels-filename=$(PROMISE_QUANT_FILE_PATH) -dfg2llvm-cudnn -dfg2llvm-x86 -clearDFG +WRAPPER_API_QUANT_FILE_PATH=$(LLVM_SRC_ROOT)/test/dnn_benchmarks/benchmarks/$(APP)/data/quant_ranges_rt.txt +CONF_FILE_PATH=$(LLVM_SRC_ROOT)/test/dnn_benchmarks/benchmarks/$(APP)/data/tuner_confs.txt -WRAPPER_API_QUANT_FILE_PATH=$(LLVM_SRC_ROOT)/test/VISC/DNN_Benchmarks/benchmarks/$(APP)/data/quant_ranges_rt.txt -CONF_FILE_PATH=$(LLVM_SRC_ROOT)/test/VISC/DNN_Benchmarks/benchmarks/$(APP)/data/tuner_confs.txt +HPVM_OPTFLAGS3 = -load $(HPVM_LIB_DIR)/LLVMBuildDFG.so -load $(HPVM_LIB_DIR)/LLVMInPlaceDFGAnalysis.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_WrapperAPI.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_X86.so -load $(HPVM_LIB_DIR)/LLVMFuseHPVMTensorNodes.so -load $(HPVM_LIB_DIR)/LLVMClearDFG.so -inplace -hpvm-fuse -dfg2llvm-wrapperapi -quantization-levels-filename=$(WRAPPER_API_QUANT_FILE_PATH) -configuration-inputs-filename=$(CONF_FILE_PATH) -dfg2llvm-x86 -clearDFG -VISC_OPTFLAGS3 = -load $(HPVM_LIB_DIR)/LLVMBuildDFG.so -load $(HPVM_LIB_DIR)/LLVMInPlaceDFGAnalysis.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_WrapperAPI.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_X86.so -load $(HPVM_LIB_DIR)/LLVMFuseHPVMTensorNodes.so -load $(HPVM_LIB_DIR)/LLVMClearDFG.so -inplace -hpvm-fuse -dfg2llvm-wrapperapi -quantization-levels-filename=$(WRAPPER_API_QUANT_FILE_PATH) -configuration-inputs-filename=$(CONF_FILE_PATH) -dfg2llvm-x86 -clearDFG +TEMP_CONF_FILE_PATH=$(LLVM_SRC_ROOT)/test/dnn_benchmarks/benchmarks/$(APP)/predictive/temp.txt -TEMP_CONF_FILE_PATH=$(LLVM_SRC_ROOT)/test/VISC/DNN_Benchmarks/benchmarks/$(APP)/predictive/temp.txt - -VISC_PRED_OPTFLAGS3 = -load $(HPVM_LIB_DIR)/LLVMBuildDFG.so -load $(HPVM_LIB_DIR)/LLVMInPlaceDFGAnalysis.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_WrapperAPI.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_X86.so -load $(HPVM_LIB_DIR)/LLVMFuseHPVMTensorNodes.so -load $(HPVM_LIB_DIR)/LLVMClearDFG.so -inplace -hpvm-fuse -dfg2llvm-wrapperapi -quantization-levels-filename=$(WRAPPER_API_QUANT_FILE_PATH) -configuration-inputs-filename=$(TEMP_CONF_FILE_PATH) -dfg2llvm-x86 -clearDFG +HPVM_PRED_OPTFLAGS3 = -load $(HPVM_LIB_DIR)/LLVMBuildDFG.so -load $(HPVM_LIB_DIR)/LLVMInPlaceDFGAnalysis.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_WrapperAPI.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_X86.so -load $(HPVM_LIB_DIR)/LLVMFuseHPVMTensorNodes.so -load $(HPVM_LIB_DIR)/LLVMClearDFG.so -inplace -hpvm-fuse -dfg2llvm-wrapperapi -quantization-levels-filename=$(WRAPPER_API_QUANT_FILE_PATH) -configuration-inputs-filename=$(TEMP_CONF_FILE_PATH) -dfg2llvm-x86 -clearDFG TARGET = $(BUILD_DIR)/$(APP).opt.bc SOURCES = $(SRC_DIR)/$(APP).cpp -VISC_RT_PATH = $(LLVM_SRC_ROOT)/../build/projects/visc-rt/visc-rt.ll +HPVM_RT_PATH = $(LLVM_SRC_ROOT)/../build/projects/hpvm-rt/visc-rt.ll -.PRECIOUS: $(BUILD_DIR)/$(APP).ll $(BUILD_DIR)/$(APP).visc.ll +.PRECIOUS: $(BUILD_DIR)/$(APP).ll $(BUILD_DIR)/$(APP).hpvm.ll default: $(BUILD_DIR) $(TARGET) @@ -58,14 +56,14 @@ $(BUILD_DIR)/%.ll: $(SRC_DIR)/%.cpp $(BUILD_DIR)/%.opt.bc: $(BUILD_DIR)/%.ll - $(OPT) -load LLVMGenVISC.so -genvisc -globaldce $(BUILD_DIR)/$(APP).ll -S -o $(BUILD_DIR)/$(APP).visc.ll - $(OPT) -load LLVMGenVISC.so -genvisc -globaldce $(BUILD_DIR)/$(APP)_loop.ll -S -o $(BUILD_DIR)/$(APP)_loop.visc.ll - $(OPT) $(VISC_OPTFLAGS) $(BUILD_DIR)/$(APP).visc.ll -o $(BUILD_DIR)/$(APP)_cudnn.bc - $(OPT) $(VISC_OPTFLAGS3) $(BUILD_DIR)/$(APP)_loop.visc.ll -o $(BUILD_DIR)/$(APP)_loop_wrapperapi.bc - $(OPT) $(VISC_PRED_OPTFLAGS3) $(BUILD_DIR)/$(APP)_loop.visc.ll -o $(BUILD_DIR)/$(APP)_pred_loop_wrapperapi.bc - $(LLVM_LINK) $(BUILD_DIR)/$(APP)_cudnn.bc $(VISC_RT_PATH) -o $(BUILD_DIR)/$(APP)_cudnn_linked.bc - $(LLVM_LINK) $(BUILD_DIR)/$(APP)_loop_wrapperapi.bc $(VISC_RT_PATH) -o $(BUILD_DIR)/$(APP)_loop_wrapperapi_linked.bc - $(LLVM_LINK) $(BUILD_DIR)/$(APP)_pred_loop_wrapperapi.bc $(VISC_RT_PATH) -o $(BUILD_DIR)/$(APP)_pred_loop_wrapperapi_linked.bc + $(OPT) -load LLVMGenHPVM.so -genhpvm -globaldce $(BUILD_DIR)/$(APP).ll -S -o $(BUILD_DIR)/$(APP).visc.ll + $(OPT) -load LLVMGenHPVM.so -genhpvm -globaldce $(BUILD_DIR)/$(APP)_loop.ll -S -o $(BUILD_DIR)/$(APP)_loop.visc.ll + $(OPT) $(HPVM_OPTFLAGS) $(BUILD_DIR)/$(APP).hpvm.ll -o $(BUILD_DIR)/$(APP)_cudnn.bc + $(OPT) $(HPVM_OPTFLAGS3) $(BUILD_DIR)/$(APP)_loop.hpvm.ll -o $(BUILD_DIR)/$(APP)_loop_wrapperapi.bc + $(OPT) $(HPVM_PRED_OPTFLAGS3) $(BUILD_DIR)/$(APP)_loop.hpvm.ll -o $(BUILD_DIR)/$(APP)_pred_loop_wrapperapi.bc + $(LLVM_LINK) $(BUILD_DIR)/$(APP)_cudnn.bc $(HPVM_RT_PATH) -o $(BUILD_DIR)/$(APP)_cudnn_linked.bc + $(LLVM_LINK) $(BUILD_DIR)/$(APP)_loop_wrapperapi.bc $(HPVM_RT_PATH) -o $(BUILD_DIR)/$(APP)_loop_wrapperapi_linked.bc + $(LLVM_LINK) $(BUILD_DIR)/$(APP)_pred_loop_wrapperapi.bc $(HPVM_RT_PATH) -o $(BUILD_DIR)/$(APP)_pred_loop_wrapperapi_linked.bc $(CC) $(BUILD_DIR)/$(APP)_cudnn_linked.bc $(TENSOR_LIB_DIR) $(PROFILER_LIB_DIR) $(SOC_SIMULATOR_LIB_DIR) -o $(BUILD_DIR)/$(APP)_cudnn_linked $(LINKER_FLAGS) $(CC) $(BUILD_DIR)/$(APP)_loop_wrapperapi_linked.bc $(TENSOR_LIB_DIR) $(PROFILER_LIB_DIR) $(SOC_SIMULATOR_LIB_DIR) -o $(BUILD_DIR)/$(APP)_loop_wrapperapi_linked $(LINKER_FLAGS) $(CC) $(BUILD_DIR)/$(APP)_pred_loop_wrapperapi_linked.bc $(TENSOR_LIB_DIR) $(PROFILER_LIB_DIR) $(SOC_SIMULATOR_LIB_DIR) -o $(BUILD_DIR)/$(APP)_pred_loop_wrapperapi_linked $(LINKER_FLAGS) diff --git a/hpvm/test/dnn_benchmarks/benchmarks/resnet18/Makefile b/hpvm/test/dnn_benchmarks/benchmarks/resnet18/Makefile index f37c9512c0cda1dfa108e55ee930820395659271..3de4101bd66621728c80927a718f93ba1adf96d2 100644 --- a/hpvm/test/dnn_benchmarks/benchmarks/resnet18/Makefile +++ b/hpvm/test/dnn_benchmarks/benchmarks/resnet18/Makefile @@ -1,4 +1,4 @@ -DNN_BENCHMARK_ROOT = $(LLVM_SRC_ROOT)/test/VISC/DNN_Benchmarks +DNN_BENCHMARK_ROOT = $(LLVM_SRC_ROOT)/tools/hpvm/test/dnn_benchmarks HPVM_BUILD_DIR = $(LLVM_BUILD_ROOT) CC = $(HPVM_BUILD_DIR)/bin/clang++ @@ -25,30 +25,28 @@ LINKER_FLAGS = -lpthread -lcudart -lcurand -lcudnn -lcublas -lcufft -lOpenCL -ls HPVM_LIB_DIR = $(HPVM_BUILD_DIR)/lib -VISC_OPTFLAGS = -load $(HPVM_LIB_DIR)/LLVMBuildDFG.so -load $(HPVM_LIB_DIR)/LLVMInPlaceDFGAnalysis.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_CUDNN.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_X86.so -load $(HPVM_LIB_DIR)/LLVMClearDFG.so -inplace -dfg2llvm-cudnn -dfg2llvm-x86 -clearDFG +HPVM_OPTFLAGS = -load $(HPVM_LIB_DIR)/LLVMBuildDFG.so -load $(HPVM_LIB_DIR)/LLVMInPlaceDFGAnalysis.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_CUDNN.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_X86.so -load $(HPVM_LIB_DIR)/LLVMClearDFG.so -inplace -dfg2llvm-cudnn -dfg2llvm-x86 -clearDFG -PROMISE_QUANT_FILE_PATH=$(LLVM_SRC_ROOT)/test/VISC/DNN_Benchmarks/benchmarks/$(APP)/data/quant_ranges.txt +PROMISE_QUANT_FILE_PATH=$(LLVM_SRC_ROOT)/test/dnn_benchmarks/benchmarks/$(APP)/data/quant_ranges.txt -VISC_OPTFLAGS2 = -load $(HPVM_LIB_DIR)/LLVMBuildDFG.so -load $(HPVM_LIB_DIR)/LLVMInPlaceDFGAnalysis.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_PROMISE.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_CUDNN.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_X86.so -load $(HPVM_LIB_DIR)/LLVMFuseHPVMTensorNodes.so -load $(HPVM_LIB_DIR)/LLVMClearDFG.so -inplace -hpvm-fuse -dfg2llvm-promise -quantization-levels-filename=$(PROMISE_QUANT_FILE_PATH) -dfg2llvm-cudnn -dfg2llvm-x86 -clearDFG +WRAPPER_API_QUANT_FILE_PATH=$(LLVM_SRC_ROOT)/test/dnn_benchmarks/benchmarks/$(APP)/data/quant_ranges_rt.txt +CONF_FILE_PATH=$(LLVM_SRC_ROOT)/test/dnn_benchmarks/benchmarks/$(APP)/data/tuner_confs.txt -WRAPPER_API_QUANT_FILE_PATH=$(LLVM_SRC_ROOT)/test/VISC/DNN_Benchmarks/benchmarks/$(APP)/data/quant_ranges_rt.txt -CONF_FILE_PATH=$(LLVM_SRC_ROOT)/test/VISC/DNN_Benchmarks/benchmarks/$(APP)/data/tuner_confs.txt +HPVM_OPTFLAGS3 = -load $(HPVM_LIB_DIR)/LLVMBuildDFG.so -load $(HPVM_LIB_DIR)/LLVMInPlaceDFGAnalysis.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_WrapperAPI.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_X86.so -load $(HPVM_LIB_DIR)/LLVMFuseHPVMTensorNodes.so -load $(HPVM_LIB_DIR)/LLVMClearDFG.so -inplace -hpvm-fuse -dfg2llvm-wrapperapi -quantization-levels-filename=$(WRAPPER_API_QUANT_FILE_PATH) -configuration-inputs-filename=$(CONF_FILE_PATH) -dfg2llvm-x86 -clearDFG -VISC_OPTFLAGS3 = -load $(HPVM_LIB_DIR)/LLVMBuildDFG.so -load $(HPVM_LIB_DIR)/LLVMInPlaceDFGAnalysis.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_WrapperAPI.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_X86.so -load $(HPVM_LIB_DIR)/LLVMFuseHPVMTensorNodes.so -load $(HPVM_LIB_DIR)/LLVMClearDFG.so -inplace -hpvm-fuse -dfg2llvm-wrapperapi -quantization-levels-filename=$(WRAPPER_API_QUANT_FILE_PATH) -configuration-inputs-filename=$(CONF_FILE_PATH) -dfg2llvm-x86 -clearDFG +TEMP_CONF_FILE_PATH=$(LLVM_SRC_ROOT)/test/dnn_benchmarks/benchmarks/$(APP)/predictive/temp.txt -TEMP_CONF_FILE_PATH=$(LLVM_SRC_ROOT)/test/VISC/DNN_Benchmarks/benchmarks/$(APP)/predictive/temp.txt - -VISC_PRED_OPTFLAGS3 = -load $(HPVM_LIB_DIR)/LLVMBuildDFG.so -load $(HPVM_LIB_DIR)/LLVMInPlaceDFGAnalysis.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_WrapperAPI.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_X86.so -load $(HPVM_LIB_DIR)/LLVMFuseHPVMTensorNodes.so -load $(HPVM_LIB_DIR)/LLVMClearDFG.so -inplace -hpvm-fuse -dfg2llvm-wrapperapi -quantization-levels-filename=$(WRAPPER_API_QUANT_FILE_PATH) -configuration-inputs-filename=$(TEMP_CONF_FILE_PATH) -dfg2llvm-x86 -clearDFG +HPVM_PRED_OPTFLAGS3 = -load $(HPVM_LIB_DIR)/LLVMBuildDFG.so -load $(HPVM_LIB_DIR)/LLVMInPlaceDFGAnalysis.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_WrapperAPI.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_X86.so -load $(HPVM_LIB_DIR)/LLVMFuseHPVMTensorNodes.so -load $(HPVM_LIB_DIR)/LLVMClearDFG.so -inplace -hpvm-fuse -dfg2llvm-wrapperapi -quantization-levels-filename=$(WRAPPER_API_QUANT_FILE_PATH) -configuration-inputs-filename=$(TEMP_CONF_FILE_PATH) -dfg2llvm-x86 -clearDFG TARGET = $(BUILD_DIR)/$(APP).opt.bc SOURCES = $(SRC_DIR)/$(APP).cpp -VISC_RT_PATH = $(LLVM_SRC_ROOT)/../build/projects/visc-rt/visc-rt.ll +HPVM_RT_PATH = $(LLVM_SRC_ROOT)/../build/projects/hpvm-rt/visc-rt.ll -.PRECIOUS: $(BUILD_DIR)/$(APP).ll $(BUILD_DIR)/$(APP).visc.ll +.PRECIOUS: $(BUILD_DIR)/$(APP).ll $(BUILD_DIR)/$(APP).hpvm.ll default: $(BUILD_DIR) $(TARGET) @@ -58,14 +56,14 @@ $(BUILD_DIR)/%.ll: $(SRC_DIR)/%.cpp $(BUILD_DIR)/%.opt.bc: $(BUILD_DIR)/%.ll - $(OPT) -load LLVMGenVISC.so -genvisc -globaldce $(BUILD_DIR)/$(APP).ll -S -o $(BUILD_DIR)/$(APP).visc.ll - $(OPT) -load LLVMGenVISC.so -genvisc -globaldce $(BUILD_DIR)/$(APP)_loop.ll -S -o $(BUILD_DIR)/$(APP)_loop.visc.ll - $(OPT) $(VISC_OPTFLAGS) $(BUILD_DIR)/$(APP).visc.ll -o $(BUILD_DIR)/$(APP)_cudnn.bc - $(OPT) $(VISC_OPTFLAGS3) $(BUILD_DIR)/$(APP)_loop.visc.ll -o $(BUILD_DIR)/$(APP)_loop_wrapperapi.bc - $(OPT) $(VISC_PRED_OPTFLAGS3) $(BUILD_DIR)/$(APP)_loop.visc.ll -o $(BUILD_DIR)/$(APP)_pred_loop_wrapperapi.bc - $(LLVM_LINK) $(BUILD_DIR)/$(APP)_cudnn.bc $(VISC_RT_PATH) -o $(BUILD_DIR)/$(APP)_cudnn_linked.bc - $(LLVM_LINK) $(BUILD_DIR)/$(APP)_loop_wrapperapi.bc $(VISC_RT_PATH) -o $(BUILD_DIR)/$(APP)_loop_wrapperapi_linked.bc - $(LLVM_LINK) $(BUILD_DIR)/$(APP)_pred_loop_wrapperapi.bc $(VISC_RT_PATH) -o $(BUILD_DIR)/$(APP)_pred_loop_wrapperapi_linked.bc + $(OPT) -load LLVMGenHPVM.so -genhpvm -globaldce $(BUILD_DIR)/$(APP).ll -S -o $(BUILD_DIR)/$(APP).visc.ll + $(OPT) -load LLVMGenHPVM.so -genhpvm -globaldce $(BUILD_DIR)/$(APP)_loop.ll -S -o $(BUILD_DIR)/$(APP)_loop.visc.ll + $(OPT) $(HPVM_OPTFLAGS) $(BUILD_DIR)/$(APP).hpvm.ll -o $(BUILD_DIR)/$(APP)_cudnn.bc + $(OPT) $(HPVM_OPTFLAGS3) $(BUILD_DIR)/$(APP)_loop.hpvm.ll -o $(BUILD_DIR)/$(APP)_loop_wrapperapi.bc + $(OPT) $(HPVM_PRED_OPTFLAGS3) $(BUILD_DIR)/$(APP)_loop.hpvm.ll -o $(BUILD_DIR)/$(APP)_pred_loop_wrapperapi.bc + $(LLVM_LINK) $(BUILD_DIR)/$(APP)_cudnn.bc $(HPVM_RT_PATH) -o $(BUILD_DIR)/$(APP)_cudnn_linked.bc + $(LLVM_LINK) $(BUILD_DIR)/$(APP)_loop_wrapperapi.bc $(HPVM_RT_PATH) -o $(BUILD_DIR)/$(APP)_loop_wrapperapi_linked.bc + $(LLVM_LINK) $(BUILD_DIR)/$(APP)_pred_loop_wrapperapi.bc $(HPVM_RT_PATH) -o $(BUILD_DIR)/$(APP)_pred_loop_wrapperapi_linked.bc $(CC) $(BUILD_DIR)/$(APP)_cudnn_linked.bc $(TENSOR_LIB_DIR) $(PROFILER_LIB_DIR) $(SOC_SIMULATOR_LIB_DIR) -o $(BUILD_DIR)/$(APP)_cudnn_linked $(LINKER_FLAGS) $(CC) $(BUILD_DIR)/$(APP)_loop_wrapperapi_linked.bc $(TENSOR_LIB_DIR) $(PROFILER_LIB_DIR) $(SOC_SIMULATOR_LIB_DIR) -o $(BUILD_DIR)/$(APP)_loop_wrapperapi_linked $(LINKER_FLAGS) $(CC) $(BUILD_DIR)/$(APP)_pred_loop_wrapperapi_linked.bc $(TENSOR_LIB_DIR) $(PROFILER_LIB_DIR) $(SOC_SIMULATOR_LIB_DIR) -o $(BUILD_DIR)/$(APP)_pred_loop_wrapperapi_linked $(LINKER_FLAGS) diff --git a/hpvm/test/dnn_benchmarks/benchmarks/resnet50_imagenet/Makefile b/hpvm/test/dnn_benchmarks/benchmarks/resnet50_imagenet/Makefile index 022f6d511ca835953bab992e9691e0abfb954151..1370ea035425ae3500a8239586ff8d187d027071 100644 --- a/hpvm/test/dnn_benchmarks/benchmarks/resnet50_imagenet/Makefile +++ b/hpvm/test/dnn_benchmarks/benchmarks/resnet50_imagenet/Makefile @@ -1,4 +1,4 @@ -DNN_BENCHMARK_ROOT = $(LLVM_SRC_ROOT)/test/VISC/DNN_Benchmarks +DNN_BENCHMARK_ROOT = $(LLVM_SRC_ROOT)/tools/hpvm/test/dnn_benchmarks HPVM_BUILD_DIR = $(LLVM_BUILD_ROOT) CC = $(HPVM_BUILD_DIR)/bin/clang++ @@ -25,30 +25,28 @@ LINKER_FLAGS = -lpthread -lcudart -lcurand -lcudnn -lcublas -lcufft -lOpenCL -ls HPVM_LIB_DIR = $(HPVM_BUILD_DIR)/lib -VISC_OPTFLAGS = -load $(HPVM_LIB_DIR)/LLVMBuildDFG.so -load $(HPVM_LIB_DIR)/LLVMInPlaceDFGAnalysis.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_CUDNN.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_X86.so -load $(HPVM_LIB_DIR)/LLVMClearDFG.so -inplace -dfg2llvm-cudnn -dfg2llvm-x86 -clearDFG +HPVM_OPTFLAGS = -load $(HPVM_LIB_DIR)/LLVMBuildDFG.so -load $(HPVM_LIB_DIR)/LLVMInPlaceDFGAnalysis.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_CUDNN.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_X86.so -load $(HPVM_LIB_DIR)/LLVMClearDFG.so -inplace -dfg2llvm-cudnn -dfg2llvm-x86 -clearDFG -PROMISE_QUANT_FILE_PATH=$(LLVM_SRC_ROOT)/test/VISC/DNN_Benchmarks/benchmarks/$(APP)/data/quant_ranges.txt +PROMISE_QUANT_FILE_PATH=$(LLVM_SRC_ROOT)/test/dnn_benchmarks/benchmarks/$(APP)/data/quant_ranges.txt -VISC_OPTFLAGS2 = -load $(HPVM_LIB_DIR)/LLVMBuildDFG.so -load $(HPVM_LIB_DIR)/LLVMInPlaceDFGAnalysis.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_PROMISE.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_CUDNN.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_X86.so -load $(HPVM_LIB_DIR)/LLVMFuseHPVMTensorNodes.so -load $(HPVM_LIB_DIR)/LLVMClearDFG.so -inplace -hpvm-fuse -dfg2llvm-promise -quantization-levels-filename=$(PROMISE_QUANT_FILE_PATH) -dfg2llvm-cudnn -dfg2llvm-x86 -clearDFG +WRAPPER_API_QUANT_FILE_PATH=$(LLVM_SRC_ROOT)/test/dnn_benchmarks/benchmarks/$(APP)/data/quant_ranges_rt.txt +CONF_FILE_PATH=$(LLVM_SRC_ROOT)/test/dnn_benchmarks/benchmarks/$(APP)/data/tuner_confs.txt -WRAPPER_API_QUANT_FILE_PATH=$(LLVM_SRC_ROOT)/test/VISC/DNN_Benchmarks/benchmarks/$(APP)/data/quant_ranges_rt.txt -CONF_FILE_PATH=$(LLVM_SRC_ROOT)/test/VISC/DNN_Benchmarks/benchmarks/$(APP)/data/tuner_confs.txt +HPVM_OPTFLAGS3 = -load $(HPVM_LIB_DIR)/LLVMBuildDFG.so -load $(HPVM_LIB_DIR)/LLVMInPlaceDFGAnalysis.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_WrapperAPI.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_X86.so -load $(HPVM_LIB_DIR)/LLVMFuseHPVMTensorNodes.so -load $(HPVM_LIB_DIR)/LLVMClearDFG.so -inplace -hpvm-fuse -dfg2llvm-wrapperapi -quantization-levels-filename=$(WRAPPER_API_QUANT_FILE_PATH) -configuration-inputs-filename=$(CONF_FILE_PATH) -dfg2llvm-x86 -clearDFG -VISC_OPTFLAGS3 = -load $(HPVM_LIB_DIR)/LLVMBuildDFG.so -load $(HPVM_LIB_DIR)/LLVMInPlaceDFGAnalysis.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_WrapperAPI.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_X86.so -load $(HPVM_LIB_DIR)/LLVMFuseHPVMTensorNodes.so -load $(HPVM_LIB_DIR)/LLVMClearDFG.so -inplace -hpvm-fuse -dfg2llvm-wrapperapi -quantization-levels-filename=$(WRAPPER_API_QUANT_FILE_PATH) -configuration-inputs-filename=$(CONF_FILE_PATH) -dfg2llvm-x86 -clearDFG +TEMP_CONF_FILE_PATH=$(LLVM_SRC_ROOT)/test/dnn_benchmarks/benchmarks/$(APP)/predictive/temp.txt -TEMP_CONF_FILE_PATH=$(LLVM_SRC_ROOT)/test/VISC/DNN_Benchmarks/benchmarks/$(APP)/predictive/temp.txt - -VISC_PRED_OPTFLAGS3 = -load $(HPVM_LIB_DIR)/LLVMBuildDFG.so -load $(HPVM_LIB_DIR)/LLVMInPlaceDFGAnalysis.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_WrapperAPI.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_X86.so -load $(HPVM_LIB_DIR)/LLVMFuseHPVMTensorNodes.so -load $(HPVM_LIB_DIR)/LLVMClearDFG.so -inplace -hpvm-fuse -dfg2llvm-wrapperapi -quantization-levels-filename=$(WRAPPER_API_QUANT_FILE_PATH) -configuration-inputs-filename=$(TEMP_CONF_FILE_PATH) -dfg2llvm-x86 -clearDFG +HPVM_PRED_OPTFLAGS3 = -load $(HPVM_LIB_DIR)/LLVMBuildDFG.so -load $(HPVM_LIB_DIR)/LLVMInPlaceDFGAnalysis.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_WrapperAPI.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_X86.so -load $(HPVM_LIB_DIR)/LLVMFuseHPVMTensorNodes.so -load $(HPVM_LIB_DIR)/LLVMClearDFG.so -inplace -hpvm-fuse -dfg2llvm-wrapperapi -quantization-levels-filename=$(WRAPPER_API_QUANT_FILE_PATH) -configuration-inputs-filename=$(TEMP_CONF_FILE_PATH) -dfg2llvm-x86 -clearDFG TARGET = $(BUILD_DIR)/$(APP).opt.bc SOURCES = $(SRC_DIR)/$(APP).cpp -VISC_RT_PATH = $(LLVM_SRC_ROOT)/../build/projects/visc-rt/visc-rt.ll +HPVM_RT_PATH = $(LLVM_SRC_ROOT)/../build/projects/hpvm-rt/visc-rt.ll -.PRECIOUS: $(BUILD_DIR)/$(APP).ll $(BUILD_DIR)/$(APP).visc.ll +.PRECIOUS: $(BUILD_DIR)/$(APP).ll $(BUILD_DIR)/$(APP).hpvm.ll default: $(BUILD_DIR) $(TARGET) @@ -58,14 +56,14 @@ $(BUILD_DIR)/%.ll: $(SRC_DIR)/%.cpp $(BUILD_DIR)/%.opt.bc: $(BUILD_DIR)/%.ll - $(OPT) -load LLVMGenVISC.so -genvisc -globaldce $(BUILD_DIR)/$(APP).ll -S -o $(BUILD_DIR)/$(APP).visc.ll - $(OPT) -load LLVMGenVISC.so -genvisc -globaldce $(BUILD_DIR)/$(APP)_loop.ll -S -o $(BUILD_DIR)/$(APP)_loop.visc.ll - $(OPT) $(VISC_OPTFLAGS) $(BUILD_DIR)/$(APP).visc.ll -o $(BUILD_DIR)/$(APP)_cudnn.bc - $(OPT) $(VISC_OPTFLAGS3) $(BUILD_DIR)/$(APP)_loop.visc.ll -o $(BUILD_DIR)/$(APP)_loop_wrapperapi.bc - $(OPT) $(VISC_PRED_OPTFLAGS3) $(BUILD_DIR)/$(APP)_loop.visc.ll -o $(BUILD_DIR)/$(APP)_pred_loop_wrapperapi.bc - $(LLVM_LINK) $(BUILD_DIR)/$(APP)_cudnn.bc $(VISC_RT_PATH) -o $(BUILD_DIR)/$(APP)_cudnn_linked.bc - $(LLVM_LINK) $(BUILD_DIR)/$(APP)_loop_wrapperapi.bc $(VISC_RT_PATH) -o $(BUILD_DIR)/$(APP)_loop_wrapperapi_linked.bc - $(LLVM_LINK) $(BUILD_DIR)/$(APP)_pred_loop_wrapperapi.bc $(VISC_RT_PATH) -o $(BUILD_DIR)/$(APP)_pred_loop_wrapperapi_linked.bc + $(OPT) -load LLVMGenHPVM.so -genhpvm -globaldce $(BUILD_DIR)/$(APP).ll -S -o $(BUILD_DIR)/$(APP).visc.ll + $(OPT) -load LLVMGenHPVM.so -genhpvm -globaldce $(BUILD_DIR)/$(APP)_loop.ll -S -o $(BUILD_DIR)/$(APP)_loop.visc.ll + $(OPT) $(HPVM_OPTFLAGS) $(BUILD_DIR)/$(APP).hpvm.ll -o $(BUILD_DIR)/$(APP)_cudnn.bc + $(OPT) $(HPVM_OPTFLAGS3) $(BUILD_DIR)/$(APP)_loop.hpvm.ll -o $(BUILD_DIR)/$(APP)_loop_wrapperapi.bc + $(OPT) $(HPVM_PRED_OPTFLAGS3) $(BUILD_DIR)/$(APP)_loop.hpvm.ll -o $(BUILD_DIR)/$(APP)_pred_loop_wrapperapi.bc + $(LLVM_LINK) $(BUILD_DIR)/$(APP)_cudnn.bc $(HPVM_RT_PATH) -o $(BUILD_DIR)/$(APP)_cudnn_linked.bc + $(LLVM_LINK) $(BUILD_DIR)/$(APP)_loop_wrapperapi.bc $(HPVM_RT_PATH) -o $(BUILD_DIR)/$(APP)_loop_wrapperapi_linked.bc + $(LLVM_LINK) $(BUILD_DIR)/$(APP)_pred_loop_wrapperapi.bc $(HPVM_RT_PATH) -o $(BUILD_DIR)/$(APP)_pred_loop_wrapperapi_linked.bc $(CC) $(BUILD_DIR)/$(APP)_cudnn_linked.bc $(TENSOR_LIB_DIR) $(PROFILER_LIB_DIR) $(SOC_SIMULATOR_LIB_DIR) -o $(BUILD_DIR)/$(APP)_cudnn_linked $(LINKER_FLAGS) $(CC) $(BUILD_DIR)/$(APP)_loop_wrapperapi_linked.bc $(TENSOR_LIB_DIR) $(PROFILER_LIB_DIR) $(SOC_SIMULATOR_LIB_DIR) -o $(BUILD_DIR)/$(APP)_loop_wrapperapi_linked $(LINKER_FLAGS) $(CC) $(BUILD_DIR)/$(APP)_pred_loop_wrapperapi_linked.bc $(TENSOR_LIB_DIR) $(PROFILER_LIB_DIR) $(SOC_SIMULATOR_LIB_DIR) -o $(BUILD_DIR)/$(APP)_pred_loop_wrapperapi_linked $(LINKER_FLAGS) diff --git a/hpvm/test/dnn_benchmarks/benchmarks/vgg16_cifar10/Makefile b/hpvm/test/dnn_benchmarks/benchmarks/vgg16_cifar10/Makefile index 84dd620476f9fc8b0d16df138d8a48fd39d0e5a7..3cc42b7709fa86bb3064256eb3bfe215550628ea 100644 --- a/hpvm/test/dnn_benchmarks/benchmarks/vgg16_cifar10/Makefile +++ b/hpvm/test/dnn_benchmarks/benchmarks/vgg16_cifar10/Makefile @@ -1,4 +1,4 @@ -DNN_BENCHMARK_ROOT = $(LLVM_SRC_ROOT)/test/VISC/DNN_Benchmarks +DNN_BENCHMARK_ROOT = $(LLVM_SRC_ROOT)/tools/hpvm/test/dnn_benchmarks HPVM_BUILD_DIR = $(LLVM_BUILD_ROOT) CC = $(HPVM_BUILD_DIR)/bin/clang++ @@ -25,30 +25,28 @@ LINKER_FLAGS = -lpthread -lcudart -lcurand -lcudnn -lcublas -lcufft -lOpenCL -ls HPVM_LIB_DIR = $(HPVM_BUILD_DIR)/lib -VISC_OPTFLAGS = -load $(HPVM_LIB_DIR)/LLVMBuildDFG.so -load $(HPVM_LIB_DIR)/LLVMInPlaceDFGAnalysis.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_CUDNN.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_X86.so -load $(HPVM_LIB_DIR)/LLVMClearDFG.so -inplace -dfg2llvm-cudnn -dfg2llvm-x86 -clearDFG +HPVM_OPTFLAGS = -load $(HPVM_LIB_DIR)/LLVMBuildDFG.so -load $(HPVM_LIB_DIR)/LLVMInPlaceDFGAnalysis.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_CUDNN.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_X86.so -load $(HPVM_LIB_DIR)/LLVMClearDFG.so -inplace -dfg2llvm-cudnn -dfg2llvm-x86 -clearDFG -PROMISE_QUANT_FILE_PATH=$(LLVM_SRC_ROOT)/test/VISC/DNN_Benchmarks/benchmarks/$(APP)/data/quant_ranges.txt +PROMISE_QUANT_FILE_PATH=$(LLVM_SRC_ROOT)/test/dnn_benchmarks/benchmarks/$(APP)/data/quant_ranges.txt -VISC_OPTFLAGS2 = -load $(HPVM_LIB_DIR)/LLVMBuildDFG.so -load $(HPVM_LIB_DIR)/LLVMInPlaceDFGAnalysis.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_PROMISE.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_CUDNN.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_X86.so -load $(HPVM_LIB_DIR)/LLVMFuseHPVMTensorNodes.so -load $(HPVM_LIB_DIR)/LLVMClearDFG.so -inplace -hpvm-fuse -dfg2llvm-promise -quantization-levels-filename=$(PROMISE_QUANT_FILE_PATH) -dfg2llvm-cudnn -dfg2llvm-x86 -clearDFG +WRAPPER_API_QUANT_FILE_PATH=$(LLVM_SRC_ROOT)/test/dnn_benchmarks/benchmarks/$(APP)/data/quant_ranges_rt.txt +CONF_FILE_PATH=$(LLVM_SRC_ROOT)/test/dnn_benchmarks/benchmarks/$(APP)/data/tuner_confs.txt -WRAPPER_API_QUANT_FILE_PATH=$(LLVM_SRC_ROOT)/test/VISC/DNN_Benchmarks/benchmarks/$(APP)/data/quant_ranges_rt.txt -CONF_FILE_PATH=$(LLVM_SRC_ROOT)/test/VISC/DNN_Benchmarks/benchmarks/$(APP)/data/tuner_confs.txt +HPVM_OPTFLAGS3 = -load $(HPVM_LIB_DIR)/LLVMBuildDFG.so -load $(HPVM_LIB_DIR)/LLVMInPlaceDFGAnalysis.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_WrapperAPI.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_X86.so -load $(HPVM_LIB_DIR)/LLVMFuseHPVMTensorNodes.so -load $(HPVM_LIB_DIR)/LLVMClearDFG.so -inplace -hpvm-fuse -dfg2llvm-wrapperapi -quantization-levels-filename=$(WRAPPER_API_QUANT_FILE_PATH) -configuration-inputs-filename=$(CONF_FILE_PATH) -dfg2llvm-x86 -clearDFG -VISC_OPTFLAGS3 = -load $(HPVM_LIB_DIR)/LLVMBuildDFG.so -load $(HPVM_LIB_DIR)/LLVMInPlaceDFGAnalysis.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_WrapperAPI.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_X86.so -load $(HPVM_LIB_DIR)/LLVMFuseHPVMTensorNodes.so -load $(HPVM_LIB_DIR)/LLVMClearDFG.so -inplace -hpvm-fuse -dfg2llvm-wrapperapi -quantization-levels-filename=$(WRAPPER_API_QUANT_FILE_PATH) -configuration-inputs-filename=$(CONF_FILE_PATH) -dfg2llvm-x86 -clearDFG +TEMP_CONF_FILE_PATH=$(LLVM_SRC_ROOT)/test/dnn_benchmarks/benchmarks/$(APP)/predictive/temp.txt -TEMP_CONF_FILE_PATH=$(LLVM_SRC_ROOT)/test/VISC/DNN_Benchmarks/benchmarks/$(APP)/predictive/temp.txt - -VISC_PRED_OPTFLAGS3 = -load $(HPVM_LIB_DIR)/LLVMBuildDFG.so -load $(HPVM_LIB_DIR)/LLVMInPlaceDFGAnalysis.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_WrapperAPI.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_X86.so -load $(HPVM_LIB_DIR)/LLVMFuseHPVMTensorNodes.so -load $(HPVM_LIB_DIR)/LLVMClearDFG.so -inplace -hpvm-fuse -dfg2llvm-wrapperapi -quantization-levels-filename=$(WRAPPER_API_QUANT_FILE_PATH) -configuration-inputs-filename=$(TEMP_CONF_FILE_PATH) -dfg2llvm-x86 -clearDFG +HPVM_PRED_OPTFLAGS3 = -load $(HPVM_LIB_DIR)/LLVMBuildDFG.so -load $(HPVM_LIB_DIR)/LLVMInPlaceDFGAnalysis.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_WrapperAPI.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_X86.so -load $(HPVM_LIB_DIR)/LLVMFuseHPVMTensorNodes.so -load $(HPVM_LIB_DIR)/LLVMClearDFG.so -inplace -hpvm-fuse -dfg2llvm-wrapperapi -quantization-levels-filename=$(WRAPPER_API_QUANT_FILE_PATH) -configuration-inputs-filename=$(TEMP_CONF_FILE_PATH) -dfg2llvm-x86 -clearDFG TARGET = $(BUILD_DIR)/$(APP).opt.bc SOURCES = $(SRC_DIR)/$(APP).cpp -VISC_RT_PATH = $(LLVM_SRC_ROOT)/../build/projects/visc-rt/visc-rt.ll +HPVM_RT_PATH = $(LLVM_SRC_ROOT)/../build/projects/hpvm-rt/visc-rt.ll -.PRECIOUS: $(BUILD_DIR)/$(APP).ll $(BUILD_DIR)/$(APP).visc.ll +.PRECIOUS: $(BUILD_DIR)/$(APP).ll $(BUILD_DIR)/$(APP).hpvm.ll default: $(BUILD_DIR) $(TARGET) @@ -58,14 +56,14 @@ $(BUILD_DIR)/%.ll: $(SRC_DIR)/%.cpp $(BUILD_DIR)/%.opt.bc: $(BUILD_DIR)/%.ll - $(OPT) -load LLVMGenVISC.so -genvisc -globaldce $(BUILD_DIR)/$(APP).ll -S -o $(BUILD_DIR)/$(APP).visc.ll - $(OPT) -load LLVMGenVISC.so -genvisc -globaldce $(BUILD_DIR)/$(APP)_loop.ll -S -o $(BUILD_DIR)/$(APP)_loop.visc.ll - $(OPT) $(VISC_OPTFLAGS) $(BUILD_DIR)/$(APP).visc.ll -o $(BUILD_DIR)/$(APP)_cudnn.bc - $(OPT) $(VISC_OPTFLAGS3) $(BUILD_DIR)/$(APP)_loop.visc.ll -o $(BUILD_DIR)/$(APP)_loop_wrapperapi.bc - $(OPT) $(VISC_PRED_OPTFLAGS3) $(BUILD_DIR)/$(APP)_loop.visc.ll -o $(BUILD_DIR)/$(APP)_pred_loop_wrapperapi.bc - $(LLVM_LINK) $(BUILD_DIR)/$(APP)_cudnn.bc $(VISC_RT_PATH) -o $(BUILD_DIR)/$(APP)_cudnn_linked.bc - $(LLVM_LINK) $(BUILD_DIR)/$(APP)_loop_wrapperapi.bc $(VISC_RT_PATH) -o $(BUILD_DIR)/$(APP)_loop_wrapperapi_linked.bc - $(LLVM_LINK) $(BUILD_DIR)/$(APP)_pred_loop_wrapperapi.bc $(VISC_RT_PATH) -o $(BUILD_DIR)/$(APP)_pred_loop_wrapperapi_linked.bc + $(OPT) -load LLVMGenHPVM.so -genhpvm -globaldce $(BUILD_DIR)/$(APP).ll -S -o $(BUILD_DIR)/$(APP).visc.ll + $(OPT) -load LLVMGenHPVM.so -genhpvm -globaldce $(BUILD_DIR)/$(APP)_loop.ll -S -o $(BUILD_DIR)/$(APP)_loop.visc.ll + $(OPT) $(HPVM_OPTFLAGS) $(BUILD_DIR)/$(APP).hpvm.ll -o $(BUILD_DIR)/$(APP)_cudnn.bc + $(OPT) $(HPVM_OPTFLAGS3) $(BUILD_DIR)/$(APP)_loop.hpvm.ll -o $(BUILD_DIR)/$(APP)_loop_wrapperapi.bc + $(OPT) $(HPVM_PRED_OPTFLAGS3) $(BUILD_DIR)/$(APP)_loop.hpvm.ll -o $(BUILD_DIR)/$(APP)_pred_loop_wrapperapi.bc + $(LLVM_LINK) $(BUILD_DIR)/$(APP)_cudnn.bc $(HPVM_RT_PATH) -o $(BUILD_DIR)/$(APP)_cudnn_linked.bc + $(LLVM_LINK) $(BUILD_DIR)/$(APP)_loop_wrapperapi.bc $(HPVM_RT_PATH) -o $(BUILD_DIR)/$(APP)_loop_wrapperapi_linked.bc + $(LLVM_LINK) $(BUILD_DIR)/$(APP)_pred_loop_wrapperapi.bc $(HPVM_RT_PATH) -o $(BUILD_DIR)/$(APP)_pred_loop_wrapperapi_linked.bc $(CC) $(BUILD_DIR)/$(APP)_cudnn_linked.bc $(TENSOR_LIB_DIR) $(PROFILER_LIB_DIR) $(SOC_SIMULATOR_LIB_DIR) -o $(BUILD_DIR)/$(APP)_cudnn_linked $(LINKER_FLAGS) $(CC) $(BUILD_DIR)/$(APP)_loop_wrapperapi_linked.bc $(TENSOR_LIB_DIR) $(PROFILER_LIB_DIR) $(SOC_SIMULATOR_LIB_DIR) -o $(BUILD_DIR)/$(APP)_loop_wrapperapi_linked $(LINKER_FLAGS) $(CC) $(BUILD_DIR)/$(APP)_pred_loop_wrapperapi_linked.bc $(TENSOR_LIB_DIR) $(PROFILER_LIB_DIR) $(SOC_SIMULATOR_LIB_DIR) -o $(BUILD_DIR)/$(APP)_pred_loop_wrapperapi_linked $(LINKER_FLAGS) diff --git a/hpvm/test/dnn_benchmarks/benchmarks/vgg16_cifar100/Makefile b/hpvm/test/dnn_benchmarks/benchmarks/vgg16_cifar100/Makefile index 4dc63839d8a7754f9fa033dac2a1af019b25b3b1..e64af1183e3b294e33d773a96c262bce62ed6da9 100644 --- a/hpvm/test/dnn_benchmarks/benchmarks/vgg16_cifar100/Makefile +++ b/hpvm/test/dnn_benchmarks/benchmarks/vgg16_cifar100/Makefile @@ -1,4 +1,4 @@ -DNN_BENCHMARK_ROOT = $(LLVM_SRC_ROOT)/test/VISC/DNN_Benchmarks +DNN_BENCHMARK_ROOT = $(LLVM_SRC_ROOT)/tools/hpvm/test/dnn_benchmarks HPVM_BUILD_DIR = $(LLVM_BUILD_ROOT) CC = $(HPVM_BUILD_DIR)/bin/clang++ @@ -25,30 +25,28 @@ LINKER_FLAGS = -lpthread -lcudart -lcurand -lcudnn -lcublas -lcufft -lOpenCL -ls HPVM_LIB_DIR = $(HPVM_BUILD_DIR)/lib -VISC_OPTFLAGS = -load $(HPVM_LIB_DIR)/LLVMBuildDFG.so -load $(HPVM_LIB_DIR)/LLVMInPlaceDFGAnalysis.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_CUDNN.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_X86.so -load $(HPVM_LIB_DIR)/LLVMClearDFG.so -inplace -dfg2llvm-cudnn -dfg2llvm-x86 -clearDFG +HPVM_OPTFLAGS = -load $(HPVM_LIB_DIR)/LLVMBuildDFG.so -load $(HPVM_LIB_DIR)/LLVMInPlaceDFGAnalysis.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_CUDNN.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_X86.so -load $(HPVM_LIB_DIR)/LLVMClearDFG.so -inplace -dfg2llvm-cudnn -dfg2llvm-x86 -clearDFG -PROMISE_QUANT_FILE_PATH=$(LLVM_SRC_ROOT)/test/VISC/DNN_Benchmarks/benchmarks/$(APP)/data/quant_ranges.txt +PROMISE_QUANT_FILE_PATH=$(LLVM_SRC_ROOT)/test/dnn_benchmarks/benchmarks/$(APP)/data/quant_ranges.txt -VISC_OPTFLAGS2 = -load $(HPVM_LIB_DIR)/LLVMBuildDFG.so -load $(HPVM_LIB_DIR)/LLVMInPlaceDFGAnalysis.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_PROMISE.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_CUDNN.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_X86.so -load $(HPVM_LIB_DIR)/LLVMFuseHPVMTensorNodes.so -load $(HPVM_LIB_DIR)/LLVMClearDFG.so -inplace -hpvm-fuse -dfg2llvm-promise -quantization-levels-filename=$(PROMISE_QUANT_FILE_PATH) -dfg2llvm-cudnn -dfg2llvm-x86 -clearDFG +WRAPPER_API_QUANT_FILE_PATH=$(LLVM_SRC_ROOT)/test/dnn_benchmarks/benchmarks/$(APP)/data/quant_ranges_rt.txt +CONF_FILE_PATH=$(LLVM_SRC_ROOT)/test/dnn_benchmarks/benchmarks/$(APP)/data/tuner_confs.txt -WRAPPER_API_QUANT_FILE_PATH=$(LLVM_SRC_ROOT)/test/VISC/DNN_Benchmarks/benchmarks/$(APP)/data/quant_ranges_rt.txt -CONF_FILE_PATH=$(LLVM_SRC_ROOT)/test/VISC/DNN_Benchmarks/benchmarks/$(APP)/data/tuner_confs.txt +HPVM_OPTFLAGS3 = -load $(HPVM_LIB_DIR)/LLVMBuildDFG.so -load $(HPVM_LIB_DIR)/LLVMInPlaceDFGAnalysis.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_WrapperAPI.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_X86.so -load $(HPVM_LIB_DIR)/LLVMFuseHPVMTensorNodes.so -load $(HPVM_LIB_DIR)/LLVMClearDFG.so -inplace -hpvm-fuse -dfg2llvm-wrapperapi -quantization-levels-filename=$(WRAPPER_API_QUANT_FILE_PATH) -configuration-inputs-filename=$(CONF_FILE_PATH) -dfg2llvm-x86 -clearDFG -VISC_OPTFLAGS3 = -load $(HPVM_LIB_DIR)/LLVMBuildDFG.so -load $(HPVM_LIB_DIR)/LLVMInPlaceDFGAnalysis.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_WrapperAPI.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_X86.so -load $(HPVM_LIB_DIR)/LLVMFuseHPVMTensorNodes.so -load $(HPVM_LIB_DIR)/LLVMClearDFG.so -inplace -hpvm-fuse -dfg2llvm-wrapperapi -quantization-levels-filename=$(WRAPPER_API_QUANT_FILE_PATH) -configuration-inputs-filename=$(CONF_FILE_PATH) -dfg2llvm-x86 -clearDFG +TEMP_CONF_FILE_PATH=$(LLVM_SRC_ROOT)/test/dnn_benchmarks/benchmarks/$(APP)/predictive/temp.txt -TEMP_CONF_FILE_PATH=$(LLVM_SRC_ROOT)/test/VISC/DNN_Benchmarks/benchmarks/$(APP)/predictive/temp.txt - -VISC_PRED_OPTFLAGS3 = -load $(HPVM_LIB_DIR)/LLVMBuildDFG.so -load $(HPVM_LIB_DIR)/LLVMInPlaceDFGAnalysis.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_WrapperAPI.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_X86.so -load $(HPVM_LIB_DIR)/LLVMFuseHPVMTensorNodes.so -load $(HPVM_LIB_DIR)/LLVMClearDFG.so -inplace -hpvm-fuse -dfg2llvm-wrapperapi -quantization-levels-filename=$(WRAPPER_API_QUANT_FILE_PATH) -configuration-inputs-filename=$(TEMP_CONF_FILE_PATH) -dfg2llvm-x86 -clearDFG +HPVM_PRED_OPTFLAGS3 = -load $(HPVM_LIB_DIR)/LLVMBuildDFG.so -load $(HPVM_LIB_DIR)/LLVMInPlaceDFGAnalysis.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_WrapperAPI.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_X86.so -load $(HPVM_LIB_DIR)/LLVMFuseHPVMTensorNodes.so -load $(HPVM_LIB_DIR)/LLVMClearDFG.so -inplace -hpvm-fuse -dfg2llvm-wrapperapi -quantization-levels-filename=$(WRAPPER_API_QUANT_FILE_PATH) -configuration-inputs-filename=$(TEMP_CONF_FILE_PATH) -dfg2llvm-x86 -clearDFG TARGET = $(BUILD_DIR)/$(APP).opt.bc SOURCES = $(SRC_DIR)/$(APP).cpp -VISC_RT_PATH = $(LLVM_SRC_ROOT)/../build/projects/visc-rt/visc-rt.ll +HPVM_RT_PATH = $(LLVM_SRC_ROOT)/../build/projects/hpvm-rt/visc-rt.ll -.PRECIOUS: $(BUILD_DIR)/$(APP).ll $(BUILD_DIR)/$(APP).visc.ll +.PRECIOUS: $(BUILD_DIR)/$(APP).ll $(BUILD_DIR)/$(APP).hpvm.ll default: $(BUILD_DIR) $(TARGET) @@ -58,14 +56,14 @@ $(BUILD_DIR)/%.ll: $(SRC_DIR)/%.cpp $(BUILD_DIR)/%.opt.bc: $(BUILD_DIR)/%.ll - $(OPT) -load LLVMGenVISC.so -genvisc -globaldce $(BUILD_DIR)/$(APP).ll -S -o $(BUILD_DIR)/$(APP).visc.ll - $(OPT) -load LLVMGenVISC.so -genvisc -globaldce $(BUILD_DIR)/$(APP)_loop.ll -S -o $(BUILD_DIR)/$(APP)_loop.visc.ll - $(OPT) $(VISC_OPTFLAGS) $(BUILD_DIR)/$(APP).visc.ll -o $(BUILD_DIR)/$(APP)_cudnn.bc - $(OPT) $(VISC_OPTFLAGS3) $(BUILD_DIR)/$(APP)_loop.visc.ll -o $(BUILD_DIR)/$(APP)_loop_wrapperapi.bc - $(OPT) $(VISC_PRED_OPTFLAGS3) $(BUILD_DIR)/$(APP)_loop.visc.ll -o $(BUILD_DIR)/$(APP)_pred_loop_wrapperapi.bc - $(LLVM_LINK) $(BUILD_DIR)/$(APP)_cudnn.bc $(VISC_RT_PATH) -o $(BUILD_DIR)/$(APP)_cudnn_linked.bc - $(LLVM_LINK) $(BUILD_DIR)/$(APP)_loop_wrapperapi.bc $(VISC_RT_PATH) -o $(BUILD_DIR)/$(APP)_loop_wrapperapi_linked.bc - $(LLVM_LINK) $(BUILD_DIR)/$(APP)_pred_loop_wrapperapi.bc $(VISC_RT_PATH) -o $(BUILD_DIR)/$(APP)_pred_loop_wrapperapi_linked.bc + $(OPT) -load LLVMGenHPVM.so -genhpvm -globaldce $(BUILD_DIR)/$(APP).ll -S -o $(BUILD_DIR)/$(APP).visc.ll + $(OPT) -load LLVMGenHPVM.so -genhpvm -globaldce $(BUILD_DIR)/$(APP)_loop.ll -S -o $(BUILD_DIR)/$(APP)_loop.visc.ll + $(OPT) $(HPVM_OPTFLAGS) $(BUILD_DIR)/$(APP).hpvm.ll -o $(BUILD_DIR)/$(APP)_cudnn.bc + $(OPT) $(HPVM_OPTFLAGS3) $(BUILD_DIR)/$(APP)_loop.hpvm.ll -o $(BUILD_DIR)/$(APP)_loop_wrapperapi.bc + $(OPT) $(HPVM_PRED_OPTFLAGS3) $(BUILD_DIR)/$(APP)_loop.hpvm.ll -o $(BUILD_DIR)/$(APP)_pred_loop_wrapperapi.bc + $(LLVM_LINK) $(BUILD_DIR)/$(APP)_cudnn.bc $(HPVM_RT_PATH) -o $(BUILD_DIR)/$(APP)_cudnn_linked.bc + $(LLVM_LINK) $(BUILD_DIR)/$(APP)_loop_wrapperapi.bc $(HPVM_RT_PATH) -o $(BUILD_DIR)/$(APP)_loop_wrapperapi_linked.bc + $(LLVM_LINK) $(BUILD_DIR)/$(APP)_pred_loop_wrapperapi.bc $(HPVM_RT_PATH) -o $(BUILD_DIR)/$(APP)_pred_loop_wrapperapi_linked.bc $(CC) $(BUILD_DIR)/$(APP)_cudnn_linked.bc $(TENSOR_LIB_DIR) $(PROFILER_LIB_DIR) $(SOC_SIMULATOR_LIB_DIR) -o $(BUILD_DIR)/$(APP)_cudnn_linked $(LINKER_FLAGS) $(CC) $(BUILD_DIR)/$(APP)_loop_wrapperapi_linked.bc $(TENSOR_LIB_DIR) $(PROFILER_LIB_DIR) $(SOC_SIMULATOR_LIB_DIR) -o $(BUILD_DIR)/$(APP)_loop_wrapperapi_linked $(LINKER_FLAGS) $(CC) $(BUILD_DIR)/$(APP)_pred_loop_wrapperapi_linked.bc $(TENSOR_LIB_DIR) $(PROFILER_LIB_DIR) $(SOC_SIMULATOR_LIB_DIR) -o $(BUILD_DIR)/$(APP)_pred_loop_wrapperapi_linked $(LINKER_FLAGS) diff --git a/hpvm/test/dnn_benchmarks/benchmarks/vgg16_imagenet/Makefile b/hpvm/test/dnn_benchmarks/benchmarks/vgg16_imagenet/Makefile index dac19282d24e1c0d283dc30974b0fa306579b584..3536d71cd608f5ad92d95517dfffbb09eda90f30 100644 --- a/hpvm/test/dnn_benchmarks/benchmarks/vgg16_imagenet/Makefile +++ b/hpvm/test/dnn_benchmarks/benchmarks/vgg16_imagenet/Makefile @@ -1,4 +1,4 @@ -DNN_BENCHMARK_ROOT = $(LLVM_SRC_ROOT)/test/VISC/DNN_Benchmarks +DNN_BENCHMARK_ROOT = $(LLVM_SRC_ROOT)/tools/hpvm/test/dnn_benchmarks HPVM_BUILD_DIR = $(LLVM_BUILD_ROOT) CC = $(HPVM_BUILD_DIR)/bin/clang++ @@ -25,30 +25,28 @@ LINKER_FLAGS = -lpthread -lcudart -lcurand -lcudnn -lcublas -lcufft -lOpenCL -ls HPVM_LIB_DIR = $(HPVM_BUILD_DIR)/lib -VISC_OPTFLAGS = -load $(HPVM_LIB_DIR)/LLVMBuildDFG.so -load $(HPVM_LIB_DIR)/LLVMInPlaceDFGAnalysis.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_CUDNN.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_X86.so -load $(HPVM_LIB_DIR)/LLVMClearDFG.so -inplace -dfg2llvm-cudnn -dfg2llvm-x86 -clearDFG +HPVM_OPTFLAGS = -load $(HPVM_LIB_DIR)/LLVMBuildDFG.so -load $(HPVM_LIB_DIR)/LLVMInPlaceDFGAnalysis.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_CUDNN.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_X86.so -load $(HPVM_LIB_DIR)/LLVMClearDFG.so -inplace -dfg2llvm-cudnn -dfg2llvm-x86 -clearDFG -PROMISE_QUANT_FILE_PATH=$(LLVM_SRC_ROOT)/test/VISC/DNN_Benchmarks/benchmarks/$(APP)/data/quant_ranges.txt +PROMISE_QUANT_FILE_PATH=$(LLVM_SRC_ROOT)/test/dnn_benchmarks/benchmarks/$(APP)/data/quant_ranges.txt -VISC_OPTFLAGS2 = -load $(HPVM_LIB_DIR)/LLVMBuildDFG.so -load $(HPVM_LIB_DIR)/LLVMInPlaceDFGAnalysis.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_PROMISE.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_CUDNN.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_X86.so -load $(HPVM_LIB_DIR)/LLVMFuseHPVMTensorNodes.so -load $(HPVM_LIB_DIR)/LLVMClearDFG.so -inplace -hpvm-fuse -dfg2llvm-promise -quantization-levels-filename=$(PROMISE_QUANT_FILE_PATH) -dfg2llvm-cudnn -dfg2llvm-x86 -clearDFG +WRAPPER_API_QUANT_FILE_PATH=$(LLVM_SRC_ROOT)/test/dnn_benchmarks/benchmarks/$(APP)/data/quant_ranges_rt.txt +CONF_FILE_PATH=$(LLVM_SRC_ROOT)/test/dnn_benchmarks/benchmarks/$(APP)/data/tuner_confs.txt -WRAPPER_API_QUANT_FILE_PATH=$(LLVM_SRC_ROOT)/test/VISC/DNN_Benchmarks/benchmarks/$(APP)/data/quant_ranges_rt.txt -CONF_FILE_PATH=$(LLVM_SRC_ROOT)/test/VISC/DNN_Benchmarks/benchmarks/$(APP)/data/tuner_confs.txt +HPVM_OPTFLAGS3 = -load $(HPVM_LIB_DIR)/LLVMBuildDFG.so -load $(HPVM_LIB_DIR)/LLVMInPlaceDFGAnalysis.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_WrapperAPI.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_X86.so -load $(HPVM_LIB_DIR)/LLVMFuseHPVMTensorNodes.so -load $(HPVM_LIB_DIR)/LLVMClearDFG.so -inplace -hpvm-fuse -dfg2llvm-wrapperapi -quantization-levels-filename=$(WRAPPER_API_QUANT_FILE_PATH) -configuration-inputs-filename=$(CONF_FILE_PATH) -dfg2llvm-x86 -clearDFG -VISC_OPTFLAGS3 = -load $(HPVM_LIB_DIR)/LLVMBuildDFG.so -load $(HPVM_LIB_DIR)/LLVMInPlaceDFGAnalysis.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_WrapperAPI.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_X86.so -load $(HPVM_LIB_DIR)/LLVMFuseHPVMTensorNodes.so -load $(HPVM_LIB_DIR)/LLVMClearDFG.so -inplace -hpvm-fuse -dfg2llvm-wrapperapi -quantization-levels-filename=$(WRAPPER_API_QUANT_FILE_PATH) -configuration-inputs-filename=$(CONF_FILE_PATH) -dfg2llvm-x86 -clearDFG +TEMP_CONF_FILE_PATH=$(LLVM_SRC_ROOT)/test/dnn_benchmarks/benchmarks/$(APP)/predictive/temp.txt -TEMP_CONF_FILE_PATH=$(LLVM_SRC_ROOT)/test/VISC/DNN_Benchmarks/benchmarks/$(APP)/predictive/temp.txt - -VISC_PRED_OPTFLAGS3 = -load $(HPVM_LIB_DIR)/LLVMBuildDFG.so -load $(HPVM_LIB_DIR)/LLVMInPlaceDFGAnalysis.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_WrapperAPI.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_X86.so -load $(HPVM_LIB_DIR)/LLVMFuseHPVMTensorNodes.so -load $(HPVM_LIB_DIR)/LLVMClearDFG.so -inplace -hpvm-fuse -dfg2llvm-wrapperapi -quantization-levels-filename=$(WRAPPER_API_QUANT_FILE_PATH) -configuration-inputs-filename=$(TEMP_CONF_FILE_PATH) -dfg2llvm-x86 -clearDFG +HPVM_PRED_OPTFLAGS3 = -load $(HPVM_LIB_DIR)/LLVMBuildDFG.so -load $(HPVM_LIB_DIR)/LLVMInPlaceDFGAnalysis.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_WrapperAPI.so -load $(HPVM_LIB_DIR)/LLVMDFG2LLVM_X86.so -load $(HPVM_LIB_DIR)/LLVMFuseHPVMTensorNodes.so -load $(HPVM_LIB_DIR)/LLVMClearDFG.so -inplace -hpvm-fuse -dfg2llvm-wrapperapi -quantization-levels-filename=$(WRAPPER_API_QUANT_FILE_PATH) -configuration-inputs-filename=$(TEMP_CONF_FILE_PATH) -dfg2llvm-x86 -clearDFG TARGET = $(BUILD_DIR)/$(APP).opt.bc SOURCES = $(SRC_DIR)/$(APP).cpp -VISC_RT_PATH = $(LLVM_SRC_ROOT)/../build/projects/visc-rt/visc-rt.ll +HPVM_RT_PATH = $(LLVM_SRC_ROOT)/../build/projects/hpvm-rt/visc-rt.ll -.PRECIOUS: $(BUILD_DIR)/$(APP).ll $(BUILD_DIR)/$(APP).visc.ll +.PRECIOUS: $(BUILD_DIR)/$(APP).ll $(BUILD_DIR)/$(APP).hpvm.ll default: $(BUILD_DIR) $(TARGET) @@ -58,14 +56,14 @@ $(BUILD_DIR)/%.ll: $(SRC_DIR)/%.cpp $(BUILD_DIR)/%.opt.bc: $(BUILD_DIR)/%.ll - $(OPT) -load LLVMGenVISC.so -genvisc -globaldce $(BUILD_DIR)/$(APP).ll -S -o $(BUILD_DIR)/$(APP).visc.ll - $(OPT) -load LLVMGenVISC.so -genvisc -globaldce $(BUILD_DIR)/$(APP)_loop.ll -S -o $(BUILD_DIR)/$(APP)_loop.visc.ll - $(OPT) $(VISC_OPTFLAGS) $(BUILD_DIR)/$(APP).visc.ll -o $(BUILD_DIR)/$(APP)_cudnn.bc - $(OPT) $(VISC_OPTFLAGS3) $(BUILD_DIR)/$(APP)_loop.visc.ll -o $(BUILD_DIR)/$(APP)_loop_wrapperapi.bc - $(OPT) $(VISC_PRED_OPTFLAGS3) $(BUILD_DIR)/$(APP)_loop.visc.ll -o $(BUILD_DIR)/$(APP)_pred_loop_wrapperapi.bc - $(LLVM_LINK) $(BUILD_DIR)/$(APP)_cudnn.bc $(VISC_RT_PATH) -o $(BUILD_DIR)/$(APP)_cudnn_linked.bc - $(LLVM_LINK) $(BUILD_DIR)/$(APP)_loop_wrapperapi.bc $(VISC_RT_PATH) -o $(BUILD_DIR)/$(APP)_loop_wrapperapi_linked.bc - $(LLVM_LINK) $(BUILD_DIR)/$(APP)_pred_loop_wrapperapi.bc $(VISC_RT_PATH) -o $(BUILD_DIR)/$(APP)_pred_loop_wrapperapi_linked.bc + $(OPT) -load LLVMGenHPVM.so -genhpvm -globaldce $(BUILD_DIR)/$(APP).ll -S -o $(BUILD_DIR)/$(APP).visc.ll + $(OPT) -load LLVMGenHPVM.so -genhpvm -globaldce $(BUILD_DIR)/$(APP)_loop.ll -S -o $(BUILD_DIR)/$(APP)_loop.visc.ll + $(OPT) $(HPVM_OPTFLAGS) $(BUILD_DIR)/$(APP).hpvm.ll -o $(BUILD_DIR)/$(APP)_cudnn.bc + $(OPT) $(HPVM_OPTFLAGS3) $(BUILD_DIR)/$(APP)_loop.hpvm.ll -o $(BUILD_DIR)/$(APP)_loop_wrapperapi.bc + $(OPT) $(HPVM_PRED_OPTFLAGS3) $(BUILD_DIR)/$(APP)_loop.hpvm.ll -o $(BUILD_DIR)/$(APP)_pred_loop_wrapperapi.bc + $(LLVM_LINK) $(BUILD_DIR)/$(APP)_cudnn.bc $(HPVM_RT_PATH) -o $(BUILD_DIR)/$(APP)_cudnn_linked.bc + $(LLVM_LINK) $(BUILD_DIR)/$(APP)_loop_wrapperapi.bc $(HPVM_RT_PATH) -o $(BUILD_DIR)/$(APP)_loop_wrapperapi_linked.bc + $(LLVM_LINK) $(BUILD_DIR)/$(APP)_pred_loop_wrapperapi.bc $(HPVM_RT_PATH) -o $(BUILD_DIR)/$(APP)_pred_loop_wrapperapi_linked.bc $(CC) $(BUILD_DIR)/$(APP)_cudnn_linked.bc $(TENSOR_LIB_DIR) $(PROFILER_LIB_DIR) $(SOC_SIMULATOR_LIB_DIR) -o $(BUILD_DIR)/$(APP)_cudnn_linked $(LINKER_FLAGS) $(CC) $(BUILD_DIR)/$(APP)_loop_wrapperapi_linked.bc $(TENSOR_LIB_DIR) $(PROFILER_LIB_DIR) $(SOC_SIMULATOR_LIB_DIR) -o $(BUILD_DIR)/$(APP)_loop_wrapperapi_linked $(LINKER_FLAGS) $(CC) $(BUILD_DIR)/$(APP)_pred_loop_wrapperapi_linked.bc $(TENSOR_LIB_DIR) $(PROFILER_LIB_DIR) $(SOC_SIMULATOR_LIB_DIR) -o $(BUILD_DIR)/$(APP)_pred_loop_wrapperapi_linked $(LINKER_FLAGS)