diff options
author | Francis Murtagh <francis.murtagh@arm.com> | 2023-08-08 10:38:25 +0100 |
---|---|---|
committer | Nikhil Raj Arm <nikhil.raj@arm.com> | 2023-08-08 15:47:11 +0000 |
commit | a5048344b5dc95cf305d7ffdc7390ef6df109f4c (patch) | |
tree | da218b344fa7fba047dbae5f41359fe417833765 /src/dynamic/sample/SampleDynamicWorkloadFactory.cpp | |
parent | 9a189071c3439e6e8de7845b96a509ca58d9363f (diff) | |
download | armnn-a5048344b5dc95cf305d7ffdc7390ef6df109f4c.tar.gz |
IVGCVSW-7635 Remove deprecated code due to be removed in 23.08 (ILayerSupport)
* Fix failure in SampleDynamicLayerSupport and SampleDynamicWorkloadFactory.
* Provide implementation of CreateWorkload() accepting LayerType
* Made WorkloadFactory::CreateWorkload() pure virtual again to force
backend API users to implement.
Signed-off-by: Francis Murtagh <francis.murtagh@arm.com>
Change-Id: Iecd180214a92c9fd7174fd36ae8aa2bdbc9d3deb
Diffstat (limited to 'src/dynamic/sample/SampleDynamicWorkloadFactory.cpp')
-rw-r--r-- | src/dynamic/sample/SampleDynamicWorkloadFactory.cpp | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/src/dynamic/sample/SampleDynamicWorkloadFactory.cpp b/src/dynamic/sample/SampleDynamicWorkloadFactory.cpp index 8796716c98..d4be0fcb3e 100644 --- a/src/dynamic/sample/SampleDynamicWorkloadFactory.cpp +++ b/src/dynamic/sample/SampleDynamicWorkloadFactory.cpp @@ -5,6 +5,7 @@ #include <armnn/backends/MemCopyWorkload.hpp> #include <armnn/backends/TensorHandle.hpp> +#include <armnn/utility/PolymorphicDowncast.hpp> #include "SampleDynamicAdditionWorkload.hpp" #include "SampleDynamicBackend.hpp" @@ -77,4 +78,33 @@ std::unique_ptr<armnn::IWorkload> SampleDynamicWorkloadFactory::CreateOutput( return std::make_unique<armnn::CopyMemGenericWorkload>(descriptor, info); } +std::unique_ptr<armnn::IWorkload> SampleDynamicWorkloadFactory::CreateWorkload( + armnn::LayerType type, + const armnn::QueueDescriptor& descriptor, + const armnn::WorkloadInfo& info) const +{ + using namespace armnn; + using namespace sdb; + switch(type) + { + case LayerType::Addition: + { + auto additionQueueDescriptor = PolymorphicDowncast<const AdditionQueueDescriptor*>(&descriptor); + return std::make_unique<SampleDynamicAdditionWorkload>(*additionQueueDescriptor, info); + } + case LayerType::Input: + { + auto inputQueueDescriptor = PolymorphicDowncast<const InputQueueDescriptor*>(&descriptor); + return std::make_unique<CopyMemGenericWorkload>(*inputQueueDescriptor, info); + } + case LayerType::Output: + { + auto outputQueueDescriptor = PolymorphicDowncast<const OutputQueueDescriptor*>(&descriptor); + return std::make_unique<CopyMemGenericWorkload>(*outputQueueDescriptor, info); + } + default: + return nullptr; + } +} + } // namespace sdb |