File tree Expand file tree Collapse file tree 1 file changed +10
-1
lines changed
src/common/transformations/src/transformations/common_optimizations Expand file tree Collapse file tree 1 file changed +10
-1
lines changed Original file line number Diff line number Diff line change 3939#include " openvino/op/topk.hpp"
4040#include " openvino/op/transpose.hpp"
4141#include " openvino/op/unsqueeze.hpp"
42+ #include " openvino/op/util/op_types.hpp"
4243#include " openvino/op/util/shape_of_base.hpp"
4344#include " openvino/pass/manager.hpp"
4445#include " openvino/pass/pattern/matcher.hpp"
4748#include " openvino/pass/pattern/op/wrap_type.hpp"
4849#include " transformations/rt_info/decompression.hpp"
4950#include " transformations/utils/utils.hpp"
51+
5052namespace ov {
5153namespace pass {
5254
@@ -396,7 +398,14 @@ ov::pass::FuseMOEExperts::FuseMOEExperts() : MultiMatcher("FuseMOEExperts") {
396398 }
397399
398400 auto fused = std::make_shared<ov::op::v0::Concat>(inputs, 0 );
399- fused->get_rt_info ()[" postponed_constant" ] = true ;
401+ if (std::all_of (inputs.begin (), inputs.end (), [](const auto & input) {
402+ return ov::op::util::is_constant (input.get_node ());
403+ })) {
404+ // postponed_constant attribute is needed to perform constant folding on serialization step
405+ fused->get_rt_info ()[" postponed_constant" ] = true ;
406+ // disable constant folding here to postpone it to serialization step
407+ ov::pass::disable_constant_folding (fused);
408+ }
400409 if (needs_decompress) {
401410 auto convert = std::make_shared<ov::op::v0::Convert>(fused, target_type);
402411 ov::mark_as_decompression (convert);
You can’t perform that action at this time.
0 commit comments