diff --git a/src/plugins/intel_cpu/src/nodes/subgraph.cpp b/src/plugins/intel_cpu/src/nodes/subgraph.cpp index 34d3ad1dd766a6..4d0f057b8f643b 100644 --- a/src/plugins/intel_cpu/src/nodes/subgraph.cpp +++ b/src/plugins/intel_cpu/src/nodes/subgraph.cpp @@ -932,7 +932,8 @@ Subgraph::SubgraphExecutor::SubgraphExecutor(const std::shared_ptrgetDataAs() + offset; m_in_requested_repackings[desc.first] = std::make_shared(engine, requested_desc, data_ptr); offset += requested_desc->getCurrentMemSize(); - std::cout << "scratch_mem is created for requested desc " << desc.first << std::endl; + std::cout << "scratch_mem is created for requested desc " << desc.first + << ", ptr = " << m_in_requested_repackings[desc.first]->getData() << std::endl; } #if defined(__linux__) && defined(OPENVINO_ARCH_X86_64) && defined(SNIPPETS_DEBUG_CAPS) @@ -1018,6 +1019,22 @@ void Subgraph::SubgraphExecutor::execute(dnnl::stream strm, std::vector inMemPtrs, const std::vector& outMemPtrs) { + std::cout << "[ INFO ] Reorder execute is called\n"; + // TODO: discuss whether it is applicable to create new memory object from scratchpad on each inference + // As an alternative option, the separate memory object (not from scratchpad) can be created once on Executor constructor stage + const auto internal_buffer_size = static_cast(m_nthreads) * m_buffer_scratchpad_size; + size_t offset = internal_buffer_size; + for (auto& intermediate_memory : m_in_requested_repackings) { + auto& mem = intermediate_memory.second; + const auto& desc = mem->getDescPtr(); + const void* data_ptr = m_buffer_scratchpad->getDataAs() + offset; + mem = std::make_shared(strm.get_engine(), desc, data_ptr, false); + offset += desc->getCurrentMemSize(); + std::cout << "scratch_mem is used for requested desc " << intermediate_memory.first + << ", ptr = " << mem->getData() << std::endl; + std::cout << "m_scratch = " << m_buffer_scratchpad->getData() << std::endl; + } + for (auto& requested_repacking : m_in_requested_repackings) { const auto& scratch_mem = requested_repacking.second; scratch_mem->load(*inMemPtrs[requested_repacking.first]);