From 0739fee85f102961869b80756d1243d10a989e19 Mon Sep 17 00:00:00 2001 From: Narumol Prangnawarat Date: Tue, 11 Aug 2020 11:24:25 +0100 Subject: IVGCVSW-5203 Fix Dynamic Sample Backend build Signed-off-by: Narumol Prangnawarat Change-Id: Ie2a8b0e4f439500a1978f66dd332281220c75a82 --- src/dynamic/sample/SampleDynamicBackend.cpp | 12 +++++++++--- src/dynamic/sample/SampleTensorHandle.cpp | 19 ++++++++++++++++--- src/dynamic/sample/SampleTensorHandle.hpp | 8 +++++--- 3 files changed, 30 insertions(+), 9 deletions(-) diff --git a/src/dynamic/sample/SampleDynamicBackend.cpp b/src/dynamic/sample/SampleDynamicBackend.cpp index 2ef8faa627..7a3475b8d4 100644 --- a/src/dynamic/sample/SampleDynamicBackend.cpp +++ b/src/dynamic/sample/SampleDynamicBackend.cpp @@ -44,9 +44,15 @@ public: } IBackendInternal::IWorkloadFactoryPtr CreateWorkloadFactory( - class TensorHandleFactoryRegistry& /*tensorHandleFactoryRegistry*/) const override + class TensorHandleFactoryRegistry& tensorHandleFactoryRegistry) const override { - return IWorkloadFactoryPtr{}; + auto memoryManager = std::make_shared(); + + tensorHandleFactoryRegistry.RegisterMemoryManager(memoryManager); + tensorHandleFactoryRegistry.RegisterFactory(std::make_unique(memoryManager)); + + return std::make_unique( + PolymorphicPointerDowncast(memoryManager)); } IBackendInternal::IBackendProfilingContextPtr CreateBackendProfilingContext( @@ -80,7 +86,7 @@ public: return optimizationViews; } - void RegisterTensorHandleFactories(class TensorHandleFactoryRegistry& registry) const override + void RegisterTensorHandleFactories(class TensorHandleFactoryRegistry& registry) override { auto memoryManager = std::make_shared(); diff --git a/src/dynamic/sample/SampleTensorHandle.cpp b/src/dynamic/sample/SampleTensorHandle.cpp index 48f8cf44fa..fb4eddcb55 100644 --- a/src/dynamic/sample/SampleTensorHandle.cpp +++ b/src/dynamic/sample/SampleTensorHandle.cpp @@ -21,14 +21,13 @@ SampleTensorHandle::SampleTensorHandle(const TensorInfo &tensorInfo, } SampleTensorHandle::SampleTensorHandle(const TensorInfo& tensorInfo, - std::shared_ptr &memoryManager, MemorySourceFlags importFlags) : m_TensorInfo(tensorInfo), - m_MemoryManager(memoryManager), + m_MemoryManager(nullptr), m_Pool(nullptr), m_UnmanagedMemory(nullptr), m_ImportFlags(importFlags), - m_Imported(false) + m_Imported(true) { } @@ -134,4 +133,18 @@ bool SampleTensorHandle::Import(void* memory, MemorySource source) return false; } +void SampleTensorHandle::CopyOutTo(void* dest) const +{ + const void *src = GetPointer(); + ARMNN_ASSERT(src); + memcpy(dest, src, m_TensorInfo.GetNumBytes()); +} + +void SampleTensorHandle::CopyInFrom(const void* src) +{ + void *dest = GetPointer(); + ARMNN_ASSERT(dest); + memcpy(dest, src, m_TensorInfo.GetNumBytes()); +} + } diff --git a/src/dynamic/sample/SampleTensorHandle.hpp b/src/dynamic/sample/SampleTensorHandle.hpp index c08edc69b7..2a44ed6ada 100644 --- a/src/dynamic/sample/SampleTensorHandle.hpp +++ b/src/dynamic/sample/SampleTensorHandle.hpp @@ -17,9 +17,7 @@ class SampleTensorHandle : public ITensorHandle public: SampleTensorHandle(const TensorInfo& tensorInfo, std::shared_ptr &memoryManager); - SampleTensorHandle(const TensorInfo& tensorInfo, - std::shared_ptr &memoryManager, - MemorySourceFlags importFlags); + SampleTensorHandle(const TensorInfo& tensorInfo, MemorySourceFlags importFlags); ~SampleTensorHandle(); @@ -61,6 +59,10 @@ public: virtual bool Import(void* memory, MemorySource source) override; private: + // Only used for testing + void CopyOutTo(void*) const override; + void CopyInFrom(const void*) override; + void* GetPointer() const; SampleTensorHandle(const SampleTensorHandle& other) = delete; // noncopyable -- cgit v1.2.1