aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNarumol Prangnawarat <narumol.prangnawarat@arm.com>2020-08-11 11:24:25 +0100
committerNarumol Prangnawarat <narumol.prangnawarat@arm.com>2020-08-11 15:49:07 +0000
commit0739fee85f102961869b80756d1243d10a989e19 (patch)
tree0d1b51e196c8eec36ad867585a92bb1e5474621c
parent137813f2d107046e0836c8557cee0c57acd46c4b (diff)
downloadarmnn-0739fee85f102961869b80756d1243d10a989e19.tar.gz
IVGCVSW-5203 Fix Dynamic Sample Backend build
Signed-off-by: Narumol Prangnawarat <narumol.prangnawarat@arm.com> Change-Id: Ie2a8b0e4f439500a1978f66dd332281220c75a82
-rw-r--r--src/dynamic/sample/SampleDynamicBackend.cpp12
-rw-r--r--src/dynamic/sample/SampleTensorHandle.cpp19
-rw-r--r--src/dynamic/sample/SampleTensorHandle.hpp8
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<SampleMemoryManager>();
+
+ tensorHandleFactoryRegistry.RegisterMemoryManager(memoryManager);
+ tensorHandleFactoryRegistry.RegisterFactory(std::make_unique<SampleDynamicTensorHandleFactory>(memoryManager));
+
+ return std::make_unique<SampleDynamicWorkloadFactory>(
+ PolymorphicPointerDowncast<SampleMemoryManager>(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<SampleMemoryManager>();
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<SampleMemoryManager> &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<SampleMemoryManager> &memoryManager);
- SampleTensorHandle(const TensorInfo& tensorInfo,
- std::shared_ptr<SampleMemoryManager> &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