From 684093d759c8b23633a2e7ef1372d81999701079 Mon Sep 17 00:00:00 2001 From: zhou_chao1993 Date: Wed, 10 Mar 2021 12:24:23 +0800 Subject: [PATCH] modify data dumper --- ge/graph/load/model_manager/data_dumper.cc | 6 +-- ge/graph/load/model_manager/data_dumper.h | 38 ++++++++++++------- ge/graph/load/model_manager/davinci_model.cc | 10 ++--- .../executor/hybrid_model_async_executor.cc | 2 +- .../ut/ge/common/opdebug_register_unittest.cc | 4 +- .../ut/ge/graph/load/data_dumper_unittest.cc | 2 +- 6 files changed, 37 insertions(+), 25 deletions(-) diff --git a/ge/graph/load/model_manager/data_dumper.cc b/ge/graph/load/model_manager/data_dumper.cc index 235cffa9..5f48fe8e 100644 --- a/ge/graph/load/model_manager/data_dumper.cc +++ b/ge/graph/load/model_manager/data_dumper.cc @@ -385,7 +385,7 @@ Status DataDumper::DumpRefOutput(const DataDumper::InnerDumpInfo &inner_dump_inf Status DataDumper::DumpOutputWithTask(const InnerDumpInfo &inner_dump_info, aicpu::dump::Task &task) { const auto &output_descs = inner_dump_info.op->GetAllOutputsDesc(); - const std::vector output_addrs = ModelUtils::GetOutputDataAddrs(runtime_param_, inner_dump_info.op); + const std::vector output_addrs = ModelUtils::GetOutputDataAddrs(*runtime_param_, inner_dump_info.op); if (output_descs.size() != output_addrs.size()) { GELOGE(PARAM_INVALID, "Invalid output desc addrs size %zu, op %s has %zu output desc.", output_addrs.size(), inner_dump_info.op->GetName().c_str(), output_descs.size()); @@ -436,7 +436,7 @@ Status DataDumper::DumpOutput(const InnerDumpInfo &inner_dump_info, aicpu::dump: // else data, const or variable op aicpu::dump::Output output; auto output_tensor = inner_dump_info.op->GetOutputDescPtr(inner_dump_info.output_anchor_index); - const std::vector output_addrs = ModelUtils::GetOutputDataAddrs(runtime_param_, inner_dump_info.op); + const std::vector output_addrs = ModelUtils::GetOutputDataAddrs(*runtime_param_, inner_dump_info.op); if (output_tensor == nullptr) { GELOGE(PARAM_INVALID, "output_tensor is null, index: %d, size: %zu.", inner_dump_info.output_anchor_index, inner_dump_info.op->GetOutputsSize()); @@ -540,7 +540,7 @@ Status DataDumper::DumpRefInput(const DataDumper::InnerDumpInfo &inner_dump_info Status DataDumper::DumpInput(const InnerDumpInfo &inner_dump_info, aicpu::dump::Task &task) { GELOGI("Start dump input"); const auto &input_descs = inner_dump_info.op->GetAllInputsDesc(); - const std::vector input_addrs = ModelUtils::GetInputDataAddrs(runtime_param_, inner_dump_info.op); + const std::vector input_addrs = ModelUtils::GetInputDataAddrs(*runtime_param_, inner_dump_info.op); if (input_descs.size() != input_addrs.size()) { GELOGE(PARAM_INVALID, "Invalid input desc addrs size %zu, op %s has %zu input desc.", input_addrs.size(), inner_dump_info.op->GetName().c_str(), input_descs.size()); diff --git a/ge/graph/load/model_manager/data_dumper.h b/ge/graph/load/model_manager/data_dumper.h index fbe70cf0..06b42afd 100755 --- a/ge/graph/load/model_manager/data_dumper.h +++ b/ge/graph/load/model_manager/data_dumper.h @@ -36,9 +36,21 @@ namespace ge { class DataDumper { public: - DataDumper() : runtime_param_{} {} - - explicit DataDumper(const RuntimeParam &rsh) : runtime_param_(rsh) {} + explicit DataDumper(RuntimeParam *rsh) + : model_name_(), + model_id_(0), + runtime_param_(rsh), + dev_mem_load_(nullptr), + dev_mem_unload_(nullptr), + op_list_(), + input_map_(), + load_flag_(false), + device_id_(0), + global_step_(0), + loop_per_iter_(0), + loop_cond_(0), + compute_graph_(nullptr), + ref_info_() {} ~DataDumper(); @@ -93,10 +105,10 @@ class DataDumper { // for inference data dump std::string om_name_; - uint32_t model_id_ = 0; - const RuntimeParam &runtime_param_; - void *dev_mem_load_ = nullptr; - void *dev_mem_unload_ = nullptr; + uint32_t model_id_; + RuntimeParam *runtime_param_; + void *dev_mem_load_; + void *dev_mem_unload_; struct InnerDumpInfo; struct InnerInputMapping; @@ -107,12 +119,12 @@ class DataDumper { uint32_t end_graph_stream_id_ = 0; bool is_end_graph_ = false; std::multimap input_map_; // release after DavinciModel::Init - bool load_flag_ = false; - uint32_t device_id_ = 0; - uintptr_t global_step_ = 0; - uintptr_t loop_per_iter_ = 0; - uintptr_t loop_cond_ = 0; - ComputeGraphPtr compute_graph_ = nullptr; // release after DavinciModel::Init + bool load_flag_; + uint32_t device_id_; + uintptr_t global_step_; + uintptr_t loop_per_iter_; + uintptr_t loop_cond_; + ComputeGraphPtr compute_graph_; // release after DavinciModel::Init std::map ref_info_; // release after DavinciModel::Init void *l1_fusion_addr_ = nullptr; diff --git a/ge/graph/load/model_manager/davinci_model.cc b/ge/graph/load/model_manager/davinci_model.cc index 933aba5a..9d1ba0c2 100755 --- a/ge/graph/load/model_manager/davinci_model.cc +++ b/ge/graph/load/model_manager/davinci_model.cc @@ -184,7 +184,7 @@ DavinciModel::DavinciModel(int32_t priority, const std::shared_ptrGetGraphID(); // op debug register - GE_CHK_STATUS_RET(OpDebugRegister(), "OpDebugRegister failed."); + GE_CHK_STATUS_RET(OpDebugRegister(), "OpDebugRegister failed"); GE_TIMESTAMP_START(TransAllVarData); - GE_CHK_STATUS_RET(TransAllVarData(compute_graph, runtime_param_.graph_id), "TransAllVarData failed."); + GE_CHK_STATUS_RET(TransAllVarData(compute_graph, runtime_param_.graph_id), "TransAllVarData failed"); GE_TIMESTAMP_END(TransAllVarData, "GraphLoader::TransAllVarData"); - GE_CHK_STATUS_RET(TransVarDataUtils::CopyVarData(compute_graph, session_id_, device_id_), "copy var data failed."); + GE_CHK_STATUS_RET(TransVarDataUtils::CopyVarData(compute_graph, session_id_, device_id_), "copy var data failed"); GE_TIMESTAMP_START(InitModelMem); GELOGD("Known node is %d.", known_node_); @@ -667,7 +667,7 @@ Status DavinciModel::Init(void *dev_ptr, size_t mem_size, void *weight_ptr, size if (!known_node_) { GE_CHK_STATUS_RET_NOLOG(InitFeatureMapAndP2PMem(dev_ptr, mem_size)); data_inputer_ = new (std::nothrow) DataInputer(); - GE_CHK_BOOL_RET_STATUS(data_inputer_ != nullptr, MEMALLOC_FAILED, "data_inputer_ is nullptr."); + GE_CHK_BOOL_RET_STATUS(data_inputer_ != nullptr, MEMALLOC_FAILED, "data_inputer_ is nullptr"); } fixed_mem_base_ = reinterpret_cast(mem_base_); GE_TIMESTAMP_END(InitModelMem, "GraphLoader::InitModelMem"); diff --git a/ge/hybrid/executor/hybrid_model_async_executor.cc b/ge/hybrid/executor/hybrid_model_async_executor.cc index b6c4dc9e..487b55b9 100644 --- a/ge/hybrid/executor/hybrid_model_async_executor.cc +++ b/ge/hybrid/executor/hybrid_model_async_executor.cc @@ -29,7 +29,7 @@ const size_t kMinimumPiplineStages = 2; const int kDefaultLoopCount = 10; } HybridModelAsyncExecutor::HybridModelAsyncExecutor(HybridModel *model) - : model_(model), run_flag_(false) { + : model_(model), run_flag_(false), data_dumper_(nullptr) { } HybridModelAsyncExecutor::~HybridModelAsyncExecutor() { diff --git a/tests/ut/ge/common/opdebug_register_unittest.cc b/tests/ut/ge/common/opdebug_register_unittest.cc index fcdaddaf..528fd9e3 100644 --- a/tests/ut/ge/common/opdebug_register_unittest.cc +++ b/tests/ut/ge/common/opdebug_register_unittest.cc @@ -31,7 +31,7 @@ TEST_F(UTEST_opdebug_register, register_debug_for_model_success) { OpdebugRegister opdebug_register; rtModel_t model_handle = (void*)0x111; uint32_t op_debug_mode = 1; - DataDumper data_dumper; + DataDumper data_dumper({}); auto ret = opdebug_register.RegisterDebugForModel(model_handle, op_debug_mode, data_dumper); opdebug_register.UnregisterDebugForModel(model_handle); EXPECT_EQ(ret, ge::SUCCESS); @@ -41,7 +41,7 @@ TEST_F(UTEST_opdebug_register, register_debug_for_stream_success) { OpdebugRegister opdebug_register; rtStream_t stream = (void*)0x111; uint32_t op_debug_mode = 1; - DataDumper data_dumper; + DataDumper data_dumper({}); auto ret = opdebug_register.RegisterDebugForStream(stream, op_debug_mode, data_dumper); opdebug_register.UnregisterDebugForStream(stream); EXPECT_EQ(ret, ge::SUCCESS); diff --git a/tests/ut/ge/graph/load/data_dumper_unittest.cc b/tests/ut/ge/graph/load/data_dumper_unittest.cc index 1866f4eb..68040bf1 100644 --- a/tests/ut/ge/graph/load/data_dumper_unittest.cc +++ b/tests/ut/ge/graph/load/data_dumper_unittest.cc @@ -56,7 +56,7 @@ TEST_F(UtestDataDumper, LoadDumpInfo_no_output_addrs_fail) { TEST_F(UtestDataDumper, UnloadDumpInfo_success) { RuntimeParam rts_param; - DataDumper data_dumper(rts_param); + DataDumper data_dumper(&rts_param); data_dumper.SetModelName("test"); data_dumper.SetModelId(2333);