diff --git a/metadef b/metadef index 0dfbec2..c796c53 160000 --- a/metadef +++ b/metadef @@ -1 +1 @@ -Subproject commit 0dfbec2ebe779ef1206f40cb65a182c22c3613cd +Subproject commit c796c53d1971952beb1941fb3699dacc907d9625 diff --git a/parser/common/thread_pool.cc b/parser/common/thread_pool.cc index 6f0591f..876d9ff 100644 --- a/parser/common/thread_pool.cc +++ b/parser/common/thread_pool.cc @@ -21,10 +21,22 @@ #include #include "register/register_types.h" +#include "graph/ge_context.h" +#include "mmpa/mmpa_api.h" namespace ge { +namespace { +const char* const kMultiThreadCompile = "MULTI_THREAD_COMPILE"; +const char* const kDisEnableFlag = "0"; +bool IsSingleThreadCompile() { + std::string compile_thread; + return ((ge::GetContext().GetOption(kMultiThreadCompile, compile_thread) == GRAPH_SUCCESS) + && (compile_thread.compare(kDisEnableFlag) == 0)); +} +} + FMK_FUNC_HOST_VISIBILITY FMK_FUNC_DEV_VISIBILITY ThreadPool::ThreadPool(uint32_t size) : is_stoped_(false) { - idle_thrd_num_ = size < 1 ? 1 : size; + idle_thrd_num_ = ((size < 1U) || IsSingleThreadCompile()) ? 1U : size; for (uint32_t i = 0; i < idle_thrd_num_; ++i) { pool_.emplace_back(ThreadFunc, this);