From 8910a50040e662afde2e8562103df2d85152c80f Mon Sep 17 00:00:00 2001 From: "wangwenhua1@huawei.com" Date: Mon, 4 Jan 2021 14:10:02 +0800 Subject: [PATCH 1/9] display model info --- ge/offline/main.cc | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/ge/offline/main.cc b/ge/offline/main.cc index ed67b913..81e1638b 100755 --- a/ge/offline/main.cc +++ b/ge/offline/main.cc @@ -228,8 +228,7 @@ class GFlagUtils { "[General]\n" " --h/help Show this help message\n" " --mode Run mode. 0(default): generate offline model; 1: convert model to JSON format; " - "6: display model info" - "3: only pre-check; 5: convert ge dump txt file to JSON format\n" + "3: only pre-check; 5: convert ge dump txt file to JSON format; 6: display model info\n" "\n[Input]\n" " --model Model file\n" " --weight Weight file. Required when framework is Caffe\n" From 0d1fbcef54b886fcb72a81e51ccd77b8abc85485 Mon Sep 17 00:00:00 2001 From: "wangwenhua1@huawei.com" Date: Tue, 5 Jan 2021 17:28:28 +0800 Subject: [PATCH 2/9] display model info --- ge/generator/ge_generator.cc | 9 +-------- ge/offline/main.cc | 5 +++++ ge/session/omg.cc | 16 ++++++++++++++-- inc/framework/common/ge_types.h | 8 ++++++++ 4 files changed, 28 insertions(+), 10 deletions(-) diff --git a/ge/generator/ge_generator.cc b/ge/generator/ge_generator.cc index f8d4900a..f3c81ebf 100644 --- a/ge/generator/ge_generator.cc +++ b/ge/generator/ge_generator.cc @@ -556,17 +556,10 @@ bool GeGenerator::Impl::SetOmSystemInfo(AttrHolder &obj) { return false; } - // 0(Caffe) 1(MindSpore) 3(TensorFlow) 5(Onnx) - std::map framework_type_to_string = { - {"0", "Caffe"}, - {"1", "MindSpore"}, - {"3", "TensorFlow"}, - {"5", "Onnx"} - }; std::string framework_type; (void)ge::GetContext().GetOption(ge::FRAMEWORK_TYPE, framework_type); GELOGI("SetOmSystemInfo framework_type: %s", framework_type.c_str()); - if (!ge::AttrUtils::SetStr(obj, "framework_type", framework_type_to_string[framework_type.c_str()])) { + if (!ge::AttrUtils::SetStr(obj, "framework_type", ge::kFwkTypeToStr[framework_type])) { GELOGW("SetStr of framework_type failed."); return false; } diff --git a/ge/offline/main.cc b/ge/offline/main.cc index 81e1638b..40a20e16 100755 --- a/ge/offline/main.cc +++ b/ge/offline/main.cc @@ -458,6 +458,11 @@ class GFlagUtils { ge::CheckEnableSingleStreamParamValid(std::string(FLAGS_enable_single_stream)) == ge::SUCCESS, ret = ge::FAILED, "check enable single stream failed!"); + GE_CHK_BOOL_TRUE_EXEC_WITH_LOG((FLAGS_display_model_info != "0") && (FLAGS_display_model_info != "1"), + ErrorManager::GetInstance().ATCReportErrMessage( + "E10006", {"parameter"}, {"display_model_info", FLAGS_display_model_info}), + ret = ge::FAILED, "Input parameter[--display_model_info]'s value must be 1 or 0."); + return ret; } diff --git a/ge/session/omg.cc b/ge/session/omg.cc index 11384cfb..37f31071 100755 --- a/ge/session/omg.cc +++ b/ge/session/omg.cc @@ -963,6 +963,7 @@ FMK_FUNC_HOST_VISIBILITY Status ConvertOm(const char *model_file, const char *js OmFileLoadHelper omFileLoadHelper; ge::graphStatus status = omFileLoadHelper.Init(model_data, model_len); if (status != ge::GRAPH_SUCCESS) { + ErrorManager::GetInstance().ATCReportErrMessage("E19021", "Om file init failed"); GELOGE(ge::FAILED, "Om file init failed."); if (model.model_data != nullptr) { delete[] reinterpret_cast(model.model_data); @@ -974,6 +975,7 @@ FMK_FUNC_HOST_VISIBILITY Status ConvertOm(const char *model_file, const char *js ModelPartition ir_part; status = omFileLoadHelper.GetModelPartition(MODEL_DEF, ir_part); if (status != ge::GRAPH_SUCCESS) { + ErrorManager::GetInstance().ATCReportErrMessage("E19021", "Get model part failed"); GELOGE(ge::FAILED, "Get model part failed."); if (model.model_data != nullptr) { delete[] reinterpret_cast(model.model_data); @@ -999,9 +1001,12 @@ FMK_FUNC_HOST_VISIBILITY Status ConvertOm(const char *model_file, const char *js } } else { ret = INTERNAL_ERROR; + ErrorManager::GetInstance().ATCReportErrMessage("E19021", "ReadProtoFromArray failed"); GELOGE(ret, "ReadProtoFromArray failed."); } } else { + ErrorManager::GetInstance().ATCReportErrMessage("E10003", + {"parameter", "value", "reason"}, {"om", model_file, "invalid om file"}); GELOGE(PARAM_INVALID, "ParseModelContent failed because of invalid om file. Please check --om param."); } @@ -1011,6 +1016,8 @@ FMK_FUNC_HOST_VISIBILITY Status ConvertOm(const char *model_file, const char *js } return ret; } catch (const std::exception &e) { + ErrorManager::GetInstance().ATCReportErrMessage("E19021", "Convert om model to json failed, exception message[" + + e.what() + "]"); GELOGE(FAILED, "Convert om model to json failed, exception message : %s.", e.what()); return FAILED; } @@ -1041,7 +1048,8 @@ FMK_FUNC_HOST_VISIBILITY Status ConvertPbtxtToJson(const char *model_file, const if (!flag) { free_model_data(&model.model_data); - GELOGE(FAILED, "ParseFromString fail."); + ErrorManager::GetInstance().ATCReportErrMessage("E19021", "ParseFromString failed"); + GELOGE(FAILED, "ParseFromString failed."); return FAILED; } GetGroupName(model_def); @@ -1057,9 +1065,13 @@ FMK_FUNC_HOST_VISIBILITY Status ConvertPbtxtToJson(const char *model_file, const return SUCCESS; } catch (google::protobuf::FatalException &e) { free_model_data(&model.model_data); - GELOGE(FAILED, "ParseFromString fail. exception message : %s", e.what()); + ErrorManager::GetInstance().ATCReportErrMessage("E19021", "ParseFromString failed, exception message[" + + e.what() + "]"); + GELOGE(FAILED, "ParseFromString failed. exception message : %s", e.what()); return FAILED; } catch (const std::exception &e) { + ErrorManager::GetInstance().ATCReportErrMessage("E19021", "Convert pbtxt to json failed, exception message[" + + e.what() + "]"); GELOGE(FAILED, "Convert pbtxt to json failed, exception message : %s.", e.what()); return FAILED; } diff --git a/inc/framework/common/ge_types.h b/inc/framework/common/ge_types.h index 4267aec4..edd9d7ed 100644 --- a/inc/framework/common/ge_types.h +++ b/inc/framework/common/ge_types.h @@ -43,6 +43,14 @@ enum FrameworkType { FRAMEWORK_RESERVED, }; +const std::map kFwkTypeToStr = { + {"0", "Caffe"}, + {"1", "MindSpore"}, + {"3", "TensorFlow"}, + {"4", "Android_NN"}, + {"5", "Onnx"} +}; + enum OpEngineType { ENGINE_SYS = 0, // default engine ENGINE_AICORE = 1, From ae345567d6291ae8b27d3785ad52630c93b6decb Mon Sep 17 00:00:00 2001 From: "wangwenhua1@huawei.com" Date: Tue, 5 Jan 2021 17:31:16 +0800 Subject: [PATCH 3/9] display model info --- inc/framework/common/ge_types.h | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/inc/framework/common/ge_types.h b/inc/framework/common/ge_types.h index edd9d7ed..141ce283 100644 --- a/inc/framework/common/ge_types.h +++ b/inc/framework/common/ge_types.h @@ -44,11 +44,11 @@ enum FrameworkType { }; const std::map kFwkTypeToStr = { - {"0", "Caffe"}, - {"1", "MindSpore"}, - {"3", "TensorFlow"}, - {"4", "Android_NN"}, - {"5", "Onnx"} + {"0", "Caffe"}, + {"1", "MindSpore"}, + {"3", "TensorFlow"}, + {"4", "Android_NN"}, + {"5", "Onnx"} }; enum OpEngineType { From a7c576ad93b653002b4cb2fc43e8ca6953359b05 Mon Sep 17 00:00:00 2001 From: "wangwenhua1@huawei.com" Date: Tue, 5 Jan 2021 20:32:12 +0800 Subject: [PATCH 4/9] display model info --- ge/generator/ge_generator.cc | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/ge/generator/ge_generator.cc b/ge/generator/ge_generator.cc index f3c81ebf..c58e1ba1 100644 --- a/ge/generator/ge_generator.cc +++ b/ge/generator/ge_generator.cc @@ -559,7 +559,12 @@ bool GeGenerator::Impl::SetOmSystemInfo(AttrHolder &obj) { std::string framework_type; (void)ge::GetContext().GetOption(ge::FRAMEWORK_TYPE, framework_type); GELOGI("SetOmSystemInfo framework_type: %s", framework_type.c_str()); - if (!ge::AttrUtils::SetStr(obj, "framework_type", ge::kFwkTypeToStr[framework_type])) { + auto iter = ge::kFwkTypeToStr.find(framework_type); + if (iter == ge::kFwkTypeToStr.end()) { + GELOGW("can not find framework_type in map"); + return false; + } + if (!ge::AttrUtils::SetStr(obj, "framework_type", iter->second) { GELOGW("SetStr of framework_type failed."); return false; } From 6cbab3f4389828ecec7e8e98617565972040a018 Mon Sep 17 00:00:00 2001 From: "wangwenhua1@huawei.com" Date: Tue, 5 Jan 2021 20:34:11 +0800 Subject: [PATCH 5/9] display model info --- ge/generator/ge_generator.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ge/generator/ge_generator.cc b/ge/generator/ge_generator.cc index c58e1ba1..21c5dd03 100644 --- a/ge/generator/ge_generator.cc +++ b/ge/generator/ge_generator.cc @@ -561,7 +561,7 @@ bool GeGenerator::Impl::SetOmSystemInfo(AttrHolder &obj) { GELOGI("SetOmSystemInfo framework_type: %s", framework_type.c_str()); auto iter = ge::kFwkTypeToStr.find(framework_type); if (iter == ge::kFwkTypeToStr.end()) { - GELOGW("can not find framework_type in map"); + GELOGW("Can not find framework_type in the map."); return false; } if (!ge::AttrUtils::SetStr(obj, "framework_type", iter->second) { From 444a76b46aba87a7bda4d07701c2efa8dde27dc9 Mon Sep 17 00:00:00 2001 From: "wangwenhua1@huawei.com" Date: Wed, 6 Jan 2021 10:13:00 +0800 Subject: [PATCH 6/9] display model info --- ge/generator/ge_generator.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ge/generator/ge_generator.cc b/ge/generator/ge_generator.cc index 21c5dd03..d032965b 100644 --- a/ge/generator/ge_generator.cc +++ b/ge/generator/ge_generator.cc @@ -564,7 +564,7 @@ bool GeGenerator::Impl::SetOmSystemInfo(AttrHolder &obj) { GELOGW("Can not find framework_type in the map."); return false; } - if (!ge::AttrUtils::SetStr(obj, "framework_type", iter->second) { + if (!ge::AttrUtils::SetStr(obj, "framework_type", iter->second)) { GELOGW("SetStr of framework_type failed."); return false; } From 3fea73cd8eb51c9cc73fdcb67b18c80fab93ec6f Mon Sep 17 00:00:00 2001 From: "wangwenhua1@huawei.com" Date: Wed, 6 Jan 2021 10:48:13 +0800 Subject: [PATCH 7/9] display model info --- ge/session/omg.cc | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/ge/session/omg.cc b/ge/session/omg.cc index 37f31071..9152b83d 100755 --- a/ge/session/omg.cc +++ b/ge/session/omg.cc @@ -963,7 +963,7 @@ FMK_FUNC_HOST_VISIBILITY Status ConvertOm(const char *model_file, const char *js OmFileLoadHelper omFileLoadHelper; ge::graphStatus status = omFileLoadHelper.Init(model_data, model_len); if (status != ge::GRAPH_SUCCESS) { - ErrorManager::GetInstance().ATCReportErrMessage("E19021", "Om file init failed"); + ErrorManager::GetInstance().ATCReportErrMessage("E19021", "reason", "Om file init failed"); GELOGE(ge::FAILED, "Om file init failed."); if (model.model_data != nullptr) { delete[] reinterpret_cast(model.model_data); @@ -975,7 +975,7 @@ FMK_FUNC_HOST_VISIBILITY Status ConvertOm(const char *model_file, const char *js ModelPartition ir_part; status = omFileLoadHelper.GetModelPartition(MODEL_DEF, ir_part); if (status != ge::GRAPH_SUCCESS) { - ErrorManager::GetInstance().ATCReportErrMessage("E19021", "Get model part failed"); + ErrorManager::GetInstance().ATCReportErrMessage("E19021", "reason", "Get model part failed"); GELOGE(ge::FAILED, "Get model part failed."); if (model.model_data != nullptr) { delete[] reinterpret_cast(model.model_data); @@ -1001,7 +1001,7 @@ FMK_FUNC_HOST_VISIBILITY Status ConvertOm(const char *model_file, const char *js } } else { ret = INTERNAL_ERROR; - ErrorManager::GetInstance().ATCReportErrMessage("E19021", "ReadProtoFromArray failed"); + ErrorManager::GetInstance().ATCReportErrMessage("E19021", "reason", "ReadProtoFromArray failed"); GELOGE(ret, "ReadProtoFromArray failed."); } } else { @@ -1016,8 +1016,8 @@ FMK_FUNC_HOST_VISIBILITY Status ConvertOm(const char *model_file, const char *js } return ret; } catch (const std::exception &e) { - ErrorManager::GetInstance().ATCReportErrMessage("E19021", "Convert om model to json failed, exception message[" + - e.what() + "]"); + ErrorManager::GetInstance().ATCReportErrMessage("E19021", "reason", + "Convert om model to json failed, exception message[" + e.what() + "]"); GELOGE(FAILED, "Convert om model to json failed, exception message : %s.", e.what()); return FAILED; } @@ -1048,7 +1048,7 @@ FMK_FUNC_HOST_VISIBILITY Status ConvertPbtxtToJson(const char *model_file, const if (!flag) { free_model_data(&model.model_data); - ErrorManager::GetInstance().ATCReportErrMessage("E19021", "ParseFromString failed"); + ErrorManager::GetInstance().ATCReportErrMessage("E19021", "reason", "ParseFromString failed"); GELOGE(FAILED, "ParseFromString failed."); return FAILED; } @@ -1065,13 +1065,13 @@ FMK_FUNC_HOST_VISIBILITY Status ConvertPbtxtToJson(const char *model_file, const return SUCCESS; } catch (google::protobuf::FatalException &e) { free_model_data(&model.model_data); - ErrorManager::GetInstance().ATCReportErrMessage("E19021", "ParseFromString failed, exception message[" + + ErrorManager::GetInstance().ATCReportErrMessage("E19021", "reason", "ParseFromString failed, exception message[" + e.what() + "]"); GELOGE(FAILED, "ParseFromString failed. exception message : %s", e.what()); return FAILED; } catch (const std::exception &e) { - ErrorManager::GetInstance().ATCReportErrMessage("E19021", "Convert pbtxt to json failed, exception message[" + - e.what() + "]"); + ErrorManager::GetInstance().ATCReportErrMessage("E19021", "reason", + "Convert pbtxt to json failed, exception message[" + e.what() + "]"); GELOGE(FAILED, "Convert pbtxt to json failed, exception message : %s.", e.what()); return FAILED; } From a144281a7fdaedfdbe23dbc8ea771df6c6634352 Mon Sep 17 00:00:00 2001 From: "wangwenhua1@huawei.com" Date: Wed, 6 Jan 2021 11:12:52 +0800 Subject: [PATCH 8/9] display model info --- ge/session/omg.cc | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/ge/session/omg.cc b/ge/session/omg.cc index 9152b83d..df54e007 100755 --- a/ge/session/omg.cc +++ b/ge/session/omg.cc @@ -963,7 +963,7 @@ FMK_FUNC_HOST_VISIBILITY Status ConvertOm(const char *model_file, const char *js OmFileLoadHelper omFileLoadHelper; ge::graphStatus status = omFileLoadHelper.Init(model_data, model_len); if (status != ge::GRAPH_SUCCESS) { - ErrorManager::GetInstance().ATCReportErrMessage("E19021", "reason", "Om file init failed"); + ErrorManager::GetInstance().ATCReportErrMessage("E19021", {"reason"}, {"Om file init failed"}); GELOGE(ge::FAILED, "Om file init failed."); if (model.model_data != nullptr) { delete[] reinterpret_cast(model.model_data); @@ -975,7 +975,7 @@ FMK_FUNC_HOST_VISIBILITY Status ConvertOm(const char *model_file, const char *js ModelPartition ir_part; status = omFileLoadHelper.GetModelPartition(MODEL_DEF, ir_part); if (status != ge::GRAPH_SUCCESS) { - ErrorManager::GetInstance().ATCReportErrMessage("E19021", "reason", "Get model part failed"); + ErrorManager::GetInstance().ATCReportErrMessage("E19021", {"reason"}, {"Get model part failed"}); GELOGE(ge::FAILED, "Get model part failed."); if (model.model_data != nullptr) { delete[] reinterpret_cast(model.model_data); @@ -1001,7 +1001,7 @@ FMK_FUNC_HOST_VISIBILITY Status ConvertOm(const char *model_file, const char *js } } else { ret = INTERNAL_ERROR; - ErrorManager::GetInstance().ATCReportErrMessage("E19021", "reason", "ReadProtoFromArray failed"); + ErrorManager::GetInstance().ATCReportErrMessage("E19021", {"reason"}, {"ReadProtoFromArray failed"}); GELOGE(ret, "ReadProtoFromArray failed."); } } else { @@ -1016,8 +1016,8 @@ FMK_FUNC_HOST_VISIBILITY Status ConvertOm(const char *model_file, const char *js } return ret; } catch (const std::exception &e) { - ErrorManager::GetInstance().ATCReportErrMessage("E19021", "reason", - "Convert om model to json failed, exception message[" + e.what() + "]"); + ErrorManager::GetInstance().ATCReportErrMessage("E19021", {"reason"}, + {"Convert om model to json failed, exception message[" + e.what() + "]"}); GELOGE(FAILED, "Convert om model to json failed, exception message : %s.", e.what()); return FAILED; } @@ -1048,7 +1048,7 @@ FMK_FUNC_HOST_VISIBILITY Status ConvertPbtxtToJson(const char *model_file, const if (!flag) { free_model_data(&model.model_data); - ErrorManager::GetInstance().ATCReportErrMessage("E19021", "reason", "ParseFromString failed"); + ErrorManager::GetInstance().ATCReportErrMessage("E19021", {"reason"}, {"ParseFromString failed"}); GELOGE(FAILED, "ParseFromString failed."); return FAILED; } @@ -1065,13 +1065,13 @@ FMK_FUNC_HOST_VISIBILITY Status ConvertPbtxtToJson(const char *model_file, const return SUCCESS; } catch (google::protobuf::FatalException &e) { free_model_data(&model.model_data); - ErrorManager::GetInstance().ATCReportErrMessage("E19021", "reason", "ParseFromString failed, exception message[" + - e.what() + "]"); + ErrorManager::GetInstance().ATCReportErrMessage("E19021", {"reason"}, {"ParseFromString failed, exception message[" + + e.what() + "]"); GELOGE(FAILED, "ParseFromString failed. exception message : %s", e.what()); return FAILED; } catch (const std::exception &e) { - ErrorManager::GetInstance().ATCReportErrMessage("E19021", "reason", - "Convert pbtxt to json failed, exception message[" + e.what() + "]"); + ErrorManager::GetInstance().ATCReportErrMessage("E19021", {"reason"}, + {"Convert pbtxt to json failed, exception message[" + e.what() + "]"}); GELOGE(FAILED, "Convert pbtxt to json failed, exception message : %s.", e.what()); return FAILED; } From 028df1048a6badb661745015483deedd0a40380e Mon Sep 17 00:00:00 2001 From: "wangwenhua1@huawei.com" Date: Wed, 6 Jan 2021 11:29:33 +0800 Subject: [PATCH 9/9] display model info --- ge/offline/main.cc | 3 +-- ge/session/omg.cc | 6 +++--- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/ge/offline/main.cc b/ge/offline/main.cc index 40a20e16..5b3eb4ae 100755 --- a/ge/offline/main.cc +++ b/ge/offline/main.cc @@ -459,8 +459,7 @@ class GFlagUtils { ret = ge::FAILED, "check enable single stream failed!"); GE_CHK_BOOL_TRUE_EXEC_WITH_LOG((FLAGS_display_model_info != "0") && (FLAGS_display_model_info != "1"), - ErrorManager::GetInstance().ATCReportErrMessage( - "E10006", {"parameter"}, {"display_model_info", FLAGS_display_model_info}), + ErrorManager::GetInstance().ATCReportErrMessage("E10006", {"parameter"}, {"display_model_info"}); ret = ge::FAILED, "Input parameter[--display_model_info]'s value must be 1 or 0."); return ret; diff --git a/ge/session/omg.cc b/ge/session/omg.cc index df54e007..37b279a2 100755 --- a/ge/session/omg.cc +++ b/ge/session/omg.cc @@ -1017,7 +1017,7 @@ FMK_FUNC_HOST_VISIBILITY Status ConvertOm(const char *model_file, const char *js return ret; } catch (const std::exception &e) { ErrorManager::GetInstance().ATCReportErrMessage("E19021", {"reason"}, - {"Convert om model to json failed, exception message[" + e.what() + "]"}); + {"Convert om model to json failed, exception message[" + std::string(e.what()) + "]"}); GELOGE(FAILED, "Convert om model to json failed, exception message : %s.", e.what()); return FAILED; } @@ -1066,12 +1066,12 @@ FMK_FUNC_HOST_VISIBILITY Status ConvertPbtxtToJson(const char *model_file, const } catch (google::protobuf::FatalException &e) { free_model_data(&model.model_data); ErrorManager::GetInstance().ATCReportErrMessage("E19021", {"reason"}, {"ParseFromString failed, exception message[" - + e.what() + "]"); + + std::string(e.what()) + "]"}); GELOGE(FAILED, "ParseFromString failed. exception message : %s", e.what()); return FAILED; } catch (const std::exception &e) { ErrorManager::GetInstance().ATCReportErrMessage("E19021", {"reason"}, - {"Convert pbtxt to json failed, exception message[" + e.what() + "]"}); + {"Convert pbtxt to json failed, exception message[" + std::string(e.what()) + "]"}); GELOGE(FAILED, "Convert pbtxt to json failed, exception message : %s.", e.what()); return FAILED; }