diff --git a/src/plugins/intel_gpu/src/graph/graph_optimizer/select_preferred_formats.cpp b/src/plugins/intel_gpu/src/graph/graph_optimizer/select_preferred_formats.cpp index 77b9154081a..9954c4416b7 100644 --- a/src/plugins/intel_gpu/src/graph/graph_optimizer/select_preferred_formats.cpp +++ b/src/plugins/intel_gpu/src/graph/graph_optimizer/select_preferred_formats.cpp @@ -39,6 +39,8 @@ void select_preferred_formats::run(program& p) { // Onednn primitive descriptor creation may fail, for example, due to asymmetric weight. try { if (n->is_type()) { + if (n->as().weights_zero_points_term()) + continue; auto prim_desc = onednn::get_convolution_primitive_descriptor(*n->get_kernel_impl_params(), dnnl::primitive_attr(), dnnl::memory::format_tag::any); diff --git a/src/plugins/intel_gpu/src/graph/layout_optimizer.cpp b/src/plugins/intel_gpu/src/graph/layout_optimizer.cpp index f54fe8d46f0..36984b050ea 100644 --- a/src/plugins/intel_gpu/src/graph/layout_optimizer.cpp +++ b/src/plugins/intel_gpu/src/graph/layout_optimizer.cpp @@ -1083,7 +1083,7 @@ layout layout_optimizer::get_expected_layout(layout const& current_layout, bool use_onednn_impls = _optimization_attributes.use_onednn_impls && input_layout.data_type != data_types::f32; bool i8_u8_input = input_layout.data_type == data_types::u8 || input_layout.data_type == data_types::i8; - if (use_onednn_impls && onednn_valid_post_ops) { + if (use_onednn_impls && onednn_valid_post_ops && node.get_preferred_output_fmt() != format::any) { expected_format = node.get_preferred_output_fmt(); } else { /* *************************** Native impls format selection part ************************** */