diff --git a/paddle/fluid/imperative/prepared_operator.cc b/paddle/fluid/imperative/prepared_operator.cc index 4e0e95dd012976c292b4511e9707802c210dc599..c58b1e9596f6c2e0cf6b29f7ddc3cf43fb62a3ca 100644 --- a/paddle/fluid/imperative/prepared_operator.cc +++ b/paddle/fluid/imperative/prepared_operator.cc @@ -20,6 +20,8 @@ #include "paddle/fluid/imperative/infer_shape_context.h" #include "paddle/fluid/imperative/infer_var_type_context.h" +DECLARE_bool(use_mkldnn); + namespace paddle { namespace imperative { @@ -91,8 +93,10 @@ PreparedOp PrepareOpImpl(const NameVarMap& ins, // MKLDNN variant of code reads attributes in some of GetKernelTypeForVar and // GetKernelType functions, so we need to copy the attributes there. // Const qualifier of Attrs had to be discarded to overwrite it. - auto& mutable_op_attrs = const_cast(op.Attrs()); - mutable_op_attrs = attrs; + if (FLAGS_use_mkldnn) { + auto& mutable_op_attrs = const_cast(op.Attrs()); + mutable_op_attrs = attrs; + } #endif auto expected_kernel_key = op.GetExpectedKernelType(DygraphExecutionContext(