Browse Source

Merge remote-tracking branch 'upstream/r1.2.0' into r1.2.0

pull/954/head
chenyemeng 5 years ago
parent
commit
39eb9ae906
3 changed files with 23 additions and 12 deletions
  1. +13
    -5
      ge/graph/load/new_model_manager/model_manager.cc
  2. +5
    -7
      ge/graph/preprocess/multi_batch_copy_graph.cc
  3. +5
    -0
      tests/depends/mmpa/src/mmpa_stub.cc

+ 13
- 5
ge/graph/load/new_model_manager/model_manager.cc View File

@@ -18,6 +18,7 @@

#include <string>

#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;
@@ -1037,6 +1037,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<std::mutex> lock(session_id_create_mutex_);

mmTimeval tv;
@@ -1044,12 +1050,14 @@ Status ModelManager::GenSessionId(uint64_t &session_id) {
GELOGE(INTERNAL_ERROR, "Failed to get current time.");
return INTERNAL_ERROR;
}
session_id = static_cast<uint64_t>(tv.tv_sec * kTimeSpecMiro + tv.tv_usec); // 1000000us
uint64_t timestamp = static_cast<uint64_t>(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<<kMaskPerOffset<<kMaskPerOffset) & kSessionTimeMask) +
((pid<<kMaskPerOffset) & kSessionPidMask) + (session_id_bias_ & kSessionBiasMask);

GELOGD("Generate new session id: %lu.", session_id);
return SUCCESS;


+ 5
- 7
ge/graph/preprocess/multi_batch_copy_graph.cc View File

@@ -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) {


+ 5
- 0
tests/depends/mmpa/src/mmpa_stub.cc View File

@@ -272,3 +272,8 @@ VOID *mmDlsym(VOID *handle, const CHAR *funcName)
{
return NULL;
}

INT32 mmGetPid()
{
return (INT32)getpid();
}

Loading…
Cancel
Save