diff options
author | Derek Lamberti <derek.lamberti@arm.com> | 2019-08-01 15:56:25 +0100 |
---|---|---|
committer | Áron Virginás-Tar <aron.virginas-tar@arm.com> | 2019-08-05 13:51:42 +0000 |
commit | f674aa0fd2809126debdaaeb8067067790d86907 (patch) | |
tree | d86d0261c7a25149217918986043c76d0823ee44 /src/backends/cl/ClWorkloadFactory.cpp | |
parent | 737d9ff58b348b11234b6c2363390607d576177d (diff) | |
download | armnn-f674aa0fd2809126debdaaeb8067067790d86907.tar.gz |
IVGCVSW-3277 Mem export/import suppor for Tensors
* Rename MemoryStrategy to EdgeStrategy
* Add MemImportLayer
* Import memory rather than copy when possible
Change-Id: I1d3a9414f2cbe517dc2aae9bbd4fdd92712b38ef
Signed-off-by: Derek Lamberti <derek.lamberti@arm.com>
Diffstat (limited to 'src/backends/cl/ClWorkloadFactory.cpp')
-rw-r--r-- | src/backends/cl/ClWorkloadFactory.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/backends/cl/ClWorkloadFactory.cpp b/src/backends/cl/ClWorkloadFactory.cpp index d72fa92a30..6e91dd07a5 100644 --- a/src/backends/cl/ClWorkloadFactory.cpp +++ b/src/backends/cl/ClWorkloadFactory.cpp @@ -13,6 +13,7 @@ #include <backendsCommon/CpuTensorHandle.hpp> #include <backendsCommon/MakeWorkloadHelper.hpp> #include <backendsCommon/MemCopyWorkload.hpp> +#include <backendsCommon/MemImportWorkload.hpp> #include <cl/ClTensorHandle.hpp> #include <cl/workloads/ClWorkloads.hpp> @@ -257,6 +258,17 @@ std::unique_ptr<armnn::IWorkload> ClWorkloadFactory::CreateMemCopy(const MemCopy return MakeWorkload<CopyMemGenericWorkload, CopyMemGenericWorkload>(descriptor, info); } +std::unique_ptr<armnn::IWorkload> ClWorkloadFactory::CreateMemImport(const MemImportQueueDescriptor& descriptor, + const WorkloadInfo& info) const +{ + if (descriptor.m_Inputs.empty() || !descriptor.m_Inputs[0]) + { + throw InvalidArgumentException("ClWorkloadFactory: Invalid null input for MemImport workload"); + } + + return std::make_unique<ImportMemGenericWorkload>(descriptor, info); +} + std::unique_ptr<armnn::IWorkload> ClWorkloadFactory::CreateResize(const ResizeQueueDescriptor& descriptor, const WorkloadInfo& info) const { |