@@ -139,7 +139,8 @@ int MemoryDumper::OpenFile(const char *filename) { | |||||
GE_IF_BOOL_EXEC( | GE_IF_BOOL_EXEC( | ||||
-1 != path_split_pos, string prefix_path = std::string(filename).substr(0, path_split_pos); | -1 != path_split_pos, string prefix_path = std::string(filename).substr(0, path_split_pos); | ||||
string last_path = std::string(filename).substr(path_split_pos, strlen(filename) - 1); | string last_path = std::string(filename).substr(path_split_pos, strlen(filename) - 1); | ||||
GE_CHK_BOOL_TRUE_EXEC_WITH_LOG(prefix_path.length() >= MMPA_MAX_PATH, return kInvalidFd, "Prefix path is too long!"); | |||||
GE_CHK_BOOL_TRUE_EXEC_WITH_LOG(prefix_path.length() >= MMPA_MAX_PATH, return kInvalidFd, | |||||
"Prefix path is too long!"); | |||||
GE_CHK_BOOL_TRUE_EXEC_WITH_LOG(mmRealPath(prefix_path.c_str(), tmp_path, MMPA_MAX_PATH) != EN_OK, return kInvalidFd, | GE_CHK_BOOL_TRUE_EXEC_WITH_LOG(mmRealPath(prefix_path.c_str(), tmp_path, MMPA_MAX_PATH) != EN_OK, return kInvalidFd, | ||||
"Dir %s does not exit.", prefix_path.c_str()); | "Dir %s does not exit.", prefix_path.c_str()); | ||||
real_path = std::string(tmp_path) + last_path;) | real_path = std::string(tmp_path) + last_path;) | ||||
@@ -120,11 +120,11 @@ Status ModelHelper::SaveModelTbeKernel(std::shared_ptr<OmFileSaveHelper> &om_fil | |||||
TBEKernelStore tbe_kernel_store = ge_model->GetTBEKernelStore(); | TBEKernelStore tbe_kernel_store = ge_model->GetTBEKernelStore(); | ||||
GELOGD("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, ModelPartitionType::TBE_KERNELS, | |||||
ge_model->GetTBEKernelStore().Data(), | |||||
ge_model->GetTBEKernelStore().DataSize(), model_index), | |||||
"Add tbe kernel partition failed"); | |||||
GE_CHK_STATUS_RET(SaveModelPartition(om_file_save_helper, | |||||
ModelPartitionType::TBE_KERNELS, | |||||
ge_model->GetTBEKernelStore().Data(), | |||||
ge_model->GetTBEKernelStore().DataSize(), | |||||
model_index), "Add tbe kernel partition failed"); | |||||
} | } | ||||
// no need to check value, DATA->NetOutput | // no need to check value, DATA->NetOutput | ||||
(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()); | ||||
@@ -639,7 +639,8 @@ Status GeExecutor::UnloadModel(uint32_t model_id) { | |||||
return ACL_ERROR_GE_INTERNAL_ERROR; | return ACL_ERROR_GE_INTERNAL_ERROR; | ||||
} | } | ||||
std::shared_ptr<hybrid::HybridDavinciModel> hybrid_davinci_model = ModelManager::GetInstance()->GetHybridModel(model_id); | |||||
std::shared_ptr<hybrid::HybridDavinciModel> hybrid_davinci_model = | |||||
ModelManager::GetInstance()->GetHybridModel(model_id); | |||||
if (hybrid_davinci_model != nullptr) { | if (hybrid_davinci_model != nullptr) { | ||||
uint64_t session_id = hybrid_davinci_model->GetSessionId(); | uint64_t session_id = hybrid_davinci_model->GetSessionId(); | ||||
VarManagerPool::Instance().RemoveVarManager(session_id); | VarManagerPool::Instance().RemoveVarManager(session_id); | ||||
@@ -21,7 +21,7 @@ | |||||
namespace { | namespace { | ||||
const uint32_t kRangeCeilInterval = 2; | const uint32_t kRangeCeilInterval = 2; | ||||
const uint32_t kLogBase = 2; | const uint32_t kLogBase = 2; | ||||
const int64_t kLargeBlockSize = 8 * 1024 * 1024; | |||||
const int64_t kLargeBlockSize = 8388608; // 8 * 1024 * 1024 | |||||
const int64_t kLargeBlockRangeSize = 2; | const int64_t kLargeBlockRangeSize = 2; | ||||
} // namespace | } // namespace | ||||
@@ -1415,8 +1415,8 @@ Status BlockMemAssigner::AssignOutputMemoryWithReuse(const NodePtr &node, vector | |||||
bool reset_zero_copy_flag = false; | bool reset_zero_copy_flag = false; | ||||
bool no_need_assign_memory = ((size == 0) || CheckIsZeroMemNodeType(node->GetType())); | bool no_need_assign_memory = ((size == 0) || CheckIsZeroMemNodeType(node->GetType())); | ||||
if (!no_need_assign_memory) { | if (!no_need_assign_memory) { | ||||
out_node_set_continuous_input = | |||||
IsOutNodeSetContinuousInput(node, i, peer_name, peer_input_index, no_need_assign_memory, reset_zero_copy_flag); | |||||
out_node_set_continuous_input = IsOutNodeSetContinuousInput(node, i, peer_name, peer_input_index, | |||||
no_need_assign_memory, reset_zero_copy_flag); | |||||
GE_IF_BOOL_EXEC(!no_need_assign_memory, | GE_IF_BOOL_EXEC(!no_need_assign_memory, | ||||
no_need_assign_memory = IsAtomicOutputMemory(node, i, is_atomic, out_node_set_continuous_input);); | no_need_assign_memory = IsAtomicOutputMemory(node, i, is_atomic, out_node_set_continuous_input);); | ||||
} | } | ||||
@@ -1499,7 +1499,7 @@ void BlockMemAssigner::AssignMemoryWithReuse(vector<int64_t> &ranges) { | |||||
bool workspace_skip_flag = false; | bool workspace_skip_flag = false; | ||||
if (has_tvm_workspace_mem_type_attr && tvm_workspace_memory_type[i] == RT_MEMORY_L1) { | if (has_tvm_workspace_mem_type_attr && tvm_workspace_memory_type[i] == RT_MEMORY_L1) { | ||||
GELOGI( | GELOGI( | ||||
"fusion: node[%s]workspace index[%zu] is not hbm type, add to zero_memory_list, workspace memory type [%ld]", | |||||
"fusion: node[%s]workspace idx[%zu] is not hbm type, add to zero_memory_list, workspace memory type [%ld]", | |||||
node_op_desc->GetName().c_str(), i, tvm_workspace_memory_type[i]); | node_op_desc->GetName().c_str(), i, tvm_workspace_memory_type[i]); | ||||
workspace_skip_flag = true; | workspace_skip_flag = true; | ||||
} | } | ||||
@@ -49,7 +49,8 @@ inline bool HasContinuousStreamLabel(const ge::OpDescPtr &op_desc, std::string & | |||||
} | } | ||||
bool IsHcclOp(const string &op_type) { | bool IsHcclOp(const string &op_type) { | ||||
const set<string> hccl_op_types({ge::HCOMBROADCAST, ge::HCOMALLGATHER, ge::HCOMALLREDUCE, ge::HCOMREDUCESCATTER, ge::HCOMREDUCE}); | |||||
const set<string> hccl_op_types({ge::HCOMBROADCAST, ge::HCOMALLGATHER, ge::HCOMALLREDUCE, ge::HCOMREDUCESCATTER, | |||||
ge::HCOMREDUCE}); | |||||
return hccl_op_types.find(op_type) != hccl_op_types.end(); | return hccl_op_types.find(op_type) != hccl_op_types.end(); | ||||
} | } | ||||
} // namespace | } // namespace | ||||
@@ -83,7 +83,7 @@ const uint32_t kAddrLen = sizeof(void *); | |||||
const int kDecimal = 10; | const int kDecimal = 10; | ||||
const int kBytes = 8; | const int kBytes = 8; | ||||
const uint32_t kDataMemAlignSizeCompare = 64; | const uint32_t kDataMemAlignSizeCompare = 64; | ||||
const uint32_t kDumpL1FusionOpMByteSize = 2 * 1024 * 1024; | |||||
const uint32_t kDumpL1FusionOpMByteSize = 2097152; // 2 * 1024 * 1024 | |||||
const uint32_t kDumpFlagOfL1Fusion = 0; | const uint32_t kDumpFlagOfL1Fusion = 0; | ||||
const char *const kDefaultBatchLable = "Batch_default"; | const char *const kDefaultBatchLable = "Batch_default"; | ||||
const char *const kGetDynamicDimsName = "ascend_mbatch_get_dynamic_dims_node"; | const char *const kGetDynamicDimsName = "ascend_mbatch_get_dynamic_dims_node"; | ||||
@@ -330,8 +330,8 @@ Status DavinciModel::InitFeatureMapAndP2PMem(void *dev_ptr, size_t mem_size) { | |||||
GELOGE(GE_EXEC_ALLOC_FEATURE_MAP_MEM_FAILED, "Alloc feature map memory failed. size: %zu", data_size); | GELOGE(GE_EXEC_ALLOC_FEATURE_MAP_MEM_FAILED, "Alloc feature map memory failed. size: %zu", data_size); | ||||
return GE_EXEC_ALLOC_FEATURE_MAP_MEM_FAILED; | return GE_EXEC_ALLOC_FEATURE_MAP_MEM_FAILED; | ||||
} | } | ||||
GEEVENT("[IMAS]InitFeatureMapAndP2PMem graph_%u MallocMemory type[F] memaddr[%p] mem_size[%zu]", runtime_param_.graph_id, | |||||
mem_base_, data_size); | |||||
GEEVENT("[IMAS]InitFeatureMapAndP2PMem graph_%u MallocMemory type[F] memaddr[%p] mem_size[%zu]", | |||||
runtime_param_.graph_id, mem_base_, data_size); | |||||
if (!is_inner_weight_base_) { | if (!is_inner_weight_base_) { | ||||
weights_mem_base_ = mem_base_; | weights_mem_base_ = mem_base_; | ||||
@@ -1543,7 +1543,8 @@ Status DavinciModel::LoadWithQueue() { | |||||
} | } | ||||
if (output_queue_ids_.size() != new_output_data_info_.size()) { | if (output_queue_ids_.size() != new_output_data_info_.size()) { | ||||
GELOGE(ACL_ERROR_GE_EXEC_MODEL_QUEUE_ID_INVALID, "Output queue ids not match model: output_queue=%zu output_data=%zu", | |||||
GELOGE(ACL_ERROR_GE_EXEC_MODEL_QUEUE_ID_INVALID, | |||||
"Output queue ids not match model: output_queue=%zu output_data=%zu", | |||||
output_queue_ids_.size(), new_output_data_info_.size()); | output_queue_ids_.size(), new_output_data_info_.size()); | ||||
return ACL_ERROR_GE_EXEC_MODEL_QUEUE_ID_INVALID; | return ACL_ERROR_GE_EXEC_MODEL_QUEUE_ID_INVALID; | ||||
} | } | ||||
@@ -4061,7 +4062,7 @@ void DavinciModel::SetDataDumperArgs(const ComputeGraphPtr &compute_graph) { | |||||
data_dumper_.SetDeviceId(device_id); | data_dumper_.SetDeviceId(device_id); | ||||
// set loop count addr | // set loop count addr | ||||
auto get_var_addr = [](const OpDescPtr &op, const RuntimeParam &runtime_param) -> void * { | |||||
auto get_var_addr = [](const OpDescPtr &op, const RuntimeParam &runtime_param) -> void* { | |||||
if (op != nullptr) { | if (op != nullptr) { | ||||
auto v_output_size = ModelUtils::GetOutputSize(op); | auto v_output_size = ModelUtils::GetOutputSize(op); | ||||
auto v_output_addr = ModelUtils::GetOutputDataAddrs(runtime_param, op); | auto v_output_addr = ModelUtils::GetOutputDataAddrs(runtime_param, op); | ||||
@@ -550,7 +550,8 @@ Status GraphManager::OptimizeSubGraphWithMultiThreads(ComputeGraphPtr compute_gr | |||||
(void) AttrUtils::SetStr(subgraph->GetSubGraph(), ATTR_NAME_OP_COMPILE_STRATEGY, op_compile_strategy); | (void) AttrUtils::SetStr(subgraph->GetSubGraph(), ATTR_NAME_OP_COMPILE_STRATEGY, op_compile_strategy); | ||||
} | } | ||||
std::future<Status> f = executor.commit(GraphManager::ProcessSubGraphWithMultiThreads, this, | std::future<Status> f = executor.commit(GraphManager::ProcessSubGraphWithMultiThreads, this, | ||||
compute_graph->GetGraphID(), subgraph, compute_graph, session_id, GetThreadLocalContext()); | |||||
compute_graph->GetGraphID(), subgraph, compute_graph, | |||||
session_id, GetThreadLocalContext()); | |||||
if (!f.valid()) { | if (!f.valid()) { | ||||
GELOGE(FAILED, "Future is invalid"); | GELOGE(FAILED, "Future is invalid"); | ||||
return FAILED; | return FAILED; | ||||
@@ -32,7 +32,8 @@ Debug::~Debug() = default; | |||||
void Debug::DumpProto(const Message &proto, const char *file) { | void Debug::DumpProto(const Message &proto, const char *file) { | ||||
std::string file_path = RealPath(file); | std::string file_path = RealPath(file); | ||||
int fd = mmOpen2(file_path.c_str(), M_WRONLY | M_CREAT | O_TRUNC, M_IRUSR | M_IWUSR | M_UMASK_GRPREAD | M_UMASK_OTHREAD); | |||||
int fd = mmOpen2(file_path.c_str(), M_WRONLY | M_CREAT | O_TRUNC, M_IRUSR | M_IWUSR | M_UMASK_GRPREAD | | |||||
M_UMASK_OTHREAD); | |||||
if (fd == -1) { | if (fd == -1) { | ||||
GELOGW("Write %s failed", file_path.c_str()); | GELOGW("Write %s failed", file_path.c_str()); | ||||
return; | return; | ||||
@@ -150,7 +150,8 @@ Status SubgraphPass::SubgraphOutputNode(const ComputeGraphPtr &graph, const Node | |||||
std::string op_type; | std::string op_type; | ||||
bool insert_flag = NodeUtils::GetConstOpType(in_node, op_type) || | bool insert_flag = NodeUtils::GetConstOpType(in_node, op_type) || | ||||
IsAtomicRequired(in_node, peer_out_anchor->GetIdx()) || IsOutputContinuesRequired(in_node) || | IsAtomicRequired(in_node, peer_out_anchor->GetIdx()) || IsOutputContinuesRequired(in_node) || | ||||
((in_node->GetType() == DATA) && (kWhileOpTypes.count(graph->GetParentNode()->GetType()) == 0)) || | |||||
((in_node->GetType() == DATA) && | |||||
(kWhileOpTypes.count(graph->GetParentNode()->GetType()) == 0)) || | |||||
(!graph->GetGraphUnknownFlag() && NodeUtils::IsDynamicShape(node) && | (!graph->GetGraphUnknownFlag() && NodeUtils::IsDynamicShape(node) && | ||||
(kWhileOpTypes.count(in_node->GetType()) != 0)); | (kWhileOpTypes.count(in_node->GetType()) != 0)); | ||||
if (insert_flag) { | if (insert_flag) { | ||||
@@ -1621,7 +1621,8 @@ Status GraphPrepare::CheckUserInput(const std::vector<GeTensor> &user_input) { | |||||
for (size_t i = 0; i < desc.GetShape().GetDimNum(); ++i) { | for (size_t i = 0; i < desc.GetShape().GetDimNum(); ++i) { | ||||
if (desc.GetShape().GetDim(i) < 0) { | if (desc.GetShape().GetDim(i) < 0) { | ||||
std::string situation = "data dim[" + std::to_string(i) + "][" + std::to_string(desc.GetShape().GetDim(i)) + "]" ; | |||||
std::string situation = "data dim[" + std::to_string(i) + "][" + std::to_string(desc.GetShape().GetDim(i)) + | |||||
"]"; | |||||
std::string reason = "it need >= 0"; | std::string reason = "it need >= 0"; | ||||
ErrorManager::GetInstance().ATCReportErrMessage("E19025", {"situation", "reason"}, {situation, reason}); | ErrorManager::GetInstance().ATCReportErrMessage("E19025", {"situation", "reason"}, {situation, reason}); | ||||
GELOGE(GE_GRAPH_INIT_FAILED, "data dim %zu is not supported, need >= 0, real:%ld.", i, | GELOGE(GE_GRAPH_INIT_FAILED, "data dim %zu is not supported, need >= 0, real:%ld.", i, | ||||
@@ -180,9 +180,9 @@ Status SsdPriorboxKernel::SetVariance(const vector<float> &variance, const int d | |||||
return SUCCESS; | return SUCCESS; | ||||
} | } | ||||
Status SsdPriorboxKernel::GetNumPriorAndDimSize(uint32_t aspect_ratios_size, uint32_t min_sizes_size, uint32_t max_sizes_size, | |||||
int layer_width, int layer_height, int &num_priors, | |||||
int &dim_size) const { | |||||
Status SsdPriorboxKernel::GetNumPriorAndDimSize(uint32_t aspect_ratios_size, uint32_t min_sizes_size, | |||||
uint32_t max_sizes_size, int layer_width, int layer_height, | |||||
int &num_priors, int &dim_size) const { | |||||
if (ge::CheckUint32MulOverflow(min_sizes_size, aspect_ratios_size) != SUCCESS) { | if (ge::CheckUint32MulOverflow(min_sizes_size, aspect_ratios_size) != SUCCESS) { | ||||
return PARAM_INVALID; | return PARAM_INVALID; | ||||
} | } | ||||
@@ -379,11 +379,13 @@ Status HybridModelAsyncExecutor::Execute(const std::vector<DataBuffer> &inputs, | |||||
} | } | ||||
if (output_real_size > 0) { | if (output_real_size > 0) { | ||||
if (outputs[i].length < static_cast<uint64_t>(output_real_size)) { | if (outputs[i].length < static_cast<uint64_t>(output_real_size)) { | ||||
GELOGE(FAILED, "output idx[%zu], the memory size of output[%lu] given by user should be greater than or equal to the real size of output[%ld]", | |||||
GELOGE(FAILED, | |||||
"output idx[%zu], the memory size of output[%lu] given by user should >= the real size of output[%ld]", | |||||
i, outputs[i].length, output_real_size); | i, outputs[i].length, output_real_size); | ||||
return FAILED; | return FAILED; | ||||
} | } | ||||
GE_CHK_RT_RET(rtMemcpy(outputs[i].data, outputs[i].length, args.outputs[i].GetData(), output_real_size, RT_MEMCPY_DEVICE_TO_DEVICE)); | |||||
GE_CHK_RT_RET(rtMemcpy(outputs[i].data, outputs[i].length, args.outputs[i].GetData(), output_real_size, | |||||
RT_MEMCPY_DEVICE_TO_DEVICE)); | |||||
} | } | ||||
outputs[i].length = output_real_size; | outputs[i].length = output_real_size; | ||||
} | } | ||||
@@ -62,7 +62,8 @@ Status ShapeInferenceEngine::InferShape(NodeState &node_state) { | |||||
{ | { | ||||
std::lock_guard<std::mutex> lk(mu_); | std::lock_guard<std::mutex> lk(mu_); | ||||
RECORD_SHAPE_INFERENCE_EVENT(execution_context_, node_item.NodeName().c_str(), "[InferShapeAndType] Start"); | RECORD_SHAPE_INFERENCE_EVENT(execution_context_, node_item.NodeName().c_str(), "[InferShapeAndType] Start"); | ||||
GE_CHK_STATUS_RET(ShapeRefiner::InferShapeAndTypeForRunning(node_item.node, true), "Invoke InferShapeAndType failed."); | |||||
GE_CHK_STATUS_RET(ShapeRefiner::InferShapeAndTypeForRunning(node_item.node, true), | |||||
"Invoke InferShapeAndType failed."); | |||||
RECORD_SHAPE_INFERENCE_EVENT(execution_context_, node_item.NodeName().c_str(), "[InferShapeAndType] End"); | RECORD_SHAPE_INFERENCE_EVENT(execution_context_, node_item.NodeName().c_str(), "[InferShapeAndType] End"); | ||||
} | } | ||||
// Check again to make sure shape is valid after shape inference | // Check again to make sure shape is valid after shape inference | ||||
@@ -176,7 +176,8 @@ Status HybridModel::GetInputOutputDescInfo(vector<InputOutputDescInfo> &input_de | |||||
return SUCCESS; | return SUCCESS; | ||||
} | } | ||||
void HybridModel::SetInputDimsAndShapeRangesInfo(const vector<int64_t> &model_input_dims, std::vector<std::pair<int64_t,int64_t>> &shape_ranges, | |||||
void HybridModel::SetInputDimsAndShapeRangesInfo(const vector<int64_t> &model_input_dims, | |||||
std::vector<std::pair<int64_t, int64_t>> &shape_ranges, | |||||
InputOutputDescInfo &input) { | InputOutputDescInfo &input) { | ||||
for (auto model_input_dim : model_input_dims) { | for (auto model_input_dim : model_input_dims) { | ||||
input.shape_info.dims.push_back(model_input_dim); | input.shape_info.dims.push_back(model_input_dim); | ||||
@@ -245,7 +246,9 @@ Status HybridModel::GetInputDescInfo(vector<InputOutputDescInfo> &input_desc, st | |||||
return SUCCESS; | return SUCCESS; | ||||
} | } | ||||
void HybridModel::CreateOutput(ConstGeTensorDescPtr &output_desc, InputOutputDescInfo &output_desc_info, uint32_t &format_result) { | |||||
void HybridModel::CreateOutput(ConstGeTensorDescPtr &output_desc, | |||||
InputOutputDescInfo &output_desc_info, | |||||
uint32_t &format_result) { | |||||
GE_IF_BOOL_EXEC(output_desc == nullptr, GELOGE(FAILED, "output desc ptr is nullptr"); return ); | GE_IF_BOOL_EXEC(output_desc == nullptr, GELOGE(FAILED, "output desc ptr is nullptr"); return ); | ||||
Format format = output_desc->GetFormat(); | Format format = output_desc->GetFormat(); | ||||
GeShape shape = output_desc->GetShape(); | GeShape shape = output_desc->GetShape(); | ||||
@@ -283,7 +286,8 @@ void HybridModel::CreateOutput(ConstGeTensorDescPtr &output_desc, InputOutputDes | |||||
Status HybridModel::GetOutputDescInfo(vector<InputOutputDescInfo> &output_desc, std::vector<uint32_t> &formats) { | Status HybridModel::GetOutputDescInfo(vector<InputOutputDescInfo> &output_desc, std::vector<uint32_t> &formats) { | ||||
std::vector<ConstGeTensorDescPtr> output_desc_list; | std::vector<ConstGeTensorDescPtr> output_desc_list; | ||||
GE_CHK_STATUS_RET(root_graph_item_->GetOutputDescList(output_desc_list), "get output desc info failed"); // output_desc_list contains vaild input desc | |||||
GE_CHK_STATUS_RET(root_graph_item_->GetOutputDescList(output_desc_list), | |||||
"get output desc info failed"); // output_desc_list contains vaild input desc | |||||
vector<std::string> out_node_names; | vector<std::string> out_node_names; | ||||
(void)ge::AttrUtils::GetListStr(ge_root_model_->GetRootGraph(), ATTR_MODEL_OUT_NODES_NAME, out_node_names); | (void)ge::AttrUtils::GetListStr(ge_root_model_->GetRootGraph(), ATTR_MODEL_OUT_NODES_NAME, out_node_names); | ||||
@@ -293,7 +297,8 @@ Status HybridModel::GetOutputDescInfo(vector<InputOutputDescInfo> &output_desc, | |||||
GE_CHECK_NOTNULL(op_desc); | GE_CHECK_NOTNULL(op_desc); | ||||
auto out_size = static_cast<uint32_t>(op_desc->GetInputsSize()); | auto out_size = static_cast<uint32_t>(op_desc->GetInputsSize()); | ||||
GE_CHK_BOOL_RET_STATUS(out_size == output_desc_list.size(), FAILED, "output size[%u] not match output_desc_list size[%zu]", out_size, output_desc_list.size()); | |||||
GE_CHK_BOOL_RET_STATUS(out_size == output_desc_list.size(), FAILED, | |||||
"output size[%u] not match output_desc_list size[%zu]", out_size, output_desc_list.size()); | |||||
for (uint32_t index = 0; index < out_size; ++index) { | for (uint32_t index = 0; index < out_size; ++index) { | ||||
string output_name; | string output_name; | ||||
@@ -301,9 +306,11 @@ Status HybridModel::GetOutputDescInfo(vector<InputOutputDescInfo> &output_desc, | |||||
std::vector<int64_t> src_index = op_desc->GetSrcIndex(); | std::vector<int64_t> src_index = op_desc->GetSrcIndex(); | ||||
if (out_size == out_node_names.size()) { | if (out_size == out_node_names.size()) { | ||||
bool contains_colon = out_node_names[index].find(":") != std::string::npos; | bool contains_colon = out_node_names[index].find(":") != std::string::npos; | ||||
output_name = contains_colon ? out_node_names[index] : out_node_names[index] + ":" + std::to_string(src_index[index]); | |||||
output_name = contains_colon ? out_node_names[index] : out_node_names[index] + ":" + | |||||
std::to_string(src_index[index]); | |||||
} else { | } else { | ||||
output_name = std::string("output_") + std::to_string(index) + "_" + src_name[index] + "_" + std::to_string(src_index[index]); | |||||
output_name = std::string("output_") + std::to_string(index) + "_" + src_name[index] + "_" + | |||||
std::to_string(src_index[index]); | |||||
} | } | ||||
InputOutputDescInfo output_desc_info; | InputOutputDescInfo output_desc_info; | ||||
@@ -175,8 +175,8 @@ Status OpsKernelManager::ParsePluginOptions(const map<string, string> &options, | |||||
} else if (flag == 1) { | } else if (flag == 1) { | ||||
enable_flag = true; | enable_flag = true; | ||||
} else { | } else { | ||||
GELOGE(GE_GRAPH_OPTIONS_INVALID, "option_key:%s, its value %s is invalid, it must be 0 or 1.", plugin_name.c_str(), | |||||
iter->second.c_str()); | |||||
GELOGE(GE_GRAPH_OPTIONS_INVALID, "option_key:%s, its value %s is invalid, it must be 0 or 1.", | |||||
plugin_name.c_str(), iter->second.c_str()); | |||||
return GE_GRAPH_OPTIONS_INVALID; | return GE_GRAPH_OPTIONS_INVALID; | ||||
} | } | ||||
} catch (std::invalid_argument &) { | } catch (std::invalid_argument &) { | ||||
@@ -188,7 +188,8 @@ Status OpsKernelManager::ParsePluginOptions(const map<string, string> &options, | |||||
iter->second.c_str()); | iter->second.c_str()); | ||||
return GE_GRAPH_OPTIONS_INVALID; | return GE_GRAPH_OPTIONS_INVALID; | ||||
} catch (...) { | } catch (...) { | ||||
GELOGE(GE_GRAPH_OPTIONS_INVALID, "option_key:%s, its value %s is invalid, it must be 0 or 1.", plugin_name.c_str(), | |||||
GELOGE(GE_GRAPH_OPTIONS_INVALID, "option_key:%s, its value %s is invalid, it must be 0 or 1.", | |||||
plugin_name.c_str(), | |||||
iter->second.c_str()); | iter->second.c_str()); | ||||
return GE_GRAPH_OPTIONS_INVALID; | return GE_GRAPH_OPTIONS_INVALID; | ||||
} | } | ||||
@@ -644,7 +644,8 @@ Status ParseOutNodes(const string &out_nodes) { | |||||
if (!domi::GetContext().user_out_nodes_top_vec.empty()) { | if (!domi::GetContext().user_out_nodes_top_vec.empty()) { | ||||
ErrorManager::GetInstance().ATCReportErrMessage("E10001", {"parameter", "value", "reason"}, | ErrorManager::GetInstance().ATCReportErrMessage("E10001", {"parameter", "value", "reason"}, | ||||
{"--out_nodes", out_nodes, "is not all index or top_name"}); | {"--out_nodes", out_nodes, "is not all index or top_name"}); | ||||
GELOGE(PARAM_INVALID, "This out_nodes str must be all index or top_name, while the actual input is %s", out_nodes.c_str()); | |||||
GELOGE(PARAM_INVALID, "This out_nodes str must be all index or top_name, while the actual input is %s", | |||||
out_nodes.c_str()); | |||||
return PARAM_INVALID; | return PARAM_INVALID; | ||||
} | } | ||||
// stoi: The method may throw an exception: invalid_argument/out_of_range | // stoi: The method may throw an exception: invalid_argument/out_of_range | ||||
@@ -109,7 +109,8 @@ Status SingleOp::ValidateArgs(const std::vector<DataBuffer> &inputs, const std:: | |||||
auto num_outputs = outputs.size(); | auto num_outputs = outputs.size(); | ||||
if (num_outputs != output_sizes_.size()) { | if (num_outputs != output_sizes_.size()) { | ||||
GELOGE(ACL_ERROR_GE_PARAM_INVALID, "output num mismatch. model expect %zu, but given %zu", output_sizes_.size(), outputs.size()); | |||||
GELOGE(ACL_ERROR_GE_PARAM_INVALID, "output num mismatch. model expect %zu, but given %zu", | |||||
output_sizes_.size(), outputs.size()); | |||||
return ACL_ERROR_GE_PARAM_INVALID; | return ACL_ERROR_GE_PARAM_INVALID; | ||||
} | } | ||||
@@ -248,12 +249,14 @@ Status DynamicSingleOp::ValidateParams(const vector<GeTensorDesc> &input_desc, | |||||
} | } | ||||
if (input_desc.size() != num_inputs_) { | if (input_desc.size() != num_inputs_) { | ||||
GELOGE(ACL_ERROR_GE_PARAM_INVALID, "Input number mismatches. expect %zu, but given %zu", num_inputs_, input_desc.size()); | |||||
GELOGE(ACL_ERROR_GE_PARAM_INVALID, "Input number mismatches. expect %zu, but given %zu", num_inputs_, | |||||
input_desc.size()); | |||||
return ACL_ERROR_GE_PARAM_INVALID; | return ACL_ERROR_GE_PARAM_INVALID; | ||||
} | } | ||||
if (output_desc.size() != num_outputs_) { | if (output_desc.size() != num_outputs_) { | ||||
GELOGE(ACL_ERROR_GE_PARAM_INVALID, "Output number mismatches. expect %zu, but given %zu", num_outputs_, output_desc.size()); | |||||
GELOGE(ACL_ERROR_GE_PARAM_INVALID, "Output number mismatches. expect %zu, but given %zu", num_outputs_, | |||||
output_desc.size()); | |||||
return ACL_ERROR_GE_PARAM_INVALID; | return ACL_ERROR_GE_PARAM_INVALID; | ||||
} | } | ||||
@@ -263,7 +263,8 @@ Status SingleOpModel::BuildTaskList(SingleOp &single_op) { | |||||
task->SetModelArgs(model_name_, model_id_); | task->SetModelArgs(model_name_, model_id_); | ||||
single_op.tasks_.emplace_back(task); | single_op.tasks_.emplace_back(task); | ||||
} else { | } else { | ||||
GELOGE(ACL_ERROR_GE_OP_KERNEL_TYPE_INVALID, "Only TBE, AI_CPU, CUST_AI_CPU kernel are supported, but got %u", context.kernel_type()); | |||||
GELOGE(ACL_ERROR_GE_OP_KERNEL_TYPE_INVALID, "Only TBE, AI_CPU, CUST_AI_CPU kernel are supported, but got %u", | |||||
context.kernel_type()); | |||||
return ACL_ERROR_GE_OP_KERNEL_TYPE_INVALID; | return ACL_ERROR_GE_OP_KERNEL_TYPE_INVALID; | ||||
} | } | ||||
} else if (task_type == RT_MODEL_TASK_KERNEL_EX) { | } else if (task_type == RT_MODEL_TASK_KERNEL_EX) { | ||||
@@ -173,7 +173,8 @@ Status TbeTaskBuilder::RegisterKernel(TbeOpTask &task, const SingleOpModelParam | |||||
auto tbe_kernel = GetTbeKernel(op_desc_); | auto tbe_kernel = GetTbeKernel(op_desc_); | ||||
if (tbe_kernel == nullptr) { | if (tbe_kernel == nullptr) { | ||||
GELOGE(ACL_ERROR_GE_INTERNAL_ERROR, "OP EXT ATTR NAME TBE_KERNEL not found. op = %s", op_desc_->GetName().c_str()); | |||||
GELOGE(ACL_ERROR_GE_INTERNAL_ERROR, "OP EXT ATTR NAME TBE_KERNEL not found. op = %s", | |||||
op_desc_->GetName().c_str()); | |||||
return ACL_ERROR_GE_INTERNAL_ERROR; | return ACL_ERROR_GE_INTERNAL_ERROR; | ||||
} | } | ||||
@@ -21,7 +21,7 @@ | |||||
namespace ge { | namespace ge { | ||||
#define CC_FUSION_OP_MAX 32 | |||||
const int CC_FUSION_OP_MAX = 32; | |||||
typedef enum tagCcStatus { | typedef enum tagCcStatus { | ||||
CC_STATUS_SUCCESS = 0, /**< succ */ | CC_STATUS_SUCCESS = 0, /**< succ */ | ||||