diff --git a/src/plugins/intel_gpu/src/kernel_selector/kernels/gemm/gemm_kernel_tiled_opt.cpp b/src/plugins/intel_gpu/src/kernel_selector/kernels/gemm/gemm_kernel_tiled_opt.cpp index 44ada811c8d..e0c4eabaeab 100644 --- a/src/plugins/intel_gpu/src/kernel_selector/kernels/gemm/gemm_kernel_tiled_opt.cpp +++ b/src/plugins/intel_gpu/src/kernel_selector/kernels/gemm/gemm_kernel_tiled_opt.cpp @@ -23,6 +23,7 @@ ParamsKey GemmKernelTiledOpt::GetSupportedKey() const { k.EnableInputLayout(DataLayout::bfwzyx); k.EnableOutputLayout(DataLayout::bfwzyx); + k.EnableTensorOffset(); k.EnableBatching(); k.EnableDifferentTypes(); k.EnableDynamicShapesSupport(); @@ -234,6 +235,13 @@ bool GemmKernelTiledOpt::Validate(const Params& params, const optional_params& o return false; const auto& gmm_params = static_cast(params); + for (auto input : gmm_params.inputs) { + // Only supports outer padding as first element offset + if (input.X().pad.Total() != 0 || input.Y().pad.Total() != 0 || input.Z().pad.Total() != 0 || + input.Feature().pad.Total() != 0) + return false; + } + bool gemm_leftovers = gmm_params.inputs[0].X().v % 16 || gmm_params.inputs[0].Y().v % 16 || gmm_params.inputs[1].X().v % 16 || gmm_params.inputs[1].Y().v % 16; // If gmm_params has dynamic inputs, the correct dimension value cannot be obtained