diff --git a/paddle/fluid/framework/paddle2cinn/cinn_compiler.cc b/paddle/fluid/framework/paddle2cinn/cinn_compiler.cc index 59e9f25a4270e..bc9cfae5801b1 100644 --- a/paddle/fluid/framework/paddle2cinn/cinn_compiler.cc +++ b/paddle/fluid/framework/paddle2cinn/cinn_compiler.cc @@ -100,9 +100,9 @@ const CinnCompiledObject& CinnCompiler::Compile( exist = cache_.count(cur_key) != 0; } if (!exist) { + real_compiled_num_++; auto compiled_res = CompileGraph(graph, input_tensors, target); AutoWRLock w_guard{&rwlock_}; - real_compiled_num_++; cache_[cur_key] = std::move(compiled_res); } AutoRDLock guard{&rwlock_}; diff --git a/paddle/fluid/framework/paddle2cinn/cinn_compiler.h b/paddle/fluid/framework/paddle2cinn/cinn_compiler.h index 3a623fe3629ba..b844e7d317818 100644 --- a/paddle/fluid/framework/paddle2cinn/cinn_compiler.h +++ b/paddle/fluid/framework/paddle2cinn/cinn_compiler.h @@ -17,7 +17,6 @@ #include #include #include -#include #include #include @@ -67,16 +66,15 @@ class CinnCompiler { const ir::Graph& FindGraph(const std::string& key) const; void Clear() { - AutoWRLock guard{&rwlock_}; - graphs_.clear(); - cache_.clear(); + { + AutoWRLock guard{&rwlock_}; + graphs_.clear(); + cache_.clear(); + } real_compiled_num_ = 0; } - std::int64_t real_compiled_num() const { - AutoRDLock guard{&rwlock_}; - return real_compiled_num_; - } + std::int64_t real_compiled_num() const { return real_compiled_num_; } ~CinnCompiler() = default; @@ -91,7 +89,7 @@ class CinnCompiler { std::unordered_map, CinnCacheKey::Hash> cache_; - std::int64_t real_compiled_num_{0}; + std::atomic_int64_t real_compiled_num_{0}; mutable RWLock rwlock_; DISABLE_COPY_AND_ASSIGN(CinnCompiler); diff --git a/paddle/fluid/platform/flags.cc b/paddle/fluid/platform/flags.cc index 09b0500dd3641..a674a6a8acdf2 100644 --- a/paddle/fluid/platform/flags.cc +++ b/paddle/fluid/platform/flags.cc @@ -738,7 +738,8 @@ PADDLE_DEFINE_EXPORTED_string(allow_cinn_ops, "", * Name: FLAGS_deny_cinn_ops * Since Version: 2.3 * Value Range: string, default="" - * Example: FLAGS_deny_cinn_ops="mul" would block `mul` op when using CINN + * Example: FLAGS_deny_cinn_ops="mul;relu" would block `mul` and `relu` two ops + * when using CINN */ PADDLE_DEFINE_EXPORTED_string(deny_cinn_ops, "", "It controls the cinn op subset to be not used.");