diff --git a/ge/common/helper/model_helper.cc b/ge/common/helper/model_helper.cc index 5b23d6b4..d357394f 100644 --- a/ge/common/helper/model_helper.cc +++ b/ge/common/helper/model_helper.cc @@ -76,6 +76,48 @@ Status ModelHelper::SaveModelPartition(std::shared_ptr &om_fil return SUCCESS; } +Status ModelHelper::SaveSizeToModelDef(const GeModelPtr &ge_model, ge::Buffer &model_buffer) { + vector om_info; + om_info.push_back(model_buffer.GetSize()); +// GE_CHK_BOOL_EXEC(ge::AttrUtils::SetInt(ge_model, "modeldef_size", model_buffer.GetSize()), +// GELOGE(FAILED, "SetInt of modeldef_size failed."); +// return FAILED); + auto ge_model_weight = ge_model->GetWeight(); + GELOGD("SaveSizeToModelDef weight_data_size is %zu, %p", ge_model_weight.GetSize(), ge_model_weight.GetData()); + om_info.push_back(ge_model_weight.GetSize()); +// GE_CHK_BOOL_EXEC(ge::AttrUtils::SetInt(ge_model, "weight_data_size", ge_model_weight.GetSize()), +// GELOGE(FAILED, "SetInt of weight_data_size failed."); +// return FAILED); + TBEKernelStore tbe_kernel_store = ge_model->GetTBEKernelStore(); + GELOGD("SaveSizeToModelDef tbe_kernels_size is %zu", tbe_kernel_store.DataSize()); + om_info.push_back(tbe_kernel_store.DataSize()); +// GE_CHK_BOOL_EXEC(ge::AttrUtils::SetInt(ge_model, "tbe_kernels_size", tbe_kernel_store.DataSize()), +// GELOGE(FAILED, "SetInt of tbe_kernels_size failed."); +// return FAILED); + CustAICPUKernelStore cust_aicpu_kernel_store = ge_model->GetCustAICPUKernelStore(); + GELOGD("SaveSizeToModelDef cust aicpu kernels size is %zu", cust_aicpu_kernel_store.DataSize()); + om_info.push_back(cust_aicpu_kernel_store.DataSize()); +// GE_CHK_BOOL_EXEC(ge::AttrUtils::SetInt(ge_model, "cust_aicpu_kernel_store_size", cust_aicpu_kernel_store.DataSize()), +// GELOGE(FAILED, "SetInt of tbe_kernels_size failed."); +// return FAILED); + + std::shared_ptr model_task_def = ge_model->GetModelTaskDefPtr(); + if (model_task_def == nullptr) { + GELOGE(ACL_ERROR_GE_MEMORY_ALLOCATION, "Create model task def ptr failed"); + return ACL_ERROR_GE_MEMORY_ALLOCATION; + } + size_t partition_task_size = model_task_def->ByteSizeLong(); + GELOGD("SaveSizeToModelDef task_info_size is %zu", partition_task_size); + om_info.push_back(partition_task_size); +// GE_CHK_BOOL_EXEC(ge::AttrUtils::SetInt(ge_model, "task_info_size", partition_task_size), +// GELOGE(FAILED, "SetInt of task_info_size failed."); +// return FAILED); + GE_CHK_BOOL_EXEC(ge::AttrUtils::SetListInt(ge_model, "om_info_list", om_info), + GELOGE(FAILED, "SetListInt of om_info_list failed."); + return FAILED); + + return SUCCESS; +} Status ModelHelper::SaveModelDef(std::shared_ptr &om_file_save_helper, const GeModelPtr &ge_model, ge::Buffer &model_buffer, size_t model_index) { @@ -87,9 +129,7 @@ Status ModelHelper::SaveModelDef(std::shared_ptr &om_file_save model_tmp->SetGraph(ge_model->GetGraph()); model_tmp->SetVersion(ge_model->GetVersion()); model_tmp->SetAttr(ge_model->MutableAttrMap()); - GE_CHK_BOOL_EXEC(ge::AttrUtils::SetInt(ge_model, "modeldef_size", model_buffer.GetSize()), - GELOGE(FAILED, "SetInt of modeldef_size failed."); - return FAILED); + SaveSizeToModelDef(ge_model, model_buffer); (void)model_tmp->Save(model_buffer); GELOGD("MODEL_DEF size is %zu", model_buffer.GetSize()); @@ -107,9 +147,6 @@ Status ModelHelper::SaveModelWeights(std::shared_ptr &om_file_ const GeModelPtr &ge_model, size_t model_index) { auto ge_model_weight = ge_model->GetWeight(); GELOGD("WEIGHTS_DATA size is %zu, %p", ge_model_weight.GetSize(), ge_model_weight.GetData()); - GE_CHK_BOOL_EXEC(ge::AttrUtils::SetInt(ge_model, "weight_data_size", ge_model_weight.GetSize()), - GELOGE(FAILED, "SetInt of weight_data_size failed."); - return FAILED); // weight is not necessary if (ge_model_weight.GetSize() > 0) { GE_CHK_STATUS_RET(SaveModelPartition(om_file_save_helper, @@ -124,9 +161,6 @@ Status ModelHelper::SaveModelTbeKernel(std::shared_ptr &om_fil const GeModelPtr &ge_model, size_t model_index) { TBEKernelStore tbe_kernel_store = ge_model->GetTBEKernelStore(); GELOGD("TBE_KERNELS size is %zu", tbe_kernel_store.DataSize()); - GE_CHK_BOOL_EXEC(ge::AttrUtils::SetInt(ge_model, "tbe_kernels_size", tbe_kernel_store.DataSize()), - GELOGE(FAILED, "SetInt of tbe_kernels_size failed."); - return FAILED); if (tbe_kernel_store.DataSize() > 0) { GE_CHK_STATUS_RET( SaveModelPartition(om_file_save_helper, ModelPartitionType::TBE_KERNELS, @@ -143,9 +177,6 @@ Status ModelHelper::SaveModelCustAICPU(std::shared_ptr &om_fil const GeModelPtr &ge_model, size_t model_index) { CustAICPUKernelStore cust_aicpu_kernel_store = ge_model->GetCustAICPUKernelStore(); GELOGD("cust aicpu kernels size is %zu", cust_aicpu_kernel_store.DataSize()); - GE_CHK_BOOL_EXEC(ge::AttrUtils::SetInt(ge_model, "cust_aicpu_kernel_store_size", cust_aicpu_kernel_store.DataSize()), - GELOGE(FAILED, "SetInt of tbe_kernels_size failed."); - return FAILED); if (cust_aicpu_kernel_store.DataSize() > 0) { GE_CHK_STATUS_RET(SaveModelPartition(om_file_save_helper, ModelPartitionType::CUST_AICPU_KERNELS, diff --git a/ge/generator/ge_generator.cc b/ge/generator/ge_generator.cc index 99b41100..9db7f795 100644 --- a/ge/generator/ge_generator.cc +++ b/ge/generator/ge_generator.cc @@ -555,7 +555,10 @@ void GeGenerator::Impl::DisplayModelInfo(AttrHolder &obj) { GELOGD("display_model not 1"); return; } - // + + std::cout << "------ Display Model Info start ------" << std::endl; + + // resource info int64_t memory_size; (void)ge::AttrUtils::GetInt(obj, ATTR_MODEL_MEMORY_SIZE, memory_size); int64_t weight_size; @@ -564,34 +567,59 @@ void GeGenerator::Impl::DisplayModelInfo(AttrHolder &obj) { (void)ge::AttrUtils::GetInt(obj, ATTR_MODEL_STREAM_NUM, stream_num); int64_t event_num; (void)ge::AttrUtils::GetInt(obj, ATTR_MODEL_EVENT_NUM, event_num); - std::cout << ATTR_MODEL_MEMORY_SIZE << "[" << memory_size << "], " << ATTR_MODEL_WEIGHT_SIZE << "[" << weight_size << - "], " << ATTR_MODEL_STREAM_NUM << "[" << stream_num << "], " << ATTR_MODEL_EVENT_NUM << "[" << event_num << "]." + std::cout << ATTR_MODEL_MEMORY_SIZE + << "[" << memory_size << "], " + << ATTR_MODEL_WEIGHT_SIZE + << "[" << weight_size << "], " + << ATTR_MODEL_STREAM_NUM + << "[" << stream_num << "], " + << ATTR_MODEL_EVENT_NUM + << "[" << event_num << "]." << std::endl; - // + // system info std::string atc_version; (void)ge::AttrUtils::GetStr(obj, ATTR_MODEL_ATC_VERSION, atc_version); std::string soc_version; (void)ge::AttrUtils::GetStr(obj, "soc_version", soc_version); std::string framework_type; (void)ge::AttrUtils::GetStr(obj, "framework_type", framework_type); - std::cout << ATTR_MODEL_ATC_VERSION << "[" << atc_version << "], " << "soc_version" << "[" << soc_version << - "], " << "framework_type" << "[" << framework_type << "]." << std::endl; - - // - int64_t modeldef_size; - (void)ge::AttrUtils::GetInt(obj, "modeldef_size", modeldef_size); - int64_t weight_data_size; - (void)ge::AttrUtils::GetInt(obj, "weight_data_size", weight_data_size); - int64_t tbe_kernels_size; - (void)ge::AttrUtils::GetInt(obj, "tbe_kernels_size", tbe_kernels_size); - int64_t cust_aicpu_kernel_store_size; - (void)ge::AttrUtils::GetInt(obj, "cust_aicpu_kernel_store_size", cust_aicpu_kernel_store_size); - int64_t task_info_size; - (void)ge::AttrUtils::GetInt(obj, "task_info_size", task_info_size); - std::cout << "modeldef_size" << "[" << modeldef_size << "], " << "weight_data_size" << "[" << weight_data_size << - "], " << "tbe_kernels_size" << "[" << tbe_kernels_size << "], " << "cust_aicpu_kernel_store_size" << "[" << - cust_aicpu_kernel_store_size << "], " << "task_info_size" << "[" << task_info_size << "]." << std::endl; + std::cout << ATTR_MODEL_ATC_VERSION + << "[" << atc_version << "], " + << "soc_version" + << "[" << soc_version << "], " + << "framework_type" + << "[" << framework_type << "]." << std::endl; + + // om info +// int64_t modeldef_size; +// (void)ge::AttrUtils::GetInt(obj, "modeldef_size", modeldef_size); +// int64_t weight_data_size; +// (void)ge::AttrUtils::GetInt(obj, "weight_data_size", weight_data_size); +// int64_t tbe_kernels_size; +// (void)ge::AttrUtils::GetInt(obj, "tbe_kernels_size", tbe_kernels_size); +// int64_t cust_aicpu_kernel_store_size; +// (void)ge::AttrUtils::GetInt(obj, "cust_aicpu_kernel_store_size", cust_aicpu_kernel_store_size); +// int64_t task_info_size; +// (void)ge::AttrUtils::GetInt(obj, "task_info_size", task_info_size); + vector om_info; + (void)ge::AttrUtils::GetListInt(obj, "om_info_list", om_info); + if (om_info.size() == 5) { + std::cout << "modeldef_size" + << "[" << om_info[0] << "], " + << "weight_data_size" + << "[" << om_info[1] << "], " + << "tbe_kernels_size" + << "[" << om_info[2] << "], " + << "cust_aicpu_kernel_store_size" + << "[" << om_info[3] << "], " + << "task_info_size" + << "[" << om_info[4] << "]." << std::endl; + } else { + std::cout << "Display Model Info error, please check!" << std::endl; + }; + + std::cout << "------ Display Model Info end ------" << std::endl; } Status GeGenerator::GenerateModel(const Graph &graph, const string &file_name_prefix, const vector &inputs, diff --git a/ge/session/omg.cc b/ge/session/omg.cc index 36d171cd..2c136348 100755 --- a/ge/session/omg.cc +++ b/ge/session/omg.cc @@ -870,6 +870,9 @@ void GetGroupName(ge::proto::ModelDef &model_def) { } FMK_FUNC_HOST_VISIBILITY void PrintModelInfo(ge::proto::ModelDef *model_def) { + std::cout << "------ Display Model Info start ------" << std::endl; + + // resource info auto model_attr_map = model_def->mutable_attr(); auto iter = model_attr_map->find(ATTR_MODEL_MEMORY_SIZE); auto memory_size = (iter != model_attr_map->end()) ? iter->second.i() : -1; @@ -879,33 +882,60 @@ FMK_FUNC_HOST_VISIBILITY void PrintModelInfo(ge::proto::ModelDef *model_def) { auto stream_num = (iter != model_attr_map->end()) ? iter->second.i() : -1; iter = model_attr_map->find(ATTR_MODEL_EVENT_NUM); auto event_num = (iter != model_attr_map->end()) ? iter->second.i() : -1; - std::cout << ATTR_MODEL_MEMORY_SIZE << "[" << memory_size << "], " << ATTR_MODEL_WEIGHT_SIZE << "[" << weight_size << - "], " << ATTR_MODEL_STREAM_NUM << "[" << stream_num << "], " << ATTR_MODEL_EVENT_NUM << "[" << event_num << "]." + std::cout << ATTR_MODEL_MEMORY_SIZE + << "[" << memory_size << "], " + << ATTR_MODEL_WEIGHT_SIZE + << "[" << weight_size << "], " + << ATTR_MODEL_STREAM_NUM + << "[" << stream_num << "], " + << ATTR_MODEL_EVENT_NUM + << "[" << event_num << "]." << std::endl; + // system info iter = model_attr_map->find(ATTR_MODEL_ATC_VERSION); auto atc_version = (iter != model_attr_map->end()) ? iter->second.s() : ""; iter = model_attr_map->find("soc_version"); auto soc_version = (iter != model_attr_map->end()) ? iter->second.s() : ""; iter = model_attr_map->find("framework_type"); auto framework_type = (iter != model_attr_map->end()) ? iter->second.s() : ""; - std::cout << ATTR_MODEL_ATC_VERSION << "[" << atc_version << "], " << "soc_version" << "[" << soc_version << - "], " << "framework_type" << "[" << framework_type << "]." << std::endl; - - iter = model_attr_map->find("modeldef_size"); - auto modeldef_size = (iter != model_attr_map->end()) ? iter->second.i() : -1; - iter = model_attr_map->find("weight_data_size"); - auto weight_data_size = (iter != model_attr_map->end()) ? iter->second.i() : -1; - iter = model_attr_map->find("tbe_kernels_size"); - auto tbe_kernels_size = (iter != model_attr_map->end()) ? iter->second.i() : -1; - iter = model_attr_map->find("cust_aicpu_kernel_store_size"); - auto cust_aicpu_kernel_store_size = (iter != model_attr_map->end()) ? iter->second.i() : -1; - iter = model_attr_map->find("task_info_size"); - auto task_info_size = (iter != model_attr_map->end()) ? iter->second.i() : -1; - - std::cout << "modeldef_size" << "[" << modeldef_size << "], " << "weight_data_size" << "[" << weight_data_size << - "], " << "tbe_kernels_size" << "[" << tbe_kernels_size << "], " << "cust_aicpu_kernel_store_size" << "[" << - cust_aicpu_kernel_store_size << "], " << "task_info_size" << "[" << task_info_size << "]." << std::endl; + std::cout << ATTR_MODEL_ATC_VERSION + << "[" << atc_version << "], " + << "soc_version" + << "[" << soc_version << "], " + << "framework_type" + << "[" << framework_type << "]." << std::endl; + +// iter = model_attr_map->find("modeldef_size"); +// auto modeldef_size = (iter != model_attr_map->end()) ? iter->second.i() : -1; +// iter = model_attr_map->find("weight_data_size"); +// auto weight_data_size = (iter != model_attr_map->end()) ? iter->second.i() : -1; +// iter = model_attr_map->find("tbe_kernels_size"); +// auto tbe_kernels_size = (iter != model_attr_map->end()) ? iter->second.i() : -1; +// iter = model_attr_map->find("cust_aicpu_kernel_store_size"); +// auto cust_aicpu_kernel_store_size = (iter != model_attr_map->end()) ? iter->second.i() : -1; +// iter = model_attr_map->find("task_info_size"); +// auto task_info_size = (iter != model_attr_map->end()) ? iter->second.i() : -1; + + // om info + iter = model_attr_map->find("om_info_size"); + auto bt = iter->second.list().i_size(); + if (bt == 5) { + std::cout << "modeldef_size" + << "[" << iter->second.list().i(0) << "], " + << "weight_data_size" + << "[" << iter->second.list().i(1) << "], " + << "tbe_kernels_size" + << "[" << iter->second.list().i(2) << "], " + << "cust_aicpu_kernel_store_size" + << "[" << iter->second.list().i(3) << "], " + << "task_info_size" + << "[" << iter->second.list().i(4) << "]." << std::endl; + } else { + std::cout << "Display Model Info error, please check!" << std::endl; + }; + + std::cout << "------ Display Model Info end ------" << std::endl; } FMK_FUNC_HOST_VISIBILITY Status ConvertOm(const char *model_file, const char *json_file, bool is_covert_to_json) { diff --git a/inc/framework/common/helper/model_helper.h b/inc/framework/common/helper/model_helper.h index 7867e63d..5493b7b9 100644 --- a/inc/framework/common/helper/model_helper.h +++ b/inc/framework/common/helper/model_helper.h @@ -84,6 +84,7 @@ class ModelHelper { const uint8_t *data, size_t size, size_t model_index); Status SaveModelDef(shared_ptr &om_file_save_helper, const GeModelPtr &ge_model, Buffer &model_buffer, size_t model_index = 0); + Status SaveSizeToModelDef(const GeModelPtr &ge_model, ge::Buffer &model_buffer); Status SaveModelWeights(shared_ptr &om_file_save_helper, const GeModelPtr &ge_model, size_t model_index = 0); Status SaveModelTbeKernel(shared_ptr &om_file_save_helper, const GeModelPtr &ge_model,