aboutsummaryrefslogtreecommitdiff
path: root/src/backends/backendsCommon/WorkloadFactory.cpp
diff options
context:
space:
mode:
authorSimon Obute <simon.obute@arm.com>2021-09-03 15:50:13 +0100
committerTeresa Charlin <teresa.charlinreyes@arm.com>2021-09-24 16:06:30 +0100
commit51f67776a695c217a32596af806afeeb080f5528 (patch)
tree33ccfd87ba365bcc6fc86d5a2181991a130b3061 /src/backends/backendsCommon/WorkloadFactory.cpp
parentf10b15a8946f39bdf3f60cebc59d2963069eedca (diff)
downloadarmnn-51f67776a695c217a32596af806afeeb080f5528.tar.gz
IVGCVSW-3705 Add Channel Shuffle Front end and Ref Implementation
* Add front end * Add reference workload * Add unit tests * Add Serializer and Deserializer * Update ArmNN Versioning Signed-off-by: Simon Obute <simon.obute@arm.com> Change-Id: I9ac1f953af3974382eac8e8d62d794d2344e8f47
Diffstat (limited to 'src/backends/backendsCommon/WorkloadFactory.cpp')
-rw-r--r--src/backends/backendsCommon/WorkloadFactory.cpp21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/backends/backendsCommon/WorkloadFactory.cpp b/src/backends/backendsCommon/WorkloadFactory.cpp
index 3f5972dab6..00263eca04 100644
--- a/src/backends/backendsCommon/WorkloadFactory.cpp
+++ b/src/backends/backendsCommon/WorkloadFactory.cpp
@@ -152,6 +152,21 @@ bool IWorkloadFactory::IsLayerConfigurationSupported(const BackendId& backendId,
reason);
break;
}
+ case LayerType::ChannelShuffle:
+ {
+ auto cLayer = PolymorphicDowncast<const ChannelShuffleLayer*>(&layer);
+
+ const TensorInfo& input = layer.GetInputSlot(0).GetConnection()->GetTensorInfo();
+ const TensorInfo& output = layer.GetInputSlot(0).GetConnection()->GetTensorInfo();
+
+ const ChannelShuffleDescriptor descriptor = cLayer->GetParameters();
+
+ result = layerSupportObject.IsChannelShuffleSupported(OverrideDataType(input, dataType),
+ OverrideDataType(output, dataType),
+ descriptor,
+ reason);
+ break;
+ }
case LayerType::Comparison:
{
auto cLayer = PolymorphicDowncast<const ComparisonLayer*>(&layer);
@@ -1501,6 +1516,12 @@ std::unique_ptr<IWorkload> IWorkloadFactory::CreateCast(const CastQueueDescripto
return std::unique_ptr<IWorkload>();
}
+std::unique_ptr<IWorkload> IWorkloadFactory::CreateChannelShuffle(const ChannelShuffleQueueDescriptor& /*descriptor*/,
+ const WorkloadInfo& /*info*/) const
+{
+ return std::unique_ptr<IWorkload>();
+}
+
std::unique_ptr<IWorkload> IWorkloadFactory::CreateComparison(const ComparisonQueueDescriptor& /*descriptor*/,
const WorkloadInfo& /*info*/) const
{