Browse Source

support fwk offline inference when ge_lib is not initialized

pull/1636/head
lichun 4 years ago
parent
commit
12d963273e
2 changed files with 12 additions and 14 deletions
  1. +11
    -12
      ge/hybrid/node_executor/aicore/aicore_task_compiler.cc
  2. +1
    -2
      ge/hybrid/node_executor/aicore/aicore_task_compiler.h

+ 11
- 12
ge/hybrid/node_executor/aicore/aicore_task_compiler.cc View File

@@ -32,6 +32,11 @@ std::mutex AiCoreTaskCompiler::mu_;
std::mutex AiCoreTaskCompiler::init_mu_;

Status AiCoreTaskCompiler::Initialize() {
std::lock_guard<std::mutex> lk(mu_);
if (is_initialized_) {
return SUCCESS;
}

auto ge_lib = GELib::GetInstance();
GE_CHECK_NOTNULL(ge_lib);
if (!ge_lib->InitFlag()) {
@@ -42,10 +47,7 @@ Status AiCoreTaskCompiler::Initialize() {
auto &kernel_manager = ge_lib->OpsKernelManagerObj();
aic_kernel_store_ = kernel_manager.GetOpsKernelInfoStore("AIcoreEngine");
GE_CHECK_NOTNULL(aic_kernel_store_);
std::lock_guard<std::mutex> lk(init_mu_);
{
is_initialized_ = true;
}
is_initialized_ = true;
return SUCCESS;
}

@@ -62,14 +64,11 @@ Status AiCoreTaskCompiler::DoCompileOp(const NodePtr &node) const {
}

Status AiCoreTaskCompiler::CompileOp(const NodePtr &node, std::vector<domi::TaskDef> &tasks) {
if (!is_initialized_) {
Status ret;
ret = Initialize();
if (ret != SUCCESS) {
GELOGE(FAILED, "[Check][State][%s] Offline inference not support online compile.", node->GetName().c_str());
REPORT_INNER_ERROR("E19999", "[%s] Offline inference not support online compile.", node->GetName().c_str());
return ret;
}
Status ret = Initialize();
if (ret != SUCCESS) {
GELOGE(FAILED, "[Check][State][%s] Offline inference not support online compile.", node->GetName().c_str());
REPORT_INNER_ERROR("E19999", "[%s] Offline inference not support online compile.", node->GetName().c_str());
return ret;
}

GE_CHECK_NOTNULL(node);


+ 1
- 2
ge/hybrid/node_executor/aicore/aicore_task_compiler.h View File

@@ -34,9 +34,8 @@ class AiCoreTaskCompiler : public TaskCompiler {
Status DoCompileOp(const NodePtr &node) const;
Status DoGenerateTask(const Node &node, std::vector<domi::TaskDef> &tasks);
OpsKernelInfoStorePtr aic_kernel_store_;
bool is_initialized_ = false;
atomic_bool is_initialized_ = false;
static std::mutex mu_;
static std::mutex init_mu_;
};
} // namespace hybrid
} // namespace ge


Loading…
Cancel
Save