diff --git a/src/plugins/intel_gpu/src/graph/impls/ocl/gemm.cpp b/src/plugins/intel_gpu/src/graph/impls/ocl/gemm.cpp index 443771d40dc..2ed48b659d3 100644 --- a/src/plugins/intel_gpu/src/graph/impls/ocl/gemm.cpp +++ b/src/plugins/intel_gpu/src/graph/impls/ocl/gemm.cpp @@ -33,6 +33,12 @@ struct gemm_impl : multi_stage_primitive { return make_unique(*this); } + gemm_impl() = default; + + gemm_impl(const std::vector& kd) : parent(kd) { + this->can_reuse_memory = true; + } + void load(BinaryInputBuffer& ib) override { parent::load(ib); if (is_dynamic()) { diff --git a/src/plugins/intel_gpu/src/graph/impls/ocl/multi_stage_primitive.hpp b/src/plugins/intel_gpu/src/graph/impls/ocl/multi_stage_primitive.hpp index 658cdc88d18..b035e6b900e 100644 --- a/src/plugins/intel_gpu/src/graph/impls/ocl/multi_stage_primitive.hpp +++ b/src/plugins/intel_gpu/src/graph/impls/ocl/multi_stage_primitive.hpp @@ -51,7 +51,7 @@ struct multi_stage_primitive : public typed_primitive_impl { for (size_t k = 0; k < other._kernels.size(); ++k) { _kernels.emplace_back(other._kernels[k]->clone()); } - this->can_reuse_memory = false; + this->can_reuse_memory = other.can_reuse_memory; this->_kernel_name = other._kernel_name; this->_is_dynamic = other._is_dynamic; }