diff --git a/paddle/fluid/framework/executor_cache.cc b/paddle/fluid/framework/executor_cache.cc index 7a97e67be90c51571dcd0e086e2cbae3822b2e4e..f5c4c745cfd51157dd755fe49f3cae8dbe536b92 100644 --- a/paddle/fluid/framework/executor_cache.cc +++ b/paddle/fluid/framework/executor_cache.cc @@ -23,6 +23,9 @@ #include "paddle/ir/core/value.h" #include "paddle/ir/pass/pass.h" #include "paddle/ir/pass/pass_manager.h" +#include "paddle/phi/core/flags.h" + +PHI_DECLARE_bool(new_ir_apply_inplace_pass); namespace paddle { namespace framework { @@ -444,9 +447,11 @@ std::unique_ptr<::ir::Program> ConstructFowardIrProgram( auto ir_res = paddle::dialect::PdOpLowerToKernelPass(program.get()); - ::ir::PassManager pm(::ir::IrContext::Instance(), 3); - pm.AddPass(::ir::CreateInplacePass()); - pm.Run(ir_res.get()); + if (FLAGS_new_ir_apply_inplace_pass) { + ::ir::PassManager pm(::ir::IrContext::Instance(), 3); + pm.AddPass(::ir::CreateInplacePass()); + pm.Run(ir_res.get()); + } return ir_res; } @@ -521,9 +526,11 @@ std::unique_ptr<::ir::Program> ConstructBackwardIrProgram( auto res = paddle::dialect::PdOpLowerToKernelPass(program.get()); - ::ir::PassManager pm(::ir::IrContext::Instance(), 3); - pm.AddPass(::ir::CreateInplacePass()); - pm.Run(res.get()); + if (FLAGS_new_ir_apply_inplace_pass) { + ::ir::PassManager pm(::ir::IrContext::Instance(), 3); + pm.AddPass(::ir::CreateInplacePass()); + pm.Run(res.get()); + } return res; } diff --git a/paddle/fluid/ir/transforms/inplace_pass.cc b/paddle/fluid/ir/transforms/inplace_pass.cc index c445da1142087e9243305dbc6db228a082a7175d..222abc83448954edb4b8274700d2a1ca846708bf 100644 --- a/paddle/fluid/ir/transforms/inplace_pass.cc +++ b/paddle/fluid/ir/transforms/inplace_pass.cc @@ -330,6 +330,8 @@ class InplacePass : public ir::Pass { "is_inplace", ir::BoolAttribute::get(ir::IrContext::Instance(), true)); } + LOG_FIRST_N(INFO, 1) + << "Apply inplace pass on lowering ::ir::Program to Kernel Dialect."; } bool CanApplyOn(ir::Operation* op) const override {