Browse Source

display model info

pull/688/head
wangwenhua1@huawei.com 5 years ago
parent
commit
a115528b0c
4 changed files with 142 additions and 52 deletions
  1. +43
    -12
      ge/common/helper/model_helper.cc
  2. +49
    -21
      ge/generator/ge_generator.cc
  3. +49
    -19
      ge/session/omg.cc
  4. +1
    -0
      inc/framework/common/helper/model_helper.h

+ 43
- 12
ge/common/helper/model_helper.cc View File

@@ -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,


+ 49
- 21
ge/generator/ge_generator.cc View File

@@ -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,


+ 49
- 19
ge/session/omg.cc View File

@@ -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) {


+ 1
- 0
inc/framework/common/helper/model_helper.h View File

@@ -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,


Loading…
Cancel
Save