diff options
author | David Monahan <david.monahan@arm.com> | 2019-08-20 11:25:29 +0100 |
---|---|---|
committer | David Monahan <david.monahan@arm.com> | 2019-09-24 10:50:30 +0000 |
commit | 3fb7e105ae62cbfb3ebf1edebb90e2b6672b22aa (patch) | |
tree | 47793a736e1fb53d51b4c0fd755f4e24f7f93d98 /src/backends/cl | |
parent | 93667b1d7c361df68bdb1d733f17aba3ba34e046 (diff) | |
download | armnn-3fb7e105ae62cbfb3ebf1edebb90e2b6672b22aa.tar.gz |
IVGCVSW-3623 Implement NeonTensorHandle::Import
Signed-off-by: David Monahan <david.monahan@arm.com>
Change-Id: I7213788725fd4e4cf1176998604e999d0b7ed6cc
Diffstat (limited to 'src/backends/cl')
-rw-r--r-- | src/backends/cl/ClTensorHandleFactory.cpp | 18 | ||||
-rw-r--r-- | src/backends/cl/ClTensorHandleFactory.hpp | 6 | ||||
-rw-r--r-- | src/backends/cl/ClWorkloadFactory.cpp | 6 | ||||
-rw-r--r-- | src/backends/cl/ClWorkloadFactory.hpp | 6 |
4 files changed, 24 insertions, 12 deletions
diff --git a/src/backends/cl/ClTensorHandleFactory.cpp b/src/backends/cl/ClTensorHandleFactory.cpp index 87ecdfe1ba..3d9908a1ac 100644 --- a/src/backends/cl/ClTensorHandleFactory.cpp +++ b/src/backends/cl/ClTensorHandleFactory.cpp @@ -45,20 +45,26 @@ std::unique_ptr<ITensorHandle> ClTensorHandleFactory::CreateSubTensorHandle(ITen boost::polymorphic_downcast<IClTensorHandle *>(&parent), shape, coords); } -std::unique_ptr<ITensorHandle> ClTensorHandleFactory::CreateTensorHandle(const TensorInfo& tensorInfo) const +std::unique_ptr<ITensorHandle> ClTensorHandleFactory::CreateTensorHandle(const TensorInfo& tensorInfo, + const bool IsMemoryManaged) const { std::unique_ptr<ClTensorHandle> tensorHandle = std::make_unique<ClTensorHandle>(tensorInfo); - tensorHandle->SetMemoryGroup(m_MemoryManager->GetInterLayerMemoryGroup()); - + if (IsMemoryManaged) + { + tensorHandle->SetMemoryGroup(m_MemoryManager->GetInterLayerMemoryGroup()); + } return tensorHandle; } std::unique_ptr<ITensorHandle> ClTensorHandleFactory::CreateTensorHandle(const TensorInfo& tensorInfo, - DataLayout dataLayout) const + DataLayout dataLayout, + const bool IsMemoryManaged) const { std::unique_ptr<ClTensorHandle> tensorHandle = std::make_unique<ClTensorHandle>(tensorInfo, dataLayout); - tensorHandle->SetMemoryGroup(m_MemoryManager->GetInterLayerMemoryGroup()); - + if (IsMemoryManaged) + { + tensorHandle->SetMemoryGroup(m_MemoryManager->GetInterLayerMemoryGroup()); + } return tensorHandle; } diff --git a/src/backends/cl/ClTensorHandleFactory.hpp b/src/backends/cl/ClTensorHandleFactory.hpp index 7c3b49bee5..ea3728f7f7 100644 --- a/src/backends/cl/ClTensorHandleFactory.hpp +++ b/src/backends/cl/ClTensorHandleFactory.hpp @@ -28,10 +28,12 @@ public: const TensorShape& subTensorShape, const unsigned int* subTensorOrigin) const override; - std::unique_ptr<ITensorHandle> CreateTensorHandle(const TensorInfo& tensorInfo) const override; + std::unique_ptr<ITensorHandle> CreateTensorHandle(const TensorInfo& tensorInfo, + const bool IsMemoryManaged = true) const override; std::unique_ptr<ITensorHandle> CreateTensorHandle(const TensorInfo& tensorInfo, - DataLayout dataLayout) const override; + DataLayout dataLayout, + const bool IsMemoryManaged = true) const override; static const FactoryId& GetIdStatic(); diff --git a/src/backends/cl/ClWorkloadFactory.cpp b/src/backends/cl/ClWorkloadFactory.cpp index 8210be251c..536d4dd058 100644 --- a/src/backends/cl/ClWorkloadFactory.cpp +++ b/src/backends/cl/ClWorkloadFactory.cpp @@ -82,7 +82,8 @@ ClWorkloadFactory::ClWorkloadFactory(const std::shared_ptr<ClMemoryManager>& mem { } -std::unique_ptr<ITensorHandle> ClWorkloadFactory::CreateTensorHandle(const TensorInfo& tensorInfo) const +std::unique_ptr<ITensorHandle> ClWorkloadFactory::CreateTensorHandle(const TensorInfo& tensorInfo, + const bool IsMemoryManaged) const { std::unique_ptr<ClTensorHandle> tensorHandle = std::make_unique<ClTensorHandle>(tensorInfo); tensorHandle->SetMemoryGroup(m_MemoryManager->GetInterLayerMemoryGroup()); @@ -91,7 +92,8 @@ std::unique_ptr<ITensorHandle> ClWorkloadFactory::CreateTensorHandle(const Tenso } std::unique_ptr<ITensorHandle> ClWorkloadFactory::CreateTensorHandle(const TensorInfo& tensorInfo, - DataLayout dataLayout) const + DataLayout dataLayout, + const bool IsMemoryManaged) const { std::unique_ptr<ClTensorHandle> tensorHandle = std::make_unique<ClTensorHandle>(tensorInfo, dataLayout); tensorHandle->SetMemoryGroup(m_MemoryManager->GetInterLayerMemoryGroup()); diff --git a/src/backends/cl/ClWorkloadFactory.hpp b/src/backends/cl/ClWorkloadFactory.hpp index 493f659eab..c8d58dbb5c 100644 --- a/src/backends/cl/ClWorkloadFactory.hpp +++ b/src/backends/cl/ClWorkloadFactory.hpp @@ -31,10 +31,12 @@ public: TensorShape const& subTensorShape, unsigned int const* subTensorOrigin) const override; - std::unique_ptr<ITensorHandle> CreateTensorHandle(const TensorInfo& tensorInfo) const override; + std::unique_ptr<ITensorHandle> CreateTensorHandle(const TensorInfo& tensorInfo, + const bool IsMemoryManaged = true) const override; std::unique_ptr<ITensorHandle> CreateTensorHandle(const TensorInfo& tensorInfo, - DataLayout dataLayout) const override; + DataLayout dataLayout, + const bool IsMemoryManaged = true) const override; std::unique_ptr<IWorkload> CreateInput(const InputQueueDescriptor& descriptor, const WorkloadInfo& info) const override; |