| @@ -813,6 +813,7 @@ Status DataDumper::UnloadDumpInfo() { | |||||
| for (const auto &op_iter : op_list_) { | for (const auto &op_iter : op_list_) { | ||||
| aicpu::dump::Task task; | aicpu::dump::Task task; | ||||
| task.set_task_id(op_iter.task_id); | task.set_task_id(op_iter.task_id); | ||||
| task.set_stream_id(op_iter.stream_id); | |||||
| op_mapping_info.mutable_task()->Add(std::move(task)); | op_mapping_info.mutable_task()->Add(std::move(task)); | ||||
| } | } | ||||
| auto ret = ExecuteUnLoadDumpInfo(op_mapping_info); | auto ret = ExecuteUnLoadDumpInfo(op_mapping_info); | ||||
| @@ -3851,6 +3851,9 @@ void DavinciModel::SetDataDumperArgs(const ComputeGraphPtr &compute_graph) { | |||||
| } | } | ||||
| data_dumper_.SetDeviceId(device_id); | data_dumper_.SetDeviceId(device_id); | ||||
| if (known_node_) { | |||||
| data_dumper_.SetLoopAddr(known_shape_global_step_, nullptr, nullptr); | |||||
| } else { | |||||
| // 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) { | ||||
| @@ -3868,6 +3871,7 @@ void DavinciModel::SetDataDumperArgs(const ComputeGraphPtr &compute_graph) { | |||||
| data_dumper_.SetLoopAddr(get_var_addr(GetVariableOp(NODE_NAME_GLOBAL_STEP), runtime_param_), | data_dumper_.SetLoopAddr(get_var_addr(GetVariableOp(NODE_NAME_GLOBAL_STEP), runtime_param_), | ||||
| get_var_addr(GetVariableOp(NODE_NAME_FLOWCTRL_LOOP_PER_ITER), runtime_param_), | get_var_addr(GetVariableOp(NODE_NAME_FLOWCTRL_LOOP_PER_ITER), runtime_param_), | ||||
| get_var_addr(GetVariableOp(NODE_NAME_FLOWCTRL_LOOP_COND), runtime_param_)); | get_var_addr(GetVariableOp(NODE_NAME_FLOWCTRL_LOOP_COND), runtime_param_)); | ||||
| } | |||||
| } | } | ||||
| uint32_t DavinciModel::GetFlowctrlIndex(uint32_t op_index) { | uint32_t DavinciModel::GetFlowctrlIndex(uint32_t op_index) { | ||||
| @@ -464,6 +464,10 @@ class DavinciModel { | |||||
| data_dumper_.SaveDumpTask(task_id, stream_id, op_desc, args); | data_dumper_.SaveDumpTask(task_id, stream_id, op_desc, args); | ||||
| } | } | ||||
| void SetKnownShapeGlobalStep(void *global_step) { | |||||
| known_shape_global_step_ = global_step; | |||||
| } | |||||
| void SetEndGraphId(uint32_t task_id, uint32_t stream_id); | void SetEndGraphId(uint32_t task_id, uint32_t stream_id); | ||||
| DavinciModel &operator=(const DavinciModel &model) = delete; | DavinciModel &operator=(const DavinciModel &model) = delete; | ||||
| @@ -985,6 +989,9 @@ class DavinciModel { | |||||
| // key: input_index: input is merge node; value: each gear info and each output shape | // key: input_index: input is merge node; value: each gear info and each output shape | ||||
| std::map<size_t, std::map<vector<int64_t>, vector<int64_t>>> merge_nodes_gear_and_real_out_shape_info_; | std::map<size_t, std::map<vector<int64_t>, vector<int64_t>>> merge_nodes_gear_and_real_out_shape_info_; | ||||
| std::vector<std::vector<int64_t>> all_gears_info_; | std::vector<std::vector<int64_t>> all_gears_info_; | ||||
| // known shape node for dump | |||||
| void *known_shape_global_step_; | |||||
| }; | }; | ||||
| } // namespace ge | } // namespace ge | ||||
| #endif // GE_GRAPH_LOAD_NEW_MODEL_MANAGER_DAVINCI_MODEL_H_ | #endif // GE_GRAPH_LOAD_NEW_MODEL_MANAGER_DAVINCI_MODEL_H_ | ||||
| @@ -203,7 +203,7 @@ void KernelExTaskInfo::InitDumpTask(void *addr, const OpDescPtr &op_desc) { | |||||
| if (davinci_model_->GetDumpProperties().IsLayerNeedDump(davinci_model_->Name(), davinci_model_->OmName(), | if (davinci_model_->GetDumpProperties().IsLayerNeedDump(davinci_model_->Name(), davinci_model_->OmName(), | ||||
| op_desc->GetName())) { | op_desc->GetName())) { | ||||
| dump_flag_ = RT_KERNEL_DUMPFLAG; | dump_flag_ = RT_KERNEL_DUMPFLAG; | ||||
| dump_args_ = input_output_addr_; | |||||
| dump_args_ = addr; | |||||
| } | } | ||||
| } | } | ||||
| @@ -126,6 +126,12 @@ Status KnownNodeTask::Init(TaskContext &context) { | |||||
| auto dump_properties = context.GetDumpProperties(); | auto dump_properties = context.GetDumpProperties(); | ||||
| if (dump_properties.IsDumpOpen()) { | if (dump_properties.IsDumpOpen()) { | ||||
| davinci_model_->SetDumpProperties(dump_properties); | davinci_model_->SetDumpProperties(dump_properties); | ||||
| void *global_step = nullptr; | |||||
| TensorValue *varible_global_step = context.GetVariable(NODE_NAME_GLOBAL_STEP); | |||||
| if (varible_global_step != nullptr) { | |||||
| global_step = varible_global_step->MutableData(); | |||||
| } | |||||
| davinci_model_->SetKnownShapeGlobalStep(global_step); | |||||
| } | } | ||||
| int32_t device_id = 0; | int32_t device_id = 0; | ||||
| rtError_t rt_ret = rtGetDevice(&device_id); | rtError_t rt_ret = rtGetDevice(&device_id); | ||||