From fbf0084f5fd0c37f35083b9715e3e5148edf2c4d Mon Sep 17 00:00:00 2001 From: Yifan Zhao <yifanz16@illinois.edu> Date: Tue, 22 Dec 2020 05:39:57 -0600 Subject: [PATCH] Deprecates manually-set LLVM_SRC_ROOT in tensor_runtime --- hpvm/projects/hpvm-tensor-rt/CMakeLists.txt | 28 ++++++++++--- .../tensor_runtime/include/config.h.in | 1 + .../tensor_runtime/src/approx_knobs_utils.cc | 39 +++---------------- 3 files changed, 28 insertions(+), 40 deletions(-) create mode 100644 hpvm/projects/hpvm-tensor-rt/tensor_runtime/include/config.h.in diff --git a/hpvm/projects/hpvm-tensor-rt/CMakeLists.txt b/hpvm/projects/hpvm-tensor-rt/CMakeLists.txt index 489d38313b..2b41397dfe 100644 --- a/hpvm/projects/hpvm-tensor-rt/CMakeLists.txt +++ b/hpvm/projects/hpvm-tensor-rt/CMakeLists.txt @@ -32,13 +32,29 @@ add_definitions(-DNO_INJECTION) add_definitions(-DPROMISE_TUNER_ENABLED) add_definitions(-DSIMULATION_MODE=true) +# Config path configuration file +if(NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/global_knobs.txt) + message(FATAL_ERROR "global_knobs.txt not found") +endif() +# GLOBAL_KNOBS_FILE is used in a string in C, +# so whatever you do, please don't have quotation mark (") in your filename. +get_filename_component(GLOBAL_KNOBS_FILE ${CMAKE_CURRENT_SOURCE_DIR}/global_knobs.txt REALPATH) +configure_file( + tensor_runtime/include/config.h.in + ${CMAKE_CURRENT_BINARY_DIR}/tensor_runtime/include/config.h +) + # Default include/link directories -include_directories($ENV{CUDNN_PATH} $ENV{CUDNN_PATH}/include) -include_directories(./tensor_runtime/include) -include_directories(./dnn_sources/include) -include_directories(../gpu_profiler/include) -include_directories(../soc_simulator/include) -link_directories(${CUDA_TOOLKIT_ROOT_DIR}/lib64 $ENV{CUDNN_PATH} $ENV{CUDNN_PATH}/lib $ENV{CUDNN_PATH}/lib64) +include_directories( + $ENV{CUDNN_PATH} $ENV{CUDNN_PATH}/include + ./tensor_runtime/include ${CMAKE_CURRENT_BINARY_DIR}/tensor_runtime/include + ./dnn_sources/include + ../gpu_profiler/include ../soc_simulator/include +) +link_directories( + ${CUDA_TOOLKIT_ROOT_DIR}/lib64 $ENV{CUDNN_PATH} + $ENV{CUDNN_PATH}/lib $ENV{CUDNN_PATH}/lib64 +) # Source files of runtime set( diff --git a/hpvm/projects/hpvm-tensor-rt/tensor_runtime/include/config.h.in b/hpvm/projects/hpvm-tensor-rt/tensor_runtime/include/config.h.in new file mode 100644 index 0000000000..27606bcf7e --- /dev/null +++ b/hpvm/projects/hpvm-tensor-rt/tensor_runtime/include/config.h.in @@ -0,0 +1 @@ +#define GLOBAL_KNOBS_FILE "@GLOBAL_KNOBS_FILE@" diff --git a/hpvm/projects/hpvm-tensor-rt/tensor_runtime/src/approx_knobs_utils.cc b/hpvm/projects/hpvm-tensor-rt/tensor_runtime/src/approx_knobs_utils.cc index 9d7cb4976f..c5d79020ac 100644 --- a/hpvm/projects/hpvm-tensor-rt/tensor_runtime/src/approx_knobs_utils.cc +++ b/hpvm/projects/hpvm-tensor-rt/tensor_runtime/src/approx_knobs_utils.cc @@ -8,6 +8,7 @@ #include "approx_knob_utils.h" #include "debug.h" +#include "config.h" PerfParams::PerfParams() { row = 1; @@ -22,23 +23,8 @@ PerfParams::PerfParams(int row1, int col1, int skip_offset1) { } PerfParamSet::PerfParamSet() { - - char llvm_src_root[100]; - char *env_str = getenv("LLVM_SRC_ROOT"); - - if (env_str == NULL) { - ERROR("ERROR: SET LLVM_SRC_ROOT \n"); - } - - strcpy(llvm_src_root, env_str); - printf("*LLVM_SRC_ROOT = %s", llvm_src_root); - - char *knobs_file_path = - strcat(llvm_src_root, - "/projects/hpvm-tensor-rt/autotuner/data/global_knobs.txt"); - printf("- knobs_file_path = %s \n", knobs_file_path); - - std::ifstream file(knobs_file_path); + printf("- knobs_file_path = %s \n", GLOBAL_KNOBS_FILE); + std::ifstream file(GLOBAL_KNOBS_FILE); std::string line; std::string partial; @@ -106,23 +92,8 @@ SampParams::SampParams(int skip_rate1, int skip_offset1, } SampParamSet::SampParamSet() { - - char llvm_src_root[100]; - char *env_str = getenv("LLVM_SRC_ROOT"); - - if (env_str == NULL) { - ERROR("ERROR: SET LLVM_SRC_ROOT \n"); - } - - strcpy(llvm_src_root, env_str); - printf("* LLVM_SRC_ROOT = %s \n", llvm_src_root); - - char *knobs_file_path = - strcat(llvm_src_root, - "/projects/hpvm-tensor-rt/autotuner/data/global_knobs.txt"); - printf("- knobs_file_path = %s \n", knobs_file_path); - - std::ifstream file(knobs_file_path); + printf("- knobs_file_path = %s \n", GLOBAL_KNOBS_FILE); + std::ifstream file(GLOBAL_KNOBS_FILE); std::string line; std::string partial; -- GitLab