|
|
@ -98,7 +98,7 @@ FMK_FUNC_HOST_VISIBILITY FMK_FUNC_DEV_VISIBILITY Status ModelHelper::SaveToOmMod
|
|
|
|
|
|
|
|
|
|
|
|
ge::Buffer model_buffer;
|
|
|
|
ge::Buffer model_buffer;
|
|
|
|
(void)model_tmp->Save(model_buffer);
|
|
|
|
(void)model_tmp->Save(model_buffer);
|
|
|
|
GELOGI("MODEL_DEF size is %zu", model_buffer.GetSize());
|
|
|
|
GELOGD("MODEL_DEF size is %zu", model_buffer.GetSize());
|
|
|
|
if (model_buffer.GetSize() > 0) {
|
|
|
|
if (model_buffer.GetSize() > 0) {
|
|
|
|
if (SaveModelPartition(om_file_save_helper, ModelPartitionType::MODEL_DEF, model_buffer.GetData(),
|
|
|
|
if (SaveModelPartition(om_file_save_helper, ModelPartitionType::MODEL_DEF, model_buffer.GetData(),
|
|
|
|
model_buffer.GetSize()) != SUCCESS) {
|
|
|
|
model_buffer.GetSize()) != SUCCESS) {
|
|
|
@ -107,7 +107,7 @@ FMK_FUNC_HOST_VISIBILITY FMK_FUNC_DEV_VISIBILITY Status ModelHelper::SaveToOmMod
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
auto ge_model_weight = ge_model->GetWeight();
|
|
|
|
auto ge_model_weight = ge_model->GetWeight();
|
|
|
|
GELOGI("WEIGHTS_DATA size is %zu, %p", ge_model_weight.GetSize(), ge_model_weight.GetData());
|
|
|
|
GELOGD("WEIGHTS_DATA size is %zu, %p", ge_model_weight.GetSize(), ge_model_weight.GetData());
|
|
|
|
// weight is not necessary
|
|
|
|
// weight is not necessary
|
|
|
|
if (ge_model_weight.GetSize() > 0) {
|
|
|
|
if (ge_model_weight.GetSize() > 0) {
|
|
|
|
GE_CHK_STATUS_RET(SaveModelPartition(om_file_save_helper,
|
|
|
|
GE_CHK_STATUS_RET(SaveModelPartition(om_file_save_helper,
|
|
|
@ -117,7 +117,7 @@ FMK_FUNC_HOST_VISIBILITY FMK_FUNC_DEV_VISIBILITY Status ModelHelper::SaveToOmMod
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
TBEKernelStore tbe_kernel_store = ge_model->GetTBEKernelStore();
|
|
|
|
TBEKernelStore tbe_kernel_store = ge_model->GetTBEKernelStore();
|
|
|
|
GELOGI("TBE_KERNELS size is %zu", tbe_kernel_store.DataSize());
|
|
|
|
GELOGD("TBE_KERNELS size is %zu", tbe_kernel_store.DataSize());
|
|
|
|
if (tbe_kernel_store.DataSize() > 0) {
|
|
|
|
if (tbe_kernel_store.DataSize() > 0) {
|
|
|
|
GE_CHK_STATUS_RET(SaveModelPartition(om_file_save_helper,
|
|
|
|
GE_CHK_STATUS_RET(SaveModelPartition(om_file_save_helper,
|
|
|
|
ModelPartitionType::TBE_KERNELS,
|
|
|
|
ModelPartitionType::TBE_KERNELS,
|
|
|
@ -129,7 +129,7 @@ FMK_FUNC_HOST_VISIBILITY FMK_FUNC_DEV_VISIBILITY Status ModelHelper::SaveToOmMod
|
|
|
|
(void)tbe_kernel_store.Load(tbe_kernel_store.Data(), tbe_kernel_store.DataSize());
|
|
|
|
(void)tbe_kernel_store.Load(tbe_kernel_store.Data(), tbe_kernel_store.DataSize());
|
|
|
|
|
|
|
|
|
|
|
|
CustAICPUKernelStore cust_aicpu_kernel_store = ge_model->GetCustAICPUKernelStore();
|
|
|
|
CustAICPUKernelStore cust_aicpu_kernel_store = ge_model->GetCustAICPUKernelStore();
|
|
|
|
GELOGI("cust aicpu kernels size is %zu", cust_aicpu_kernel_store.DataSize());
|
|
|
|
GELOGD("cust aicpu kernels size is %zu", cust_aicpu_kernel_store.DataSize());
|
|
|
|
if (cust_aicpu_kernel_store.DataSize() > 0) {
|
|
|
|
if (cust_aicpu_kernel_store.DataSize() > 0) {
|
|
|
|
GE_CHK_STATUS_RET(SaveModelPartition(om_file_save_helper,
|
|
|
|
GE_CHK_STATUS_RET(SaveModelPartition(om_file_save_helper,
|
|
|
|
ModelPartitionType::CUST_AICPU_KERNELS,
|
|
|
|
ModelPartitionType::CUST_AICPU_KERNELS,
|
|
|
@ -155,8 +155,8 @@ FMK_FUNC_HOST_VISIBILITY FMK_FUNC_DEV_VISIBILITY Status ModelHelper::SaveToOmMod
|
|
|
|
}
|
|
|
|
}
|
|
|
|
(void)model_task_def->SerializePartialToArray(task_buffer.GetData(), static_cast<int>(partition_task_size));
|
|
|
|
(void)model_task_def->SerializePartialToArray(task_buffer.GetData(), static_cast<int>(partition_task_size));
|
|
|
|
|
|
|
|
|
|
|
|
GELOGI("TASK_INFO op_size:%d, stream_num:%u", model_task_def->op().size(), model_task_def->stream_num());
|
|
|
|
GELOGD("TASK_INFO op_size:%d, stream_num:%u", model_task_def->op().size(), model_task_def->stream_num());
|
|
|
|
GELOGI("TASK_INFO size is %zu", partition_task_size);
|
|
|
|
GELOGD("TASK_INFO size is %zu", partition_task_size);
|
|
|
|
|
|
|
|
|
|
|
|
if (SaveModelPartition(om_file_save_helper, ModelPartitionType::TASK_INFO, task_buffer.GetData(),
|
|
|
|
if (SaveModelPartition(om_file_save_helper, ModelPartitionType::TASK_INFO, task_buffer.GetData(),
|
|
|
|
partition_task_size) != SUCCESS) {
|
|
|
|
partition_task_size) != SUCCESS) {
|
|
|
@ -168,7 +168,6 @@ FMK_FUNC_HOST_VISIBILITY FMK_FUNC_DEV_VISIBILITY Status ModelHelper::SaveToOmMod
|
|
|
|
model_header.platform_type = ge_model->GetPlatformType();
|
|
|
|
model_header.platform_type = ge_model->GetPlatformType();
|
|
|
|
model_header.om_ir_version = ge_model->GetVersion();
|
|
|
|
model_header.om_ir_version = ge_model->GetVersion();
|
|
|
|
std::string platform_version = ge_model->GetPlatformVersion();
|
|
|
|
std::string platform_version = ge_model->GetPlatformVersion();
|
|
|
|
GELOGI("Platform version save: %s", platform_version.c_str());
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
errno_t err;
|
|
|
|
errno_t err;
|
|
|
|
err = memcpy_s(model_header.platform_version, PLATFORM_VERSION_LEN, platform_version.c_str(),
|
|
|
|
err = memcpy_s(model_header.platform_version, PLATFORM_VERSION_LEN, platform_version.c_str(),
|
|
|
@ -178,7 +177,7 @@ FMK_FUNC_HOST_VISIBILITY FMK_FUNC_DEV_VISIBILITY Status ModelHelper::SaveToOmMod
|
|
|
|
return MEMALLOC_FAILED;
|
|
|
|
return MEMALLOC_FAILED;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
string version = reinterpret_cast<char *>(model_header.platform_version);
|
|
|
|
string version = reinterpret_cast<char *>(model_header.platform_version);
|
|
|
|
GELOGI("Platform version save: %s", version.c_str());
|
|
|
|
GELOGD("Platform version save: %s", version.c_str());
|
|
|
|
|
|
|
|
|
|
|
|
size_t name_size = ge_model->GetName().size();
|
|
|
|
size_t name_size = ge_model->GetName().size();
|
|
|
|
name_size = name_size > (MODEL_NAME_LENGTH - 1) ? (MODEL_NAME_LENGTH - 1) : name_size;
|
|
|
|
name_size = name_size > (MODEL_NAME_LENGTH - 1) ? (MODEL_NAME_LENGTH - 1) : name_size;
|
|
|
@ -188,7 +187,7 @@ FMK_FUNC_HOST_VISIBILITY FMK_FUNC_DEV_VISIBILITY Status ModelHelper::SaveToOmMod
|
|
|
|
return MEMALLOC_FAILED;
|
|
|
|
return MEMALLOC_FAILED;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
string model_name = reinterpret_cast<char *>(model_header.name);
|
|
|
|
string model_name = reinterpret_cast<char *>(model_header.name);
|
|
|
|
GELOGI("Model name save:%s", model_name.c_str());
|
|
|
|
GELOGD("Model name save:%s", model_name.c_str());
|
|
|
|
|
|
|
|
|
|
|
|
Status ret = om_file_save_helper->SaveModel(save_param, output_file.c_str(), model, is_offline_);
|
|
|
|
Status ret = om_file_save_helper->SaveModel(save_param, output_file.c_str(), model, is_offline_);
|
|
|
|
if (ret != SUCCESS) {
|
|
|
|
if (ret != SUCCESS) {
|
|
|
@ -346,7 +345,7 @@ Status ModelHelper::LoadModelData(OmFileLoadHelper &om_load_helper) {
|
|
|
|
ModelPartition partition_model_def;
|
|
|
|
ModelPartition partition_model_def;
|
|
|
|
// no need to check value, DATA->NetOutput
|
|
|
|
// no need to check value, DATA->NetOutput
|
|
|
|
om_load_helper.GetModelPartition(ModelPartitionType::MODEL_DEF, partition_model_def);
|
|
|
|
om_load_helper.GetModelPartition(ModelPartitionType::MODEL_DEF, partition_model_def);
|
|
|
|
GELOGI("Model_def partition addr:%p,size:%u", partition_model_def.data, partition_model_def.size);
|
|
|
|
GELOGD("Model_def partition addr:%p,size:%u", partition_model_def.data, partition_model_def.size);
|
|
|
|
|
|
|
|
|
|
|
|
ge::Model model;
|
|
|
|
ge::Model model;
|
|
|
|
if (ge::Model::Load(partition_model_def.data, partition_model_def.size, model) != SUCCESS) {
|
|
|
|
if (ge::Model::Load(partition_model_def.data, partition_model_def.size, model) != SUCCESS) {
|
|
|
@ -376,7 +375,7 @@ Status ModelHelper::LoadWeights(OmFileLoadHelper &om_load_helper) {
|
|
|
|
ge::Buffer weight = ge::Buffer::CopyFrom(partition.data, partition.size);
|
|
|
|
ge::Buffer weight = ge::Buffer::CopyFrom(partition.data, partition.size);
|
|
|
|
model_->SetWeight(weight);
|
|
|
|
model_->SetWeight(weight);
|
|
|
|
|
|
|
|
|
|
|
|
GELOGI("GetWeight size:%u", partition.size);
|
|
|
|
GELOGD("GetWeight size:%u", partition.size);
|
|
|
|
return SUCCESS;
|
|
|
|
return SUCCESS;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
@ -393,7 +392,7 @@ FMK_FUNC_HOST_VISIBILITY FMK_FUNC_DEV_VISIBILITY Status ModelHelper::LoadTask(Om
|
|
|
|
GELOGE(INTERNAL_ERROR, "ReadProtoFromArray failed.");
|
|
|
|
GELOGE(INTERNAL_ERROR, "ReadProtoFromArray failed.");
|
|
|
|
return INTERNAL_ERROR;
|
|
|
|
return INTERNAL_ERROR;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
GELOGI("TASK_INFO op_size:%d, stream_num:%u", task->op().size(), task->stream_num());
|
|
|
|
GELOGD("TASK_INFO op_size:%d, stream_num:%u", task->op().size(), task->stream_num());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
model_->SetModelTaskDef(task);
|
|
|
|
model_->SetModelTaskDef(task);
|
|
|
|
return SUCCESS;
|
|
|
|
return SUCCESS;
|
|
|
@ -404,9 +403,9 @@ Status ModelHelper::LoadTBEKernelStore(OmFileLoadHelper &om_load_helper) {
|
|
|
|
ModelPartition partition_kernel_def;
|
|
|
|
ModelPartition partition_kernel_def;
|
|
|
|
TBEKernelStore kernel_store;
|
|
|
|
TBEKernelStore kernel_store;
|
|
|
|
if (om_load_helper.GetModelPartition(ModelPartitionType::TBE_KERNELS, partition_kernel_def) == SUCCESS) {
|
|
|
|
if (om_load_helper.GetModelPartition(ModelPartitionType::TBE_KERNELS, partition_kernel_def) == SUCCESS) {
|
|
|
|
GELOGI("Kernels partition size:%u", partition_kernel_def.size);
|
|
|
|
GELOGD("Kernels partition size:%u", partition_kernel_def.size);
|
|
|
|
if (kernel_store.Load(partition_kernel_def.data, partition_kernel_def.size)) {
|
|
|
|
if (kernel_store.Load(partition_kernel_def.data, partition_kernel_def.size)) {
|
|
|
|
GELOGI("Load tbe kernels success");
|
|
|
|
GELOGD("Load tbe kernels success");
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
GELOGW("Load tbe kernels failed");
|
|
|
|
GELOGW("Load tbe kernels failed");
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -420,11 +419,9 @@ Status ModelHelper::LoadCustAICPUKernelStore(OmFileLoadHelper &om_load_helper) {
|
|
|
|
ModelPartition partition_kernel_def;
|
|
|
|
ModelPartition partition_kernel_def;
|
|
|
|
CustAICPUKernelStore kernel_store;
|
|
|
|
CustAICPUKernelStore kernel_store;
|
|
|
|
if (om_load_helper.GetModelPartition(ModelPartitionType::CUST_AICPU_KERNELS, partition_kernel_def) == SUCCESS) {
|
|
|
|
if (om_load_helper.GetModelPartition(ModelPartitionType::CUST_AICPU_KERNELS, partition_kernel_def) == SUCCESS) {
|
|
|
|
GELOGI("Kernels partition size:%u", partition_kernel_def.size);
|
|
|
|
GELOGD("Kernels partition size:%u", partition_kernel_def.size);
|
|
|
|
if (kernel_store.Load(partition_kernel_def.data, partition_kernel_def.size)) {
|
|
|
|
if (kernel_store.Load(partition_kernel_def.data, partition_kernel_def.size)) {
|
|
|
|
GELOGI("Load cust aicpu kernels success");
|
|
|
|
GELOGI("Load cust aicpu kernels success");
|
|
|
|
} else {
|
|
|
|
|
|
|
|
GELOGW("Load cust aicpu kernels failed");
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
model_->SetCustAICPUKernelStore(kernel_store);
|
|
|
|
model_->SetCustAICPUKernelStore(kernel_store);
|
|
|
|