Browse Source

ge log optimize

tags/v1.3.0
liyihan2@huawei.com 4 years ago
parent
commit
e2cd1faa9a
3 changed files with 74 additions and 30 deletions
  1. +0
    -0
      ge/common/helper/model_cache_helper.cc
  2. +0
    -0
      ge/common/helper/model_cache_helper.h
  3. +74
    -30
      ge/common/helper/model_helper.cc

+ 0
- 0
ge/common/helper/model_cache_helper.cc View File


+ 0
- 0
ge/common/helper/model_cache_helper.h View File


+ 74
- 30
ge/common/helper/model_helper.cc View File

@@ -518,23 +518,28 @@ ModelHelper::SaveOriginalGraphToOmModel(const ge::Graph &graph, const std::strin

FMK_FUNC_HOST_VISIBILITY FMK_FUNC_DEV_VISIBILITY Status ModelHelper::LoadModel(const ge::ModelData &model_data) {
if (model_data.model_data == nullptr || model_data.model_len == 0) {
GELOGE(ACL_ERROR_GE_EXEC_MODEL_DATA_SIZE_INVALID, "Model_data is nullptr, or model_data_size is 0");
GELOGE(ACL_ERROR_GE_EXEC_MODEL_DATA_SIZE_INVALID,
"[Load][Model]Model_data is nullptr or model_data_size is 0");
REPORT_INNER_ERROR("E19999", "Load model failed, Model_data is nullptr or model_data_size is 0");
return ACL_ERROR_GE_EXEC_MODEL_DATA_SIZE_INVALID;
}

if (is_assign_model_) {
GELOGE(ACL_ERROR_GE_EXEC_LOAD_MODEL_REPEATED, "Model helper has already loaded!");
GELOGE(ACL_ERROR_GE_EXEC_LOAD_MODEL_REPEATED, "[Load][Model]Model helper has already loaded!");
REPORT_INNER_ERROR("E19999", "Model helper has already loaded");
return ACL_ERROR_GE_EXEC_LOAD_MODEL_REPEATED;
}

if (ReleaseLocalModelData() != SUCCESS) {
GELOGE(ACL_ERROR_GE_EXEC_RELEASE_MODEL_DATA, "ReleaseLocalModelData failed.");
GELOGE(ACL_ERROR_GE_EXEC_RELEASE_MODEL_DATA, "[Release][ModelData]Failed.");
REPORT_INNER_ERROR("E19999", "Release local model data failed");
return ACL_ERROR_GE_EXEC_RELEASE_MODEL_DATA;
}

Status status = ModelParserBase::ParseModelContent(model_data, model_addr_tmp_, model_len_tmp_);
if (status != SUCCESS) {
GELOGE(ACL_ERROR_GE_PARAM_INVALID, "Parse model content failed!");
GELOGE(ACL_ERROR_GE_PARAM_INVALID, "[Parse][ModelContent]Failed!");
REPORT_INNER_ERROR("E19999", "Parse model content failed");
return ACL_ERROR_GE_PARAM_INVALID;
}

@@ -542,14 +547,16 @@ FMK_FUNC_HOST_VISIBILITY FMK_FUNC_DEV_VISIBILITY Status ModelHelper::LoadModel(c
OmFileLoadHelper om_load_helper;
status = om_load_helper.Init(model_addr_tmp_, model_len_tmp_);
if (status != SUCCESS) {
GELOGE(status, "Om_load_helper init failed");
GELOGE(status, "[Init][OmLoadHelper]Failed");
REPORT_INNER_ERROR("E19999", "Om_load_helper init failed");
model_addr_tmp_ = nullptr;
return status;
}
auto partition_table = reinterpret_cast<ModelPartitionTable *>(model_addr_tmp_);
if (partition_table->num == kOriginalOmPartitionNum) {
model_addr_tmp_ = nullptr;
GELOGE(ACL_ERROR_GE_PARAM_INVALID, "om model is error,please use executable om model");
GELOGE(ACL_ERROR_GE_PARAM_INVALID, "[Check][OmModel]Error, please use executable om model");
REPORT_CALL_ERROR("E19999", "Om model is error, please use executable om model");
return ACL_ERROR_GE_PARAM_INVALID;
}
// Encrypt model need to del temp model/no encrypt model don't need to del model
@@ -557,7 +564,8 @@ FMK_FUNC_HOST_VISIBILITY FMK_FUNC_DEV_VISIBILITY Status ModelHelper::LoadModel(c

status = GenerateGeModel(om_load_helper);
if (status != SUCCESS) {
GELOGE(status, "GenerateGeModel failed");
GELOGE(status, "[Generate][GEModel]Failed");
REPORT_INNER_ERROR("E19999", "Generate GE model failed");
return status;
}
GELOGD("in ModelHelper::LoadModel, is_assign_model_ is setted to true!");
@@ -567,23 +575,29 @@ FMK_FUNC_HOST_VISIBILITY FMK_FUNC_DEV_VISIBILITY Status ModelHelper::LoadModel(c

FMK_FUNC_HOST_VISIBILITY FMK_FUNC_DEV_VISIBILITY Status ModelHelper::LoadRootModel(const ge::ModelData &model_data) {
if (model_data.model_data == nullptr || model_data.model_len == 0) {
GELOGE(ACL_ERROR_GE_EXEC_MODEL_DATA_SIZE_INVALID, "Model_data is nullptr, or model_data_size is 0");
GELOGE(ACL_ERROR_GE_EXEC_MODEL_DATA_SIZE_INVALID, "[Load][RootModel]"
"Model_data is nullptr or model_data_size is 0");
REPORT_INNER_ERROR("E19999", "Load root model failed, model_data is nullptr or its size is 0");
return ACL_ERROR_GE_EXEC_MODEL_DATA_SIZE_INVALID;
}

if (is_assign_model_) {
GELOGE(ACL_ERROR_GE_EXEC_LOAD_MODEL_REPEATED, "Model helper has already loaded!");
GELOGE(ACL_ERROR_GE_EXEC_LOAD_MODEL_REPEATED,
"[Load][RootModel]Model helper has already loaded!");
REPORT_INNER_ERROR("E19999", "Load root model failed, model helper has already loaded");
return ACL_ERROR_GE_EXEC_LOAD_MODEL_REPEATED;
}

if (ReleaseLocalModelData() != SUCCESS) {
GELOGE(INTERNAL_ERROR, "ReleaseLocalModelData failed.");
GELOGE(INTERNAL_ERROR, "[Release][ModelData]Failed.");
REPORT_INNER_ERROR("E19999", "Release local root model data failed");
return INTERNAL_ERROR;
}

Status status = ModelParserBase::ParseModelContent(model_data, model_addr_tmp_, model_len_tmp_);
if (status != SUCCESS) {
GELOGE(ACL_ERROR_GE_PARAM_INVALID, "Parse model content failed!");
GELOGE(ACL_ERROR_GE_PARAM_INVALID, "[Parse][RootModelContent]Failed!");
REPORT_INNER_ERROR("E19999", "Parse model content failed");
return ACL_ERROR_GE_PARAM_INVALID;
}

@@ -602,7 +616,8 @@ FMK_FUNC_HOST_VISIBILITY FMK_FUNC_DEV_VISIBILITY Status ModelHelper::LoadRootMod
status = om_load_helper.Init(model_addr_tmp_, model_len_tmp_);
}
if (status != SUCCESS) {
GELOGE(status, "Om_load_helper init failed");
GELOGE(status, "[Init][OmLoadHelper]Failed");
REPORT_INNER_ERROR("E19999", "Om_load_helper init failed");
model_addr_tmp_ = nullptr;
return status;
}
@@ -611,7 +626,8 @@ FMK_FUNC_HOST_VISIBILITY FMK_FUNC_DEV_VISIBILITY Status ModelHelper::LoadRootMod

status = GenerateGeRootModel(om_load_helper);
if (status != SUCCESS) {
GELOGE(status, "GenerateGeRootModel failed");
GELOGE(status, "[Generate][GERootModel]Failed");
REPORT_INNER_ERROR("E19999", "Generate GE root model failed");
return status;
}
GELOGD("in ModelHelper::LoadRootModel, is_assign_model_ is setted to true!");
@@ -651,7 +667,8 @@ Status ModelHelper::GenerateGeRootModel(OmFileLoadHelper &om_load_helper) {
GE_CHECK_NOTNULL(root_model_);
if (!is_unknown_shape_model_) {
if (GenerateGeModel(om_load_helper) != SUCCESS) {
GELOGE(FAILED, "GenerateGeModel failed");
GELOGE(FAILED, "[Generate][GERootModel]Failed");
REPORT_INNER_ERROR("E19999", "Generate GE root model failed");
return FAILED;
}
GE_CHECK_NOTNULL(model_);
@@ -708,7 +725,10 @@ Status ModelHelper::LoadModelData(OmFileLoadHelper &om_load_helper) {

ge::Model model;
if (ge::Model::Load(partition_model_def.data, partition_model_def.size, model) != SUCCESS) {
GELOGE(INTERNAL_ERROR, "Load model failed.");
GELOGE(INTERNAL_ERROR, "[Load][Model]Failed, model_def partition addr:%p, size:%u",
partition_model_def.data, partition_model_def.size);
REPORT_CALL_ERROR("E19999", "Load model failed, model_def partition addr:%p, size:%u",
partition_model_def.data, partition_model_def.size);
return INTERNAL_ERROR;
}

@@ -732,7 +752,10 @@ Status ModelHelper::LoadModelData(OmFileLoadHelper &om_load_helper, GeModelPtr &

ge::Model model;
if (ge::Model::Load(partition_model_def.data, partition_model_def.size, model) != SUCCESS) {
GELOGE(INTERNAL_ERROR, "Load model failed.");
GELOGE(INTERNAL_ERROR, "[Load][Model]Failed, model_def partition addr:%p, size:%u",
partition_model_def.data, partition_model_def.size);
REPORT_CALL_ERROR("E19999", "Load model failed, model_def partition addr:%p, size:%u",
partition_model_def.data, partition_model_def.size);
return INTERNAL_ERROR;
}

@@ -744,7 +767,9 @@ Status ModelHelper::LoadModelData(OmFileLoadHelper &om_load_helper, GeModelPtr &
Status ModelHelper::LoadWeights(OmFileLoadHelper &om_load_helper) {
ModelPartition partition;
if (om_load_helper.GetModelPartition(ModelPartitionType::WEIGHTS_DATA, partition) != SUCCESS) {
GELOGE(FAILED, "Get weight model partition failed.");
GELOGE(FAILED, "[Get][ModelWeightPartition]Failed, GetWeight size:%u", partition.size);
REPORT_INNER_ERROR("E19999", "[Get][ModelPartition]Failed, GetWeight size:%u",
partition.size);
return FAILED;
}
ge::Buffer weight = ge::Buffer::CopyFrom(partition.data, partition.size);
@@ -757,7 +782,9 @@ Status ModelHelper::LoadWeights(OmFileLoadHelper &om_load_helper) {
Status ModelHelper::LoadWeights(OmFileLoadHelper &om_load_helper, GeModelPtr &cur_model, size_t mode_index) {
ModelPartition partition;
if (om_load_helper.GetModelPartition(ModelPartitionType::WEIGHTS_DATA, partition, mode_index) != SUCCESS) {
GELOGE(FAILED, "Get weight model partition failed.");
GELOGE(FAILED, "[Get][ModelPartition]Failed, GetWeight size:%u", partition.size);
REPORT_INNER_ERROR("E19999", "[Get][ModelPartition]Failed, GetWeight size:%u",
partition.size);
return FAILED;
}
ge::Buffer weight = ge::Buffer::CopyFrom(partition.data, partition.size);
@@ -770,14 +797,19 @@ Status ModelHelper::LoadWeights(OmFileLoadHelper &om_load_helper, GeModelPtr &cu
FMK_FUNC_HOST_VISIBILITY FMK_FUNC_DEV_VISIBILITY Status ModelHelper::LoadTask(OmFileLoadHelper &om_load_helper) {
ModelPartition task_partition;
if (om_load_helper.GetModelPartition(ModelPartitionType::TASK_INFO, task_partition) != SUCCESS) {
GELOGE(FAILED, "Get task model partition failed.");
GELOGE(FAILED, "[Get][ModelTaskPartition]Failed, task_partition size:%u", task_partition.size);
REPORT_INNER_ERRO("E19999", "Get model task partition failed, task_partition size %u",
task_partition.size);
return FAILED;
}
std::shared_ptr<ModelTaskDef> task = ge::MakeShared<ModelTaskDef>();
GE_CHECK_NOTNULL(task);
if (task_partition.size != 0) {
if (!ReadProtoFromArray(task_partition.data, task_partition.size, task.get())) {
GELOGE(INTERNAL_ERROR, "ReadProtoFromArray failed.");
GELOGE(INTERNAL_ERROR, "[Read][ProtoFromArray]Failed, task_partition size %u",
task_partition.size);
REPORT_CALL_ERROR("E19999", "Read proto from array failed, task_partition size %u",
task_partition.size);
return INTERNAL_ERROR;
}
GELOGD("TASK_INFO op_size:%d, stream_num:%u", task->op().size(), task->stream_num());
@@ -792,13 +824,20 @@ FMK_FUNC_HOST_VISIBILITY FMK_FUNC_DEV_VISIBILITY Status ModelHelper::LoadTask(Om
ModelPartition task_partition;
if (om_load_helper.GetModelPartition(ModelPartitionType::TASK_INFO, task_partition, mode_index) != SUCCESS) {
GELOGE(FAILED, "Get task model partition failed.");
GELOGE(FAILED, "[Get][ModelTaskPartition]Failed, task_partition size %u, mode_index %zu",
task_partition.size, mode_index);
REPORT_INNER_ERROR("E19999", "Get model task partition failed, "
"task_partition size %u, mode_index %zu", task_partition.size, mode_index);
return FAILED;
}
std::shared_ptr<ModelTaskDef> task = ge::MakeShared<ModelTaskDef>();
GE_CHECK_NOTNULL(task);
if (task_partition.size != 0) {
if (!ReadProtoFromArray(task_partition.data, task_partition.size, task.get())) {
GELOGE(INTERNAL_ERROR, "ReadProtoFromArray failed.");
GELOGE(INTERNAL_ERROR, "[Read][ProtoFromArray]Failed, task_partition size %u",
task_partition.size);
REPORT_CALL_ERROR("E19999", "Read proto from array failed, task_partition size %u",
task_partition.size);
return INTERNAL_ERROR;
}
GELOGD("TASK_INFO op_size:%d, stream_num:%u", task->op().size(), task->stream_num());
@@ -906,7 +945,8 @@ Status ModelHelper::ReleaseLocalModelData() noexcept {
if (model_addr_tmp_ != nullptr) {
errno_t ret = memset_s(static_cast<void *>(model_addr_tmp_), model_len_tmp_, 0, model_len_tmp_);
if (ret != EOK) {
GELOGE(FAILED, "Failed to memset memory, error-code %d", ret);
GELOGE(FAILED, "[Memset][Memory]Failed, error-code %d", ret);
REPORT_CALL_ERROR("E19999", "Failed to memset memory, error-code %d", ret);
result = FAILED;
}
delete[] model_addr_tmp_;
@@ -955,7 +995,9 @@ Status ModelTool::GetModelInfoFromOm(const char *model_file, ge::proto::ModelDef

Status ret = ModelParserBase::LoadFromFile(model_file, "", priority, model);
if (ret != SUCCESS) {
GELOGE(ret, "LoadFromFile failed.");
GELOGE(ret, "[Load][ModelInfo]Failed from file %s, error_code %u", model_file.c_str(), ret);
REPORT_CALL_ERROR("E19999", "Load model info failed from file %s, error_code %u",
model_file.c_str(), ret);
return ret;
}
std::function<void()> callback = [&]() {
@@ -973,7 +1015,7 @@ Status ModelTool::GetModelInfoFromOm(const char *model_file, ge::proto::ModelDef
ErrorManager::GetInstance().ATCReportErrMessage("E10003",
{"parameter", "value", "reason"}, {"om", model_file, "invalid om file"});
GELOGE(ACL_ERROR_GE_PARAM_INVALID,
"ParseModelContent failed because of invalid om file. Please check --om param.");
"[Parse][ModelContent]Failed because of invalid om file. Please check --om param.");
return ret;
}

@@ -981,7 +1023,7 @@ Status ModelTool::GetModelInfoFromOm(const char *model_file, ge::proto::ModelDef
ret = om_load_helper.Init(model_data, model_len);
if (ret != SUCCESS) {
ErrorManager::GetInstance().ATCReportErrMessage("E19021", {"reason"}, {"Om file init failed"});
GELOGE(ge::FAILED, "Om file init failed.");
GELOGE(ge::FAILED, "[Init][OmFile]Failed.");
return ret;
}

@@ -989,7 +1031,7 @@ Status ModelTool::GetModelInfoFromOm(const char *model_file, ge::proto::ModelDef
ret = om_load_helper.GetModelPartition(MODEL_DEF, ir_part);
if (ret != SUCCESS) {
ErrorManager::GetInstance().ATCReportErrMessage("E19021", {"reason"}, {"Get model part failed"});
GELOGE(ge::FAILED, "Get model part failed.");
GELOGE(ge::FAILED, "[Get][ModelPart]Failed.");
return ret;
}

@@ -997,7 +1039,7 @@ Status ModelTool::GetModelInfoFromOm(const char *model_file, ge::proto::ModelDef
if (!flag) {
ret = INTERNAL_ERROR;
ErrorManager::GetInstance().ATCReportErrMessage("E19021", {"reason"}, {"ReadProtoFromArray failed"});
GELOGE(ret, "ReadProtoFromArray failed.");
GELOGE(ret, "[Read][ProtoFromArray]Failed.");
return ret;
}
modeldef_size = ir_part.size;
@@ -1018,7 +1060,9 @@ Status ModelTool::GetModelInfoFromPbtxt(const char *model_file, ge::proto::Model
};
if (ret != SUCCESS) {
free_model_data(&model.model_data);
GELOGE(ret, "LoadFromFile failed.");
GELOGE(ret, "[Load][ModelInfo]Failed from file %s, error_code %u", model_file.c_str(), ret);
REPORT_CALL_ERROR("E19999", "Load model info failed from file %s, error_code %u",
model_file.c_str(), ret);
return ret;
}

@@ -1027,7 +1071,7 @@ Status ModelTool::GetModelInfoFromPbtxt(const char *model_file, ge::proto::Model
if (!flag) {
free_model_data(&model.model_data);
ErrorManager::GetInstance().ATCReportErrMessage("E19021", {"reason"}, {"ParseFromString failed"});
GELOGE(FAILED, "ParseFromString failed.");
GELOGE(FAILED, "[Parse][ModelInfo]Failed from string.");
return FAILED;
}
free_model_data(&model.model_data);
@@ -1036,7 +1080,7 @@ Status ModelTool::GetModelInfoFromPbtxt(const char *model_file, ge::proto::Model
free_model_data(&model.model_data);
ErrorManager::GetInstance().ATCReportErrMessage("E19021", {"reason"}, {"ParseFromString failed, exception message["
+ std::string(e.what()) + "]"});
GELOGE(FAILED, "ParseFromString failed. exception message : %s", e.what());
GELOGE(FAILED, "[Parse][ModelInfo]Failed from string, exception message : %s", e.what());
return FAILED;
}
}


Loading…
Cancel
Save