From d3515b16248b43f5a8285428eedcc16cabdd3125 Mon Sep 17 00:00:00 2001 From: wjm Date: Thu, 14 Jan 2021 10:24:40 +0800 Subject: [PATCH 1/3] change mult batch to switchn --- ge/graph/preprocess/multi_batch_copy_graph.cc | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/ge/graph/preprocess/multi_batch_copy_graph.cc b/ge/graph/preprocess/multi_batch_copy_graph.cc index 16535a59..60d19b14 100644 --- a/ge/graph/preprocess/multi_batch_copy_graph.cc +++ b/ge/graph/preprocess/multi_batch_copy_graph.cc @@ -1692,13 +1692,11 @@ Status MultiBatchGraphCopyer::LinkToNodeOutBranch(const NodePtr &node) { } Status ProcessMultiBatch(ComputeGraphPtr &graph) { - if (GetLocalOmgContext().dynamic_node_type.empty()) { - const char *multi_batch_with_switchn = std::getenv("MULTI_BATCH_WITH_SWITCHN"); - if (multi_batch_with_switchn == nullptr) { - PassManager pass_manager; - GE_CHK_STATUS_RET(pass_manager.AddPass("MultiBatchClonePass", new (std::nothrow) MultiBatchClonePass)); - return pass_manager.Run(graph); - } + const char *multi_batch_with_case = std::getenv("MULTI_BATCH_WITH_CASE"); + if (multi_batch_with_case == nullptr) { + PassManager pass_manager; + GE_CHK_STATUS_RET(pass_manager.AddPass("MultiBatchClonePass", new (std::nothrow) MultiBatchClonePass)); + return pass_manager.Run(graph); } if (!GetLocalOmgContext().need_multi_batch) { From 81cd9527aac4574144721f739d2bbc7c08385ed6 Mon Sep 17 00:00:00 2001 From: wjm Date: Thu, 14 Jan 2021 11:00:24 +0800 Subject: [PATCH 2/3] fix error --- ge/graph/preprocess/multi_batch_copy_graph.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ge/graph/preprocess/multi_batch_copy_graph.cc b/ge/graph/preprocess/multi_batch_copy_graph.cc index 60d19b14..aa1812ba 100644 --- a/ge/graph/preprocess/multi_batch_copy_graph.cc +++ b/ge/graph/preprocess/multi_batch_copy_graph.cc @@ -1693,7 +1693,7 @@ Status MultiBatchGraphCopyer::LinkToNodeOutBranch(const NodePtr &node) { Status ProcessMultiBatch(ComputeGraphPtr &graph) { const char *multi_batch_with_case = std::getenv("MULTI_BATCH_WITH_CASE"); - if (multi_batch_with_case == nullptr) { + if (multi_batch_with_case != nullptr) { PassManager pass_manager; GE_CHK_STATUS_RET(pass_manager.AddPass("MultiBatchClonePass", new (std::nothrow) MultiBatchClonePass)); return pass_manager.Run(graph); From ee5c71962dbe647c8b6e6d714960777c76dff9eb Mon Sep 17 00:00:00 2001 From: wangxiaotian22 Date: Thu, 14 Jan 2021 19:26:00 +0800 Subject: [PATCH 3/3] gensessionid add pid prefix --- .../load/new_model_manager/model_manager.cc | 18 +++++++++++++----- tests/depends/mmpa/src/mmpa_stub.cc | 5 +++++ 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/ge/graph/load/new_model_manager/model_manager.cc b/ge/graph/load/new_model_manager/model_manager.cc index 8faf9d26..1a4a5213 100755 --- a/ge/graph/load/new_model_manager/model_manager.cc +++ b/ge/graph/load/new_model_manager/model_manager.cc @@ -18,6 +18,7 @@ #include +#include "mmpa/mmpa_api.h" #include "aicpu/aicpu_schedule/aicpu_op_type_list.h" #include "common/dump/dump_manager.h" #include "common/l2_cache_optimize.h" @@ -53,7 +54,6 @@ const char *const kBatchLoadBuf = "batchLoadsoFrombuf"; const char *const kDeleteCustOp = "deleteCustOp"; const int kTimeSpecNano = 1000000000; const int kTimeSpecMiro = 1000000; -const int kSessionMaxBias = 100; const int kOpNameMaxSize = 100; struct CustAicpuSoBuf { uint64_t kernelSoBuf; @@ -1030,6 +1030,12 @@ Status ModelManager::GetAippType(uint32_t model_id, uint32_t index, InputAippTyp } Status ModelManager::GenSessionId(uint64_t &session_id) { + const uint64_t kSessionTimeMask = 0xffffffffffff0000; + const uint64_t kSessionPidMask = 0x000000000000ff00; + const uint64_t kSessionBiasMask = 0x00000000000000ff; + + const uint64_t kMaskPerOffset = 8; + std::lock_guard lock(session_id_create_mutex_); mmTimeval tv; @@ -1037,12 +1043,14 @@ Status ModelManager::GenSessionId(uint64_t &session_id) { GELOGE(INTERNAL_ERROR, "Failed to get current time."); return INTERNAL_ERROR; } - session_id = static_cast(tv.tv_sec * kTimeSpecMiro + tv.tv_usec); // 1000000us + uint64_t timestamp = static_cast(tv.tv_sec * kTimeSpecMiro + tv.tv_usec); // 1000000us + + static uint32_t pid = mmGetPid(); session_id_bias_++; - // max bais 100. - session_id_bias_ = session_id_bias_ % kSessionMaxBias; - session_id = session_id * kSessionMaxBias + session_id_bias_; + + session_id = ((timestamp<