aboutsummaryrefslogtreecommitdiff
path: root/src/backends/backendsCommon/WorkloadFactory.cpp
diff options
context:
space:
mode:
authorTianle Cheng <tianle.cheng@arm.com>2024-02-23 17:56:54 +0000
committerKevin May <kevin.may@arm.com>2024-02-28 16:12:34 +0000
commit282881877522d3e94752dfc0839de9bfa0aa5a81 (patch)
tree9cd11c96eb4c179e76f2e586d5a9d9b416dd85a0 /src/backends/backendsCommon/WorkloadFactory.cpp
parent2883a86c5a167aea3c736529bff5921ab6cbc99c (diff)
downloadarmnn-282881877522d3e94752dfc0839de9bfa0aa5a81.tar.gz
IVGCVSW-8229 & IVGCVSW-8237 ScatterNd: Front end and reference implementation
(scatter_nd, scatter_nd_add, and scatter_nd_update, scatter_nd_sub, scatter_nd_min, scatter_nd_max, scatter_nd_mul) * Front end support for ScatterNd added. * Reference implementation for ScatterNd added. * Unit tests added. Signed-off-by: Tianle Cheng <tianle.cheng@arm.com> Change-Id: I30da9056d9b03ca9b5fb8d09987341128badbcf4
Diffstat (limited to 'src/backends/backendsCommon/WorkloadFactory.cpp')
-rw-r--r--src/backends/backendsCommon/WorkloadFactory.cpp17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/backends/backendsCommon/WorkloadFactory.cpp b/src/backends/backendsCommon/WorkloadFactory.cpp
index 1f8d4dae1d..b81e9c8e73 100644
--- a/src/backends/backendsCommon/WorkloadFactory.cpp
+++ b/src/backends/backendsCommon/WorkloadFactory.cpp
@@ -1168,6 +1168,23 @@ bool IWorkloadFactory::IsLayerConfigurationSupported(const BackendId& backendId,
reason);
break;
}
+ case LayerType::ScatterNd:
+ {
+ auto cLayer = PolymorphicDowncast<const ScatterNdLayer*>(&layer);
+ const TensorInfo& input = layer.GetInputSlot(0).GetTensorInfo();
+ const TensorInfo& indices = layer.GetInputSlot(1).GetTensorInfo();
+ const TensorInfo& updates = layer.GetInputSlot(2).GetTensorInfo();
+ const TensorInfo& output = layer.GetOutputSlot(0).GetTensorInfo();
+
+ result = layerSupportObject.IsScatterNdSupported(OverrideDataType(input, dataType),
+ OverrideDataType(indices, dataType),
+ OverrideDataType(updates, dataType),
+ OverrideDataType(output, dataType),
+ cLayer->GetParameters(),
+ reason);
+
+ break;
+ }
case LayerType::Shape:
{
const TensorInfo& input = layer.GetInputSlot(0).GetTensorInfo();