| @@ -76,6 +76,48 @@ Status ModelHelper::SaveModelPartition(std::shared_ptr<OmFileSaveHelper> &om_fil | |||
| return SUCCESS; | |||
| } | |||
| Status ModelHelper::SaveSizeToModelDef(const GeModelPtr &ge_model, ge::Buffer &model_buffer) { | |||
| vector<int64_t> 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<ModelTaskDef> 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<OmFileSaveHelper> &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<OmFileSaveHelper> &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<OmFileSaveHelper> &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<OmFileSaveHelper> &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<OmFileSaveHelper> &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, | |||
| @@ -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<int64_t> 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<GeTensor> &inputs, | |||
| @@ -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) { | |||
| @@ -84,6 +84,7 @@ class ModelHelper { | |||
| const uint8_t *data, size_t size, size_t model_index); | |||
| Status SaveModelDef(shared_ptr<OmFileSaveHelper> &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<OmFileSaveHelper> &om_file_save_helper, const GeModelPtr &ge_model, | |||
| size_t model_index = 0); | |||
| Status SaveModelTbeKernel(shared_ptr<OmFileSaveHelper> &om_file_save_helper, const GeModelPtr &ge_model, | |||