From: @lianghuikang Reviewed-by: Signed-off-by:tags/v1.3.0
| @@ -263,6 +263,7 @@ class Impl { | |||||
| omg_context_.user_attr_index_valid = false; | omg_context_.user_attr_index_valid = false; | ||||
| }; | }; | ||||
| ~Impl() { (void)generator_.Finalize(); }; | ~Impl() { (void)generator_.Finalize(); }; | ||||
| graphStatus CheckBuildModeAndBuildStep(); | |||||
| graphStatus GetSupportedOptions(const std::map<std::string, std::string> &in, | graphStatus GetSupportedOptions(const std::map<std::string, std::string> &in, | ||||
| std::map<std::string, std::string> &out); | std::map<std::string, std::string> &out); | ||||
| graphStatus CheckOptions(const std::map<std::string, std::string> &options); | graphStatus CheckOptions(const std::map<std::string, std::string> &options); | ||||
| @@ -451,6 +452,37 @@ graphStatus Impl::UpdateDataOpAttr(const Graph &graph) { | |||||
| return GRAPH_SUCCESS; | return GRAPH_SUCCESS; | ||||
| } | } | ||||
| graphStatus Impl::CheckBuildModeAndBuildStep() { | |||||
| std::string build_mode; | |||||
| auto it = options_.find(BUILD_MODE); | |||||
| if (it != options_.end() && !(it->second.empty())) { | |||||
| if (build_mode_options.find(it->second) == build_mode_options.end()) { | |||||
| REPORT_INPUT_ERROR("E10001", std::vector<std::string>({"parameter", "value", "reason"}), | |||||
| std::vector<std::string>({BUILD_MODE, it->second, "value is unsupported. Please check!"})); | |||||
| GELOGE(GRAPH_PARAM_INVALID, "[Check][BuildMode]:%s is unsupported. Please check!", it->second.c_str()); | |||||
| return GRAPH_PARAM_INVALID; | |||||
| } | |||||
| build_mode = it->second; | |||||
| } | |||||
| it = options_.find(BUILD_STEP); | |||||
| if (it != options_.end() && !(it->second.empty())) { | |||||
| if (build_step_options.find(it->second) == build_step_options.end()) { | |||||
| REPORT_INPUT_ERROR("E10001", std::vector<std::string>({"parameter", "value", "reason"}), | |||||
| std::vector<std::string>({BUILD_STEP, it->second, "value is unsupported. Please check!"})); | |||||
| GELOGE(GRAPH_PARAM_INVALID, "[Check][BuildStep]:%s is unsupported. Please check!", it->second.c_str()); | |||||
| return GRAPH_PARAM_INVALID; | |||||
| } | |||||
| } else { | |||||
| if (build_mode == BUILD_MODE_TUNING) { | |||||
| REPORT_INPUT_ERROR("E10001", std::vector<std::string>({"parameter", "value", "reason"}), | |||||
| std::vector<std::string>({BUILD_MODE, it->second, "tuning must specify build step. Please check!"})); | |||||
| GELOGE(GRAPH_PARAM_INVALID, "[Check][BuildMode] tuning must specify build step. Please check!"); | |||||
| return GRAPH_PARAM_INVALID; | |||||
| } | |||||
| } | |||||
| return GRAPH_SUCCESS; | |||||
| } | |||||
| graphStatus Impl::GetSupportedOptions(const std::map<std::string, std::string> &in, | graphStatus Impl::GetSupportedOptions(const std::map<std::string, std::string> &in, | ||||
| std::map<std::string, std::string> &out) { | std::map<std::string, std::string> &out) { | ||||
| for (auto &ele : in) { | for (auto &ele : in) { | ||||
| @@ -475,29 +507,12 @@ graphStatus Impl::CheckOptions(const std::map<std::string, std::string> &options | |||||
| } | } | ||||
| // Check options build_mode and build_step. | // Check options build_mode and build_step. | ||||
| std::string build_mode; | |||||
| auto it = options_.find(BUILD_MODE); | |||||
| if (it != options_.end() && !(it->second.empty())) { | |||||
| if (build_mode_options.find(it->second) == build_mode_options.end()) { | |||||
| GELOGE(GRAPH_PARAM_INVALID, "[Check][BuildMode]:%s is unsupported. Please check!", it->second.c_str()); | |||||
| return GRAPH_PARAM_INVALID; | |||||
| } | |||||
| build_mode = it->second; | |||||
| } | |||||
| it = options_.find(BUILD_STEP); | |||||
| if (it != options_.end() && !(it->second.empty())) { | |||||
| if (build_step_options.find(it->second) == build_step_options.end()) { | |||||
| GELOGE(GRAPH_PARAM_INVALID, "[Check][BuildStep]:%s is unsupported. Please check!", it->second.c_str()); | |||||
| return GRAPH_PARAM_INVALID; | |||||
| } | |||||
| } else { | |||||
| if (build_mode == BUILD_MODE_TUNING) { | |||||
| GELOGE(GRAPH_PARAM_INVALID, "[Check][BuildMode] tuning must specify build step. Please check!"); | |||||
| return GRAPH_PARAM_INVALID; | |||||
| } | |||||
| ret = CheckBuildModeAndBuildStep(); | |||||
| if (ret != GRAPH_SUCCESS) { | |||||
| return ret; | |||||
| } | } | ||||
| // Check option EXEC_DISABLE_REUSED_MEMORY | // Check option EXEC_DISABLE_REUSED_MEMORY | ||||
| it = options_.find(ge::ir_option::EXEC_DISABLE_REUSED_MEMORY); | |||||
| auto it = options_.find(ge::ir_option::EXEC_DISABLE_REUSED_MEMORY); | |||||
| if (it != options_.end() && (CheckDisableReuseMemoryParamValid(it->second) != GRAPH_SUCCESS)) { | if (it != options_.end() && (CheckDisableReuseMemoryParamValid(it->second) != GRAPH_SUCCESS)) { | ||||
| return GRAPH_PARAM_INVALID; | return GRAPH_PARAM_INVALID; | ||||
| } | } | ||||
| @@ -505,6 +520,18 @@ graphStatus Impl::CheckOptions(const std::map<std::string, std::string> &options | |||||
| if (ge::CheckModifyMixlistParamValid(options_) != GRAPH_SUCCESS) { | if (ge::CheckModifyMixlistParamValid(options_) != GRAPH_SUCCESS) { | ||||
| return GRAPH_PARAM_INVALID; | return GRAPH_PARAM_INVALID; | ||||
| } | } | ||||
| // Check option OP_PRECISION_MODE | |||||
| it = options_.find(ge::ir_option::OP_PRECISION_MODE); | |||||
| if (it != options_.end() && !it->second.empty() && !ge::CheckInputPathValid(it->second)) { | |||||
| REPORT_INPUT_ERROR("E10001", std::vector<std::string>({"parameter", "value", "reason"}), | |||||
| std::vector<std::string>({ge::ir_option::OP_PRECISION_MODE, it->second, "path is not found"})); | |||||
| GELOGE(GRAPH_PARAM_INVALID, "[Check][OP_PRECISION_MODE] %s not found", it->second.c_str()); | |||||
| return GRAPH_PARAM_INVALID; | |||||
| } | |||||
| if (it != options_.end()) { | |||||
| GELOGI("Option set successfully, option_key=%s, option_value=%s", | |||||
| ge::ir_option::OP_PRECISION_MODE, it->second.c_str()); | |||||
| } | |||||
| // Check Input Format | // Check Input Format | ||||
| if (options_.find(kInputFormat) != options_.end()) { | if (options_.find(kInputFormat) != options_.end()) { | ||||
| return CheckInputFormat(options_[kInputFormat]); | return CheckInputFormat(options_[kInputFormat]); | ||||
| @@ -106,10 +106,14 @@ DEFINE_string(out_nodes, "", | |||||
| "Optional; output nodes designated by users." | "Optional; output nodes designated by users." | ||||
| "Format: \"node_name1:0;node_name1:1;node_name2:0\""); | "Format: \"node_name1:0;node_name1:1;node_name2:0\""); | ||||
| DEFINE_string(op_precision_mode, "", "Optional; operator precision mode configuration file path"); | |||||
| DEFINE_string(precision_mode, "force_fp16", | DEFINE_string(precision_mode, "force_fp16", | ||||
| "Optional; precision mode." | "Optional; precision mode." | ||||
| "Support force_fp16, force_fp32, allow_mix_precision, allow_fp32_to_fp16, must_keep_origin_dtype."); | "Support force_fp16, force_fp32, allow_mix_precision, allow_fp32_to_fp16, must_keep_origin_dtype."); | ||||
| DEFINE_string(modify_mixlist, "", "Optional; operator mixed precision configuration file path"); | |||||
| DEFINE_string(keep_dtype, "", | DEFINE_string(keep_dtype, "", | ||||
| "Optional; config file to specify the precision used by the operator during compilation."); | "Optional; config file to specify the precision used by the operator during compilation."); | ||||
| @@ -192,8 +196,11 @@ DEFINE_string(log, "null", "Optional; generate atc log. Support debug, info, war | |||||
| DEFINE_string(dump_mode, "0", "Optional; generate infershape json,only support 1 , 0."); | DEFINE_string(dump_mode, "0", "Optional; generate infershape json,only support 1 , 0."); | ||||
| DEFINE_int32(op_debug_level, 0, "Optional; configure debug level of compiler. 0(default): close debug;" | |||||
| "1: open TBE compiler, export ccec file and TBE instruction mapping file; 2: open ccec compiler"); | |||||
| DEFINE_int32(op_debug_level, 0, "Optional; configure debug level of compiler. 0(default): close debug; " | |||||
| "1: open TBE compiler, export ccec file and TBE instruction mapping file; 2: open ccec compiler; " | |||||
| "3: disable debug, and keep generating kernel file (.o and .json); 4: disable debug, " | |||||
| "keep generation kernel file (.o and .json) and generate the operator CCE file (.cce) " | |||||
| "and the UB fusion computing description file (.json)"); | |||||
| DEFINE_string(enable_scope_fusion_passes, "", "Optional; validate the non-general scope fusion pass," | DEFINE_string(enable_scope_fusion_passes, "", "Optional; validate the non-general scope fusion pass," | ||||
| "multiple names can be set and separated by ','."); | "multiple names can be set and separated by ','."); | ||||
| DEFINE_string(debug_dir, "", "Optional; the path to save the intermediate files of operator compilation"); | DEFINE_string(debug_dir, "", "Optional; the path to save the intermediate files of operator compilation"); | ||||
| @@ -210,8 +217,6 @@ DEFINE_string(display_model_info, "0", "Optional; display model info"); | |||||
| DEFINE_string(device_id, "0", "Optional; user device id"); | DEFINE_string(device_id, "0", "Optional; user device id"); | ||||
| DEFINE_string(modify_mixlist, "", "Optional; operator mixed precision configuration file path"); | |||||
| class GFlagUtils { | class GFlagUtils { | ||||
| public: | public: | ||||
| /** | /** | ||||
| @@ -298,8 +303,10 @@ class GFlagUtils { | |||||
| "\"l1_optimize\", \"off_optimize\"\n" | "\"l1_optimize\", \"off_optimize\"\n" | ||||
| " --mdl_bank_path Set the path of the custom repository generated after model tuning.\n" | " --mdl_bank_path Set the path of the custom repository generated after model tuning.\n" | ||||
| "\n[Operator Tuning]\n" | "\n[Operator Tuning]\n" | ||||
| " --op_precision_mode Set the path of operator precision mode configuration file (.ini)\n" | |||||
| " --precision_mode precision mode, support force_fp16(default), force_fp32, allow_mix_precision, " | " --precision_mode precision mode, support force_fp16(default), force_fp32, allow_mix_precision, " | ||||
| "allow_fp32_to_fp16, must_keep_origin_dtype.\n" | "allow_fp32_to_fp16, must_keep_origin_dtype.\n" | ||||
| " --modify_mixlist Set the path of operator mixed precision configuration file.\n" | |||||
| " --keep_dtype Retains the precision of certain operators in inference " | " --keep_dtype Retains the precision of certain operators in inference " | ||||
| "scenarios by using a configuration file.\n" | "scenarios by using a configuration file.\n" | ||||
| " --auto_tune_mode Set tune mode. E.g.: \"GA,RL\", support configure multiple, spit by ,\n" | " --auto_tune_mode Set tune mode. E.g.: \"GA,RL\", support configure multiple, spit by ,\n" | ||||
| @@ -315,7 +322,8 @@ class GFlagUtils { | |||||
| " 2: Enable TBE pipe_all, generate the operator CCE file and Python-CCE mapping file " | " 2: Enable TBE pipe_all, generate the operator CCE file and Python-CCE mapping file " | ||||
| "(.json), and enable the CCE compiler -O0-g.\n" | "(.json), and enable the CCE compiler -O0-g.\n" | ||||
| " 3: Disable debug, and keep generating kernel file (.o and .json)\n" | " 3: Disable debug, and keep generating kernel file (.o and .json)\n" | ||||
| " --modify_mixlist Set the path of operator mixed precision configuration file.\n" | |||||
| " 4: Disable debug, keep generation kernel file (.o and .json) and generate the " | |||||
| "operator CCE file (.cce) and the UB fusion computing description file (.json)" | |||||
| "\n[Debug]\n" | "\n[Debug]\n" | ||||
| " --save_original_model Control whether to output original model. E.g.: true: output original model\n" | " --save_original_model Control whether to output original model. E.g.: true: output original model\n" | ||||
| " --log Generate log with level. Support debug, info, warning, error, null\n" | " --log Generate log with level. Support debug, info, warning, error, null\n" | ||||
| @@ -365,6 +373,14 @@ class GFlagUtils { | |||||
| FLAGS_op_select_implmode) != ge::SUCCESS, | FLAGS_op_select_implmode) != ge::SUCCESS, | ||||
| ret = ge::FAILED, "[Check][ImplMode]check optypelist_for_implmode and op_select_implmode failed!"); | ret = ge::FAILED, "[Check][ImplMode]check optypelist_for_implmode and op_select_implmode failed!"); | ||||
| if (!FLAGS_op_precision_mode.empty() && !ge::CheckInputPathValid(FLAGS_op_precision_mode, "--op_precision_mode")) { | |||||
| ErrorManager::GetInstance().ATCReportErrMessage("E10001", {"parameter", "value", "reason"}, | |||||
| {"op_precision_mode", FLAGS_op_precision_mode.c_str(), | |||||
| "path is not found"}); | |||||
| GELOGE(ge::FAILED, "[Check][op_precision_mode] %s not found", FLAGS_op_precision_mode.c_str()); | |||||
| ret = ge::FAILED; | |||||
| } | |||||
| if (ge::CheckModifyMixlistParamValid(FLAGS_precision_mode, FLAGS_modify_mixlist) != ge::SUCCESS) { | if (ge::CheckModifyMixlistParamValid(FLAGS_precision_mode, FLAGS_modify_mixlist) != ge::SUCCESS) { | ||||
| ErrorManager::GetInstance().ATCReportErrMessage("E10001", {"parameter", "value", "reason"}, | ErrorManager::GetInstance().ATCReportErrMessage("E10001", {"parameter", "value", "reason"}, | ||||
| {"modify_mixlist", FLAGS_modify_mixlist.c_str(), | {"modify_mixlist", FLAGS_modify_mixlist.c_str(), | ||||
| @@ -1049,6 +1065,7 @@ static void SetEnvForSingleOp(std::map<string, string> &options) { | |||||
| options.emplace(ge::RUN_FLAG, flag_off); | options.emplace(ge::RUN_FLAG, flag_off); | ||||
| options.emplace(ge::OPTION_GRAPH_RUN_MODE, flag_off); | options.emplace(ge::OPTION_GRAPH_RUN_MODE, flag_off); | ||||
| options.emplace(ge::SINGLE_OP_FLAG, flag_on); | options.emplace(ge::SINGLE_OP_FLAG, flag_on); | ||||
| options.emplace(ge::OP_PRECISION_MODE, FLAGS_op_precision_mode); | |||||
| options.emplace(ge::PRECISION_MODE, FLAGS_precision_mode); | options.emplace(ge::PRECISION_MODE, FLAGS_precision_mode); | ||||
| options.emplace(ge::SOC_VERSION, FLAGS_soc_version); | options.emplace(ge::SOC_VERSION, FLAGS_soc_version); | ||||
| options.emplace(ge::CORE_TYPE, FLAGS_core_type); | options.emplace(ge::CORE_TYPE, FLAGS_core_type); | ||||
| @@ -1076,6 +1093,14 @@ domi::Status GenerateSingleOp(const std::string& json_file_path) { | |||||
| ge::CheckImplmodeParamValid(FLAGS_optypelist_for_implmode, FLAGS_op_select_implmode) != ge::SUCCESS, | ge::CheckImplmodeParamValid(FLAGS_optypelist_for_implmode, FLAGS_op_select_implmode) != ge::SUCCESS, | ||||
| return ge::FAILED, "[Check][ImplmodeParam] fail for input optypelist_for_implmode and op_select_implmode."); | return ge::FAILED, "[Check][ImplmodeParam] fail for input optypelist_for_implmode and op_select_implmode."); | ||||
| if (!FLAGS_op_precision_mode.empty() && !ge::CheckInputPathValid(FLAGS_op_precision_mode, "--op_precision_mode")) { | |||||
| ErrorManager::GetInstance().ATCReportErrMessage("E10001", {"parameter", "value", "reason"}, | |||||
| {"op_precision_mode", FLAGS_op_precision_mode.c_str(), | |||||
| "path is not found"}); | |||||
| GELOGE(ge::FAILED, "[Check][op_precision_mode] %s not found", FLAGS_op_precision_mode.c_str()); | |||||
| return ge::FAILED; | |||||
| } | |||||
| if (ge::CheckModifyMixlistParamValid(FLAGS_precision_mode, FLAGS_modify_mixlist) != ge::SUCCESS) { | if (ge::CheckModifyMixlistParamValid(FLAGS_precision_mode, FLAGS_modify_mixlist) != ge::SUCCESS) { | ||||
| ErrorManager::GetInstance().ATCReportErrMessage("E10001", {"parameter", "value", "reason"}, | ErrorManager::GetInstance().ATCReportErrMessage("E10001", {"parameter", "value", "reason"}, | ||||
| {"modify_mixlist", FLAGS_modify_mixlist.c_str(), | {"modify_mixlist", FLAGS_modify_mixlist.c_str(), | ||||
| @@ -1159,6 +1184,7 @@ domi::Status GenerateOmModel() { | |||||
| options.insert(std::pair<string, string>(string(ge::CALIBRATION_CONF_FILE), FLAGS_cal_conf)); | options.insert(std::pair<string, string>(string(ge::CALIBRATION_CONF_FILE), FLAGS_cal_conf)); | ||||
| options.insert(std::pair<string, string>(string(ge::OUTPUT_NODE_NAME), FLAGS_out_nodes)); | options.insert(std::pair<string, string>(string(ge::OUTPUT_NODE_NAME), FLAGS_out_nodes)); | ||||
| options.insert(std::pair<string, string>(string(ge::INSERT_OP_FILE), FLAGS_insert_op_conf)); | options.insert(std::pair<string, string>(string(ge::INSERT_OP_FILE), FLAGS_insert_op_conf)); | ||||
| options.insert(std::pair<string, string>(string(ge::OP_PRECISION_MODE), FLAGS_op_precision_mode)); | |||||
| options.insert(std::pair<string, string>(string(ge::PRECISION_MODE), FLAGS_precision_mode)); | options.insert(std::pair<string, string>(string(ge::PRECISION_MODE), FLAGS_precision_mode)); | ||||
| options.insert(std::pair<string, string>(string(ge::TUNE_DEVICE_IDS), FLAGS_device_id)); | options.insert(std::pair<string, string>(string(ge::TUNE_DEVICE_IDS), FLAGS_device_id)); | ||||
| @@ -82,6 +82,18 @@ Status InnerSession::Initialize() { | |||||
| return ret; | return ret; | ||||
| } | } | ||||
| //Check option OP_PRECISION_MODE | |||||
| auto iter = all_options.find(ge::OP_PRECISION_MODE); | |||||
| if (iter != all_options.end() && !iter->second.empty() && !ge::CheckInputPathValid(iter->second)) { | |||||
| REPORT_INPUT_ERROR("E10001", std::vector<std::string>({"parameter", "value", "reason"}), | |||||
| std::vector<std::string>({ge::OP_PRECISION_MODE, iter->second, "path is not found"})); | |||||
| GELOGE(PARAM_INVALID, "[Check][OP_PRECISION_MODE] %s not found", iter->second.c_str()); | |||||
| return FAILED; | |||||
| } | |||||
| if (iter != all_options.end()) { | |||||
| GELOGI("Option set successfully, option_key=%s, option_value=%s", | |||||
| ge::OP_PRECISION_MODE.c_str(), iter->second.c_str()); | |||||
| } | |||||
| // Check option modify_mixlist | // Check option modify_mixlist | ||||
| if (ge::CheckModifyMixlistParamValid(all_options) != ge::SUCCESS) { | if (ge::CheckModifyMixlistParamValid(all_options) != ge::SUCCESS) { | ||||
| return FAILED; | return FAILED; | ||||
| @@ -113,6 +113,7 @@ const char *const INPUT_FP16_NODES = "ge.INPUT_NODES_SET_FP16"; | |||||
| const char *const OP_DEBUG_LEVEL = "ge.opDebugLevel"; | const char *const OP_DEBUG_LEVEL = "ge.opDebugLevel"; | ||||
| const char *const PERFORMANCE_MODE = "ge.performance_mode"; | const char *const PERFORMANCE_MODE = "ge.performance_mode"; | ||||
| const char *const MODIFY_MIXLIST = "ge.exec.modify_mixlist"; | const char *const MODIFY_MIXLIST = "ge.exec.modify_mixlist"; | ||||
| const char *const OP_PRECISION_MODE = "ge.exec.op_precision_mode"; | |||||
| } // namespace configure_option | } // namespace configure_option | ||||
| // Configure stream num by Session constructor options param, | // Configure stream num by Session constructor options param, | ||||
| // its value should be int32_t type, default value is "1" | // its value should be int32_t type, default value is "1" | ||||
| @@ -326,6 +327,8 @@ const std::string PERFORMANCE_MODE = "ge.performance_mode"; | |||||
| const std::string MODIFY_MIXLIST = "ge.exec.modify_mixlist"; | const std::string MODIFY_MIXLIST = "ge.exec.modify_mixlist"; | ||||
| const std::string OP_PRECISION_MODE = "ge.exec.op_precision_mode"; | |||||
| // Graph run mode | // Graph run mode | ||||
| enum GraphRunMode { PREDICTION = 0, TRAIN }; | enum GraphRunMode { PREDICTION = 0, TRAIN }; | ||||
| @@ -405,6 +408,7 @@ static const char *const OP_BANK_UPDATE = ge::OP_BANK_UPDATE_FLAG.c_str(); | |||||
| static const char *const OP_DEBUG_LEVEL = ge::OP_DEBUG_LEVEL.c_str(); | static const char *const OP_DEBUG_LEVEL = ge::OP_DEBUG_LEVEL.c_str(); | ||||
| static const char *const PERFORMANCE_MODE = ge::PERFORMANCE_MODE.c_str(); | static const char *const PERFORMANCE_MODE = ge::PERFORMANCE_MODE.c_str(); | ||||
| static const char *const MODIFY_MIXLIST = ge::MODIFY_MIXLIST.c_str(); | static const char *const MODIFY_MIXLIST = ge::MODIFY_MIXLIST.c_str(); | ||||
| static const char *const OP_PRECISION_MODE = ge::OP_PRECISION_MODE.c_str(); | |||||
| // for interface: aclgrphBuildModel | // for interface: aclgrphBuildModel | ||||
| #ifdef __GNUC__ | #ifdef __GNUC__ | ||||
| @@ -416,6 +420,7 @@ const std::set<std::string> ir_builder_suppported_options = {INPUT_FORMAT, | |||||
| DYNAMIC_IMAGE_SIZE, | DYNAMIC_IMAGE_SIZE, | ||||
| DYNAMIC_DIMS, | DYNAMIC_DIMS, | ||||
| INSERT_OP_FILE, | INSERT_OP_FILE, | ||||
| OP_PRECISION_MODE, | |||||
| PRECISION_MODE, | PRECISION_MODE, | ||||
| TUNE_DEVICE_IDS, | TUNE_DEVICE_IDS, | ||||
| EXEC_DISABLE_REUSED_MEMORY, | EXEC_DISABLE_REUSED_MEMORY, | ||||
| @@ -378,4 +378,55 @@ TEST(UtestIrCommon, check_dynamic_imagesize_input_shape_valid_format_empty) { | |||||
| std::string dynamic_image_size = ""; | std::string dynamic_image_size = ""; | ||||
| bool ret = CheckDynamicImagesizeInputShapeValid(shape_map, "123", dynamic_image_size); | bool ret = CheckDynamicImagesizeInputShapeValid(shape_map, "123", dynamic_image_size); | ||||
| EXPECT_EQ(ret, false); | EXPECT_EQ(ret, false); | ||||
| } | |||||
| TEST(UtestIrBuild, check_op_precision_mode_param) { | |||||
| Graph graph = BuildIrGraph1(); | |||||
| const std::map<std::string, std::string> build_options = { | |||||
| {"ge.exec.op_precision_mode", "./op_precision_mode.ini"} | |||||
| }; | |||||
| ModelBufferData model; | |||||
| auto ret = aclgrphBuildModel(graph, build_options, model); | |||||
| EXPECT_EQ(ret, GRAPH_PARAM_INVALID); | |||||
| } | |||||
| TEST(UtestIrBuild, check_build_model_and_build_step) { | |||||
| Graph graph_1 = BuildIrGraph1(); | |||||
| const std::map<std::string, std::string> build_options_1 = { | |||||
| {"ge.buildMode", "xxx"} | |||||
| }; | |||||
| ModelBufferData model_1; | |||||
| auto ret_1 = aclgrphBuildModel(graph_1, build_options_1, model_1); | |||||
| EXPECT_NE(ret_1, GRAPH_SUCCESS); | |||||
| Graph graph_2 = BuildIrGraph1(); | |||||
| const std::map<std::string, std::string> build_options_2 = { | |||||
| {"ge.buildStep", "xxx"} | |||||
| }; | |||||
| ModelBufferData model_2; | |||||
| auto ret_2 = aclgrphBuildModel(graph_2, build_options_2, model_2); | |||||
| EXPECT_NE(ret_2, GRAPH_SUCCESS); | |||||
| Graph graph_3 = BuildIrGraph1(); | |||||
| const std::map<std::string, std::string> build_options_3 = { | |||||
| {"ge.buildMode", "tuning"} | |||||
| }; | |||||
| ModelBufferData model_3; | |||||
| auto ret_3 = aclgrphBuildModel(graph_3, build_options_3, model_3); | |||||
| EXPECT_NE(ret_3, GRAPH_SUCCESS); | |||||
| } | |||||
| TEST(UtestIrBuild, atc_cfg_optype_param) { | |||||
| ComputeGraphPtr graph = BuildComputeGraph1(); | |||||
| FILE *fp = fopen("./keep.txt", "w+"); | |||||
| if (fp) { | |||||
| fprintf(fp, "Test\n"); | |||||
| fprintf(fp, "OpType::Mul\n"); | |||||
| fprintf(fp, "Optype::Sub\n"); | |||||
| fclose(fp); | |||||
| } | |||||
| auto ret = KeepDtypeFunc(graph, "./keep.txt"); | |||||
| (void)remove("./keep.txt"); | |||||
| EXPECT_EQ(ret, GRAPH_PARAM_INVALID); | |||||
| } | } | ||||
| @@ -64,7 +64,7 @@ TEST_F(UtestGeApi, build_graph_success) { | |||||
| ASSERT_NE(ret, SUCCESS); | ASSERT_NE(ret, SUCCESS); | ||||
| } | } | ||||
| TEST_F(UtestGeApi, ge_initialize) { | |||||
| TEST_F(UtestGeApi, ge_initialize_modify_mixlist) { | |||||
| std::map<std::string, std::string> options = { | std::map<std::string, std::string> options = { | ||||
| {ge::MODIFY_MIXLIST, "/mixlist.json"} | {ge::MODIFY_MIXLIST, "/mixlist.json"} | ||||
| }; | }; | ||||
| @@ -53,4 +53,14 @@ TEST_F(Utest_Inner_session, initialize) { | |||||
| auto ret = inner_session.Initialize(); | auto ret = inner_session.Initialize(); | ||||
| EXPECT_NE(ret, ge::SUCCESS); | EXPECT_NE(ret, ge::SUCCESS); | ||||
| } | } | ||||
| TEST_F(Utest_Inner_session, check_op_precision_mode) { | |||||
| std::map<std::string, std::string> options = { | |||||
| {ge::OP_PRECISION_MODE, "./op_precision_mode.ini"} | |||||
| }; | |||||
| uint64_t session_id = 1; | |||||
| InnerSession inner_session(session_id, options); | |||||
| auto ret = inner_session.Initialize(); | |||||
| EXPECT_NE(ret, ge::SUCCESS); | |||||
| } | |||||
| } // namespace ge | } // namespace ge | ||||