File tree 1 file changed +23
-1
lines changed
src/plugins/intel_gpu/src/graph/include
1 file changed +23
-1
lines changed Original file line number Diff line number Diff line change 8
8
#include " openvino/core/partial_shape.hpp"
9
9
#include " crop_inst.h"
10
10
#include " rope_inst.h"
11
+ #include " gemm_inst.h"
11
12
#include " primitive_inst.h"
12
13
13
14
#include < string>
@@ -40,9 +41,30 @@ struct typed_program_node<reshape> : public typed_program_node_base<reshape> {
40
41
return false ;
41
42
42
43
// TODO: If user is RoPE and dynamic padding exists, ouput padding propagation is not supported in the base mode
43
- if (get_users ().size () == 1 && get_users ().front ()->is_type <rope>())
44
+ auto user = get_users ().front ();
45
+ if (get_users ().size () == 1 && user->is_type <rope>())
44
46
return false ;
45
47
48
+ // TODO: Support transpose-fused gemm with dynamic_pad
49
+ if (get_users ().size () == 1 && user->is_type <gemm>()) {
50
+ auto desc = user->as <gemm>().get_primitive ();
51
+
52
+ auto input_order_transposed = [&]() -> bool {
53
+ for (size_t i = 0 ; i < desc->input0_transpose_order .size (); i++) {
54
+ if (desc->input0_transpose_order [i] != static_cast <int64_t >(i))
55
+ return true ;
56
+ }
57
+ for (size_t i = 0 ; i < desc->input1_transpose_order .size (); i++) {
58
+ if (desc->input1_transpose_order [i] != static_cast <int64_t >(i))
59
+ return true ;
60
+ }
61
+ return false ;
62
+ };
63
+
64
+ if (input_order_transposed ())
65
+ return false ;
66
+ }
67
+
46
68
auto axis = input ().as <crop>().get_primitive ()->axis ;
47
69
const auto & input_pshape = input ().get_output_layout (false ).get_partial_shape ();
48
70
auto input_rank = input_pshape.size ();
You can’t perform that action at this time.
0 commit comments