aboutsummaryrefslogtreecommitdiff
path: root/include/armnnUtils
diff options
context:
space:
mode:
authorMike Kelly <mike.kelly@arm.com>2023-01-23 19:32:06 +0000
committerTeresaARM <teresa.charlinreyes@arm.com>2023-01-24 17:01:30 +0000
commit0e3fe10bfe1b4f006f6e0c5c2fae8fb5515c7544 (patch)
tree222ff6eb1c034efa05bc5dcf4b255f80993987bf /include/armnnUtils
parentd134c13ec9a0585bb7656654e0e65c57958d8833 (diff)
downloadarmnn-0e3fe10bfe1b4f006f6e0c5c2fae8fb5515c7544.tar.gz
IVGCVSW-7455 Workaround to allow CLBatchMatMul to parse some 4D models
* Added ability to reduce dimension sizes when calling BuildArmComputeTensorInfo or BuildArmComputeTensorShapes, this will attempt to remove leading 1s in order to squeeze the number of dimensions but retain the size. * Changed ClBatchMatMulWorkload to attempt to squeeze the number of dimensions to 3 as the CL Gemm Kernel can only support up to 3 dimensions. Signed-off-by: Mike Kelly <mike.kelly@arm.com> Change-Id: I6b3d0886c5b97fdb686838fc3dc292833ddc4643
Diffstat (limited to 'include/armnnUtils')
-rw-r--r--include/armnnUtils/TensorUtils.hpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/include/armnnUtils/TensorUtils.hpp b/include/armnnUtils/TensorUtils.hpp
index 2d6ec2fea4..a2aa9b0a98 100644
--- a/include/armnnUtils/TensorUtils.hpp
+++ b/include/armnnUtils/TensorUtils.hpp
@@ -1,5 +1,5 @@
//
-// Copyright © 2019,2022 Arm Ltd and Contributors. All rights reserved.
+// Copyright © 2018-2023 Arm Ltd and Contributors. All rights reserved.
// SPDX-License-Identifier: MIT
//
@@ -8,6 +8,7 @@
#include <armnn/TypesUtils.hpp>
#include <armnn/Tensor.hpp>
#include <armnn/Types.hpp>
+#include <armnnUtils/TensorUtils.hpp>
#include <utility>
#include <vector>
@@ -41,6 +42,10 @@ armnn::TensorInfo GetTensorInfo(unsigned int numberOfBatches,
std::pair<float, float> FindMinMax(armnn::ITensorHandle* tensorHandle);
+armnn::TensorShape ReduceDims(const armnn::TensorShape& tensorInfo, unsigned int dimensions);
+
+armnn::TensorInfo ReduceDims(const armnn::TensorInfo& tensorInfo, unsigned int dimensions);
+
armnn::TensorShape ExpandDims(const armnn::TensorShape& tensorShape, int axis);
std::vector<unsigned int> SqueezeDims(const armnn::TensorShape& tensorShape);