|
|
|
@ -116,11 +116,15 @@ Status ModelBuilder::CalcOutputSize(const ge::NodePtr &n) {
|
|
|
|
|
int64_t size_temp = 0;
|
|
|
|
|
graphStatus graph_status = TensorUtils::GetTensorMemorySizeInBytes(desc_temp, size_temp);
|
|
|
|
|
if (graph_status != GRAPH_SUCCESS) {
|
|
|
|
|
REPORT_CALL_ERROR("E19999", "Get tensor size in bytes failed for op:%s(%s) index:%u when CalcOutputSize",
|
|
|
|
|
node_op_desc->GetName().c_str(), node_op_desc->GetType().c_str(), index);
|
|
|
|
|
GELOGE(graph_status, "GetTensorMemorySizeInBytes failed!");
|
|
|
|
|
return FAILED;
|
|
|
|
|
}
|
|
|
|
|
TensorUtils::SetSize(desc_temp, size_temp);
|
|
|
|
|
if (node_op_desc->UpdateOutputDesc(index, desc_temp) != SUCCESS) {
|
|
|
|
|
REPORT_CALL_ERROR("E19999", "Update Output desc size failed for op:%s(%s) index:%u when CalcOutputSize",
|
|
|
|
|
node_op_desc->GetName().c_str(), node_op_desc->GetType().c_str(), index);
|
|
|
|
|
GELOGE(FAILED, "UpdateOutputDesc failed.");
|
|
|
|
|
return FAILED;
|
|
|
|
|
}
|
|
|
|
@ -197,8 +201,7 @@ void ModelBuilder::SetInputIsConst(const ge::NodePtr &n) {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
std::string input_const_info = ToString(is_input_const);
|
|
|
|
|
GELOGD("update opdesc:%s InputConst:%s", node_op_desc->GetName().c_str(), input_const_info.c_str());
|
|
|
|
|
GELOGD("update opdesc:%s InputConst:%s", node_op_desc->GetName().c_str(), ToString(is_input_const).c_str());
|
|
|
|
|
node_op_desc->SetIsInputConst(is_input_const);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -207,11 +210,15 @@ Status ModelBuilder::AdjustConstWeightSize(const ge::NodePtr &node, size_t &mem_
|
|
|
|
|
if (node->GetType() == CONSTANT) {
|
|
|
|
|
vector<GeTensorPtr> weights = OpDescUtils::MutableWeights(node);
|
|
|
|
|
if (weights.empty()) {
|
|
|
|
|
REPORT_INNER_ERROR("E19999", "Check weights size of node %s(%s) is empty when AdjustConstWeightSize",
|
|
|
|
|
node->GetName().c_str(), node->GetType().c_str());
|
|
|
|
|
GELOGE(FAILED, "weights size of node %s is empty", node->GetName().c_str());
|
|
|
|
|
return FAILED;
|
|
|
|
|
}
|
|
|
|
|
GeTensorPtr weight = weights[0];
|
|
|
|
|
if (weight == nullptr) {
|
|
|
|
|
REPORT_INNER_ERROR("E19999", "Check weight of node %s(%s) is nullptr when AdjustConstWeightSize",
|
|
|
|
|
node->GetName().c_str(), node->GetType().c_str());
|
|
|
|
|
GELOGE(FAILED, "weights[0] is null.");
|
|
|
|
|
return FAILED;
|
|
|
|
|
}
|
|
|
|
@ -353,6 +360,9 @@ Status ModelBuilder::AdjustInputTensorFlag() {
|
|
|
|
|
auto input_desc = owner_node_op_desc->GetInputDesc(in_anchors->GetIdx());
|
|
|
|
|
ge::TensorUtils::SetInputTensor(input_desc, true);
|
|
|
|
|
if (owner_node_op_desc->UpdateInputDesc(in_anchors->GetIdx(), input_desc) != SUCCESS) {
|
|
|
|
|
REPORT_CALL_ERROR("E19999", "Update Input desc size failed for op:%s(%s) index:%u when %s",
|
|
|
|
|
owner_node_op_desc->GetName().c_str(), owner_node_op_desc->GetType().c_str(),
|
|
|
|
|
in_anchors->GetIdx(), __FUNCTION__);
|
|
|
|
|
GELOGE(FAILED, "UpdateOutputDesc failed.");
|
|
|
|
|
return FAILED;
|
|
|
|
|
}
|
|
|
|
@ -381,33 +391,51 @@ Status ModelBuilder::BuildModelDef(ge::Model &model) {
|
|
|
|
|
|
|
|
|
|
max_mem_offset_ = mem_type_to_mem_offset_[RT_MEMORY_HBM];
|
|
|
|
|
GE_CHK_BOOL_EXEC(ge::AttrUtils::SetInt(&model, ATTR_MODEL_MEMORY_SIZE, max_mem_offset_),
|
|
|
|
|
REPORT_INNER_ERROR("E19999", "Set Attr:%s in model failed when %s",
|
|
|
|
|
ATTR_MODEL_MEMORY_SIZE.c_str(), __FUNCTION__);
|
|
|
|
|
GELOGE(FAILED, "SetInt of ATTR_MODEL_MEMORY_SIZE failed.");
|
|
|
|
|
return FAILED);
|
|
|
|
|
if (mem_type_to_mem_offset_.find(RT_MEMORY_P2P_DDR) != mem_type_to_mem_offset_.end()) {
|
|
|
|
|
p2p_mem_offset_ = mem_type_to_mem_offset_[RT_MEMORY_P2P_DDR];
|
|
|
|
|
}
|
|
|
|
|
GE_CHK_BOOL_EXEC(ge::AttrUtils::SetInt(&model, ATTR_MODEL_P2P_MEMORY_SIZE, p2p_mem_offset_),
|
|
|
|
|
REPORT_INNER_ERROR("E19999", "Set Attr:%s in model failed when %s",
|
|
|
|
|
ATTR_MODEL_P2P_MEMORY_SIZE.c_str(), __FUNCTION__);
|
|
|
|
|
GELOGE(FAILED, "SetInt of ATTR_MODEL_P2P_MEMORY_SIZE failed.");
|
|
|
|
|
return FAILED);
|
|
|
|
|
GE_CHK_BOOL_EXEC(ge::AttrUtils::SetInt(&model, ATTR_MODEL_WEIGHT_SIZE, weight_offset_),
|
|
|
|
|
REPORT_INNER_ERROR("E19999", "Set Attr:%s in model failed when %s",
|
|
|
|
|
ATTR_MODEL_WEIGHT_SIZE.c_str(), __FUNCTION__);
|
|
|
|
|
GELOGE(FAILED, "SetInt of ATTR_MODEL_WEIGHT_SIZE failed.");
|
|
|
|
|
return FAILED);
|
|
|
|
|
GE_CHK_BOOL_EXEC(ge::AttrUtils::SetInt(&model, ATTR_MODEL_STREAM_NUM, stream_num_),
|
|
|
|
|
REPORT_INNER_ERROR("E19999", "Set Attr:%s in model failed when %s",
|
|
|
|
|
ATTR_MODEL_STREAM_NUM.c_str(), __FUNCTION__);
|
|
|
|
|
GELOGE(FAILED, "SetInt of ATTR_MODEL_STREAM_NUM failed.");
|
|
|
|
|
return FAILED);
|
|
|
|
|
GE_CHK_BOOL_EXEC(ge::AttrUtils::SetInt(&model, ATTR_MODEL_EVENT_NUM, event_num_),
|
|
|
|
|
REPORT_INNER_ERROR("E19999", "Set Attr:%s in model failed when %s",
|
|
|
|
|
ATTR_MODEL_EVENT_NUM.c_str(), __FUNCTION__);
|
|
|
|
|
GELOGE(FAILED, "SetInt of ATTR_MODEL_EVENT_NUM failed.");
|
|
|
|
|
return FAILED);
|
|
|
|
|
GE_CHK_BOOL_EXEC(ge::AttrUtils::SetListInt(&model, ATTR_MODEL_HUGE_STREAM_LIST, huge_streams_),
|
|
|
|
|
REPORT_INNER_ERROR("E19999", "Set Attr:%s in model failed when %s",
|
|
|
|
|
ATTR_MODEL_HUGE_STREAM_LIST.c_str(), __FUNCTION__);
|
|
|
|
|
GELOGE(FAILED, "SetInt of ATTR_MODEL_HUGE_STREAM_LIST failed.");
|
|
|
|
|
return FAILED);
|
|
|
|
|
GE_CHK_BOOL_EXEC(ge::AttrUtils::SetInt(&model, ATTR_MODEL_LABEL_NUM, label_num_),
|
|
|
|
|
REPORT_INNER_ERROR("E19999", "Set Attr:%s in model failed when %s",
|
|
|
|
|
ATTR_MODEL_LABEL_NUM.c_str(), __FUNCTION__);
|
|
|
|
|
GELOGE(FAILED, "SetInt of ATTR_MODEL_LABEL_NUM failed.");
|
|
|
|
|
return FAILED);
|
|
|
|
|
GE_CHK_BOOL_EXEC(ge::AttrUtils::SetInt(&model, ATTR_MODEL_ZERO_COPY_MEMORY_SIZE, zero_copy_mem_size_),
|
|
|
|
|
REPORT_INNER_ERROR("E19999", "Set Attr:%s in model failed when %s",
|
|
|
|
|
ATTR_MODEL_ZERO_COPY_MEMORY_SIZE.c_str(), __FUNCTION__);
|
|
|
|
|
GELOGE(FAILED, "SetInt of ATTR_MODEL_ZERO_COPY_MEMORY_SIZE failed.");
|
|
|
|
|
return FAILED);
|
|
|
|
|
GE_CHK_BOOL_EXEC(ge::AttrUtils::SetListStr(&model, ATTR_MODEL_OUT_NODES_NAME, GetLocalOmgContext().net_out_nodes),
|
|
|
|
|
REPORT_INNER_ERROR("E19999", "Set Attr:%s in model failed when %s",
|
|
|
|
|
ATTR_MODEL_OUT_NODES_NAME.c_str(), __FUNCTION__);
|
|
|
|
|
GELOGE(FAILED, "SetListStr of ATTR_MODEL_OUT_NODES_NAME failed.");
|
|
|
|
|
return FAILED);
|
|
|
|
|
GELOGI("For model, max_mem_offset_: %zu, p2p_mem_size: %zu, zero_copy_mem_size_: %zu", max_mem_offset_,
|
|
|
|
@ -415,6 +443,8 @@ Status ModelBuilder::BuildModelDef(ge::Model &model) {
|
|
|
|
|
string fp_ceiling_mode;
|
|
|
|
|
if (ge::GetContext().GetOption("ge.fpCeilingMode", fp_ceiling_mode) == SUCCESS) {
|
|
|
|
|
if (!ge::AttrUtils::SetStr(&model, ATTR_FP_CEILING_MODE, fp_ceiling_mode)) {
|
|
|
|
|
REPORT_INNER_ERROR("E19999", "Set Attr:%s in model failed when %s",
|
|
|
|
|
ATTR_FP_CEILING_MODE.c_str(), __FUNCTION__);
|
|
|
|
|
GELOGE(FAILED, "Failed to set attr ATTR_FP_CEILING_MODE");
|
|
|
|
|
return FAILED;
|
|
|
|
|
}
|
|
|
|
@ -429,22 +459,30 @@ Status ModelBuilder::BuildModelDef(ge::Model &model) {
|
|
|
|
|
int64_t core_type = (ge_core_type == kVectorCore) ? 1 : 0;
|
|
|
|
|
GELOGI("core_type: %ld", core_type);
|
|
|
|
|
if (!ge::AttrUtils::SetInt(&model, ATTR_MODEL_CORE_TYPE, core_type)) {
|
|
|
|
|
REPORT_INNER_ERROR("E19999", "Set Attr:%s in model failed when %s",
|
|
|
|
|
ATTR_MODEL_CORE_TYPE.c_str(), __FUNCTION__);
|
|
|
|
|
GELOGE(FAILED, "SetInt of ATTR_CORE_TYPE failed.");
|
|
|
|
|
}
|
|
|
|
|
InitL1FusionOption();
|
|
|
|
|
GE_CHK_BOOL_EXEC(ge::AttrUtils::SetBool(&model, ATTR_NAME_SWITCH_FOR_L1_FUSION, is_l1_fusion_enable_),
|
|
|
|
|
REPORT_INNER_ERROR("E19999", "Set Attr:%s in model failed when %s",
|
|
|
|
|
ATTR_NAME_SWITCH_FOR_L1_FUSION.c_str(), __FUNCTION__);
|
|
|
|
|
GELOGE(FAILED, "SetBool of ATTR_NAME_SWITCH_FOR_L1_FUSION failed.");
|
|
|
|
|
return FAILED);
|
|
|
|
|
const DumpProperties &dump_properties = DumpManager::GetInstance().GetDumpProperties(session_id_);
|
|
|
|
|
bool is_op_debug = dump_properties.IsOpDebugOpen();
|
|
|
|
|
if (is_op_debug) {
|
|
|
|
|
if (!ge::AttrUtils::SetBool(&model, ATTR_OP_DEBUG_FLAG, is_op_debug)) {
|
|
|
|
|
REPORT_INNER_ERROR("E19999", "Set Attr:%s in model failed when %s",
|
|
|
|
|
ATTR_OP_DEBUG_FLAG.c_str(), __FUNCTION__);
|
|
|
|
|
GELOGE(FAILED, "SetBool of ATTR_OP_DEBUG_FLAG failed.");
|
|
|
|
|
return FAILED;
|
|
|
|
|
}
|
|
|
|
|
uint32_t op_debug_mode = dump_properties.GetOpDebugMode();
|
|
|
|
|
GELOGI("Get op debug mode:%d", op_debug_mode);
|
|
|
|
|
if (!ge::AttrUtils::SetInt(&model, ATTR_OP_DEBUG_MODE, op_debug_mode)) {
|
|
|
|
|
REPORT_INNER_ERROR("E19999", "Set Attr:%s in model failed when %s",
|
|
|
|
|
ATTR_OP_DEBUG_MODE.c_str(), __FUNCTION__);
|
|
|
|
|
GELOGE(FAILED, "SetBool of ATTR_OP_DEBUG_MODE failed.");
|
|
|
|
|
return FAILED;
|
|
|
|
|
}
|
|
|
|
@ -516,6 +554,8 @@ Status ModelBuilder::MergeWeights() {
|
|
|
|
|
// If MutableTensor failed, weight is nullptr.
|
|
|
|
|
(void)ge::AttrUtils::MutableTensor(op_desc, ATTR_NAME_WEIGHTS, weight);
|
|
|
|
|
if (weight == nullptr) {
|
|
|
|
|
REPORT_INNER_ERROR("E19999", "Can't get const weight in op:%s(%s) when %s",
|
|
|
|
|
op_desc->GetName().c_str(), op_desc->GetType().c_str(), __FUNCTION__);
|
|
|
|
|
GELOGE(FAILED, "Can't get const op weight, name: %s", node->GetName().c_str());
|
|
|
|
|
return FAILED;
|
|
|
|
|
}
|
|
|
|
@ -538,8 +578,15 @@ Status ModelBuilder::MergeWeights() {
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
if (weight_data.data() != nullptr) {
|
|
|
|
|
GE_IF_BOOL_EXEC(base_addr == nullptr, GELOGE(FAILED, "Base addr is nullptr."); return FAILED);
|
|
|
|
|
GE_IF_BOOL_EXEC(base_addr == nullptr,
|
|
|
|
|
REPORT_INNER_ERROR("E19999", "Check weight in op:%s(%s) is nullptr when %s",
|
|
|
|
|
op_desc->GetName().c_str(), op_desc->GetType().c_str(), __FUNCTION__);
|
|
|
|
|
GELOGE(FAILED, "Base addr is nullptr.");
|
|
|
|
|
return FAILED);
|
|
|
|
|
if (weight_offset_ - offset < weight_data.size()) {
|
|
|
|
|
REPORT_INNER_ERROR("E19999", "left weight size not enough for op:%s(%s) left_size:%zu, weight_size:%zu when %s",
|
|
|
|
|
op_desc->GetName().c_str(), op_desc->GetType().c_str(),
|
|
|
|
|
weight_offset_ - offset, weight_data.size(), __FUNCTION__);
|
|
|
|
|
GELOGE(FAILED, "left weight size not enough. left_size:%lu, weight_size:%lu",
|
|
|
|
|
weight_offset_ - offset, weight_data.size());
|
|
|
|
|
return FAILED;
|
|
|
|
@ -551,6 +598,9 @@ Status ModelBuilder::MergeWeights() {
|
|
|
|
|
auto err = memcpy_s(reinterpret_cast<void *>(dst_ptr), SECUREC_MEM_MAX_LEN, reinterpret_cast<void *>(src_ptr),
|
|
|
|
|
SECUREC_MEM_MAX_LEN);
|
|
|
|
|
if (err != EOK) {
|
|
|
|
|
REPORT_CALL_ERROR("E19999", "mem copy failed. errret:%u, "
|
|
|
|
|
"dst_ptr:%lx, dst_size:%lu, src_ptr:%lx, src_size:%lu, when %s",
|
|
|
|
|
err, dst_ptr, SECUREC_MEM_MAX_LEN, src_ptr, SECUREC_MEM_MAX_LEN, __FUNCTION__);
|
|
|
|
|
GELOGE(FAILED, "mem copy failed. errret:%u, "
|
|
|
|
|
"dst_ptr:%lx, dst_size:%lu, src_ptr:%lx, src_size:%lu",
|
|
|
|
|
err, dst_ptr, SECUREC_MEM_MAX_LEN, src_ptr, SECUREC_MEM_MAX_LEN);
|
|
|
|
@ -562,6 +612,9 @@ Status ModelBuilder::MergeWeights() {
|
|
|
|
|
}
|
|
|
|
|
auto err = memcpy_s(reinterpret_cast<void *>(dst_ptr), left_size, reinterpret_cast<void *>(src_ptr), left_size);
|
|
|
|
|
if (err != EOK) {
|
|
|
|
|
REPORT_CALL_ERROR("E19999", "mem copy failed. errret:%u, "
|
|
|
|
|
"dst_ptr:%lx, dst_size:%lu, src_ptr:%lx, src_size:%lu, when %s",
|
|
|
|
|
err, dst_ptr, SECUREC_MEM_MAX_LEN, src_ptr, SECUREC_MEM_MAX_LEN, __FUNCTION__);
|
|
|
|
|
GELOGE(FAILED, "mem copy failed. errret:%u, "
|
|
|
|
|
"dst_ptr:%lx, dst_size:%lu, src_ptr:%lx, src_size:%lu",
|
|
|
|
|
err, dst_ptr, SECUREC_MEM_MAX_LEN, src_ptr, SECUREC_MEM_MAX_LEN);
|
|
|
|
@ -602,6 +655,8 @@ Status ModelBuilder::SaveDataToModel(ge::Model &model, ge::GeModel &ge_model) {
|
|
|
|
|
}
|
|
|
|
|
GE_IF_BOOL_EXEC(tbe_kernel == nullptr, continue);
|
|
|
|
|
if (tbe_name_set.count(tbe_kernel->GetName()) > 0) {
|
|
|
|
|
REPORT_INNER_ERROR("E19999", "tbe_kernel name %s can't be the same, judge for op:%s(%s), when %s",
|
|
|
|
|
tbe_kernel->GetName().c_str(), n->GetName().c_str(), n->GetType().c_str(), __FUNCTION__);
|
|
|
|
|
GELOGE(FAILED, "tbe_kernel name %s can't be the same", tbe_kernel->GetName().c_str());
|
|
|
|
|
return FAILED;
|
|
|
|
|
}
|
|
|
|
@ -618,6 +673,8 @@ Status ModelBuilder::SaveDataToModel(ge::Model &model, ge::GeModel &ge_model) {
|
|
|
|
|
node_op_desc->TryGetExtAttr(ge::OP_EXTATTR_CUSTAICPU_KERNEL, CustAICPUKernelPtr());
|
|
|
|
|
GE_IF_BOOL_EXEC(cust_aicpu_kernel == nullptr, continue);
|
|
|
|
|
if (aicpu_name_set.count(cust_aicpu_kernel->GetName()) > 0) {
|
|
|
|
|
REPORT_INNER_ERROR("E19999", "aicpu_kernel name %s can't be the same, judge for op:%s(%s), when %s",
|
|
|
|
|
cust_aicpu_kernel->GetName().c_str(), n->GetName().c_str(), n->GetType().c_str(), __FUNCTION__);
|
|
|
|
|
GELOGE(FAILED, "aicpu_kernel name %s can't be the same", cust_aicpu_kernel->GetName().c_str());
|
|
|
|
|
return FAILED;
|
|
|
|
|
}
|
|
|
|
@ -640,6 +697,7 @@ Status ModelBuilder::SaveDataToModel(ge::Model &model, ge::GeModel &ge_model) {
|
|
|
|
|
// Add task
|
|
|
|
|
GeAttrValue::BYTES task_def_bytes;
|
|
|
|
|
if (!AttrUtils::GetZeroCopyBytes(model, MODEL_ATTR_TASKS, task_def_bytes)) {
|
|
|
|
|
REPORT_CALL_ERROR("E19999", "Get attr:%s in model fail when %s", MODEL_ATTR_TASKS.c_str(), __FUNCTION__);
|
|
|
|
|
GELOGE(INTERNAL_ERROR, "Get zero copy bytes fail.");
|
|
|
|
|
return INTERNAL_ERROR;
|
|
|
|
|
}
|
|
|
|
@ -675,6 +733,7 @@ void ModelBuilder::SetModelVersion(ge::Model &model) {
|
|
|
|
|
|
|
|
|
|
Status ModelBuilder::PreBuildModel() {
|
|
|
|
|
if ((compute_graph_ == nullptr) || !(compute_graph_->IsValid())) {
|
|
|
|
|
REPORT_INNER_ERROR("E19999", "Check compute_graph no valid when %s", __FUNCTION__);
|
|
|
|
|
GELOGE(FAILED, "Graph_ is not valid.");
|
|
|
|
|
return FAILED;
|
|
|
|
|
}
|
|
|
|
@ -754,6 +813,7 @@ Status ModelBuilder::CompileSingleOp() {
|
|
|
|
|
// Create ge instance
|
|
|
|
|
std::shared_ptr<GELib> instance = ge::GELib::GetInstance();
|
|
|
|
|
if ((instance == nullptr) || !instance->InitFlag()) {
|
|
|
|
|
REPORT_INNER_ERROR("E19999", "Check GELib instance not init before when %s", __FUNCTION__);
|
|
|
|
|
GELOGE(ge::GE_CLI_GE_NOT_INITIALIZED, "CompileSingleOp failed.");
|
|
|
|
|
return ge::GE_CLI_GE_NOT_INITIALIZED;
|
|
|
|
|
}
|
|
|
|
@ -775,6 +835,8 @@ Status ModelBuilder::CompileSingleOp() {
|
|
|
|
|
(void)instance->DNNEngineManagerObj().GetDNNEngineName(node);
|
|
|
|
|
kernel_lib_name = op_desc->GetOpKernelLibName();
|
|
|
|
|
if (kernel_lib_name.empty()) {
|
|
|
|
|
REPORT_INNER_ERROR("E19999", "Check kernel lib name empty of op:%s(%s) when %s",
|
|
|
|
|
node->GetName().c_str(), node->GetType().c_str(), __FUNCTION__);
|
|
|
|
|
GELOGE(ge::INTERNAL_ERROR, "Get node:%s(%s) kernel lib failed.", node->GetName().c_str(),
|
|
|
|
|
node->GetType().c_str());
|
|
|
|
|
return ge::INTERNAL_ERROR;
|
|
|
|
@ -785,6 +847,8 @@ Status ModelBuilder::CompileSingleOp() {
|
|
|
|
|
if (kernel_info != nullptr) {
|
|
|
|
|
node_vector_map[kernel_lib_name].emplace_back(node);
|
|
|
|
|
} else {
|
|
|
|
|
REPORT_INNER_ERROR("E19999", "Get ops kernel info store failed for op:%s(%s), op_kernel_name:%s, when %s",
|
|
|
|
|
node->GetName().c_str(), node->GetType().c_str(), kernel_lib_name.c_str(), __FUNCTION__);
|
|
|
|
|
GELOGE(ge::GE_GRAPH_PARAM_NULLPTR, "Get op %s ops kernel info store failed", node->GetName().c_str());
|
|
|
|
|
return ge::GE_GRAPH_PARAM_NULLPTR;
|
|
|
|
|
}
|
|
|
|
@ -800,6 +864,8 @@ Status ModelBuilder::CompileSingleOp() {
|
|
|
|
|
GELOGI("[GEPERFTRACE] The node size of compile op of %s is %zu", kernel_lib_name.c_str(), node_vector.size());
|
|
|
|
|
GE_TIMESTAMP_ADD(BatchCompileOp);
|
|
|
|
|
if (ret != ge::SUCCESS) {
|
|
|
|
|
REPORT_CALL_ERROR("E19999", "Batch compile op failed, kernel lib name, node size:%zu, when %s",
|
|
|
|
|
node_vector.size(), __FUNCTION__);
|
|
|
|
|
GELOGE(ret, "Compile op failed, kernel lib name is %s", kernel_lib_name.c_str());
|
|
|
|
|
return ret;
|
|
|
|
|
}
|
|
|
|
|