aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Mcloughlin <john.mcloughlin@arm.com>2023-09-25 14:10:32 +0100
committerjohn.mcloughlin <john.mcloughlin@arm.com>2023-09-26 17:21:22 +0000
commit4cf29d6b4bf1c8c6e6080099cb5eddfd079ee68c (patch)
treeba9affa8ec926e0b5cc9a9c4cdfdd1f9cf2aa3c1
parenta2135bb3737bd7c86c6ea9ed8df2272e5f3ebcb0 (diff)
downloadarmnn-4cf29d6b4bf1c8c6e6080099cb5eddfd079ee68c.tar.gz
GitHub #734 Add ExecuteNetwork support for S64 bit output
* Add Signed 64 bit support for Output and Debug Layers Signed-off-by: John Mcloughlin <john.mcloughlin@arm.com> Change-Id: I991c2d5f1067b16d0fac362e7406305fbe90d034
-rw-r--r--src/backends/reference/RefWorkloadFactory.cpp8
-rw-r--r--src/backends/reference/workloads/Debug.cpp9
-rw-r--r--src/backends/reference/workloads/RefDebugWorkload.cpp1
-rw-r--r--src/backends/reference/workloads/RefDebugWorkload.hpp1
-rw-r--r--tests/ExecuteNetwork/ArmNNExecutor.cpp6
5 files changed, 23 insertions, 2 deletions
diff --git a/src/backends/reference/RefWorkloadFactory.cpp b/src/backends/reference/RefWorkloadFactory.cpp
index c4d9583a66..ad6ec9a792 100644
--- a/src/backends/reference/RefWorkloadFactory.cpp
+++ b/src/backends/reference/RefWorkloadFactory.cpp
@@ -45,6 +45,10 @@ bool IsDataType(const WorkloadInfo& info)
}
return false;
}
+bool IsSigned64(const WorkloadInfo& info)
+{
+ return IsDataType<DataType::Signed64>(info);
+}
bool IsSigned32(const WorkloadInfo& info)
{
return IsDataType<DataType::Signed32>(info);
@@ -263,6 +267,10 @@ std::unique_ptr<IWorkload> RefWorkloadFactory::CreateWorkload(LayerType type,
{
return std::make_unique<RefDebugSigned32Workload>(*debugQueueDescriptor, info);
}
+ if (IsSigned64(info))
+ {
+ return std::make_unique<RefDebugSigned64Workload>(*debugQueueDescriptor, info);
+ }
return MakeWorkload<RefDebugFloat32Workload, RefDebugQAsymmU8Workload>(*debugQueueDescriptor, info);
}
case LayerType::DepthToSpace:
diff --git a/src/backends/reference/workloads/Debug.cpp b/src/backends/reference/workloads/Debug.cpp
index 50aecc8b66..564dd7ae5c 100644
--- a/src/backends/reference/workloads/Debug.cpp
+++ b/src/backends/reference/workloads/Debug.cpp
@@ -1,5 +1,5 @@
//
-// Copyright © 2017 Arm Ltd. All rights reserved.
+// Copyright © 2017-2023 Arm Ltd and Contributors. All rights reserved.
// SPDX-License-Identifier: MIT
//
@@ -165,4 +165,11 @@ template void Debug<int32_t>(const TensorInfo& inputInfo,
unsigned int slotIndex,
bool outputsToFile);
+template void Debug<int64_t>(const TensorInfo& inputInfo,
+ const int64_t* inputData,
+ LayerGuid guid,
+ const std::string& layerName,
+ unsigned int slotIndex,
+ bool outputsToFile);
+
} // namespace armnn
diff --git a/src/backends/reference/workloads/RefDebugWorkload.cpp b/src/backends/reference/workloads/RefDebugWorkload.cpp
index 3653bb6c13..94eed4ff4f 100644
--- a/src/backends/reference/workloads/RefDebugWorkload.cpp
+++ b/src/backends/reference/workloads/RefDebugWorkload.cpp
@@ -65,5 +65,6 @@ template class RefDebugWorkload<DataType::QAsymmS8>;
template class RefDebugWorkload<DataType::QSymmS16>;
template class RefDebugWorkload<DataType::QSymmS8>;
template class RefDebugWorkload<DataType::Signed32>;
+template class RefDebugWorkload<DataType::Signed64>;
} // namespace armnn
diff --git a/src/backends/reference/workloads/RefDebugWorkload.hpp b/src/backends/reference/workloads/RefDebugWorkload.hpp
index 0dd98d2ef3..4c99990ec4 100644
--- a/src/backends/reference/workloads/RefDebugWorkload.hpp
+++ b/src/backends/reference/workloads/RefDebugWorkload.hpp
@@ -47,5 +47,6 @@ using RefDebugQAsymmS8Workload = RefDebugWorkload<DataType::QAsymmS8>;
using RefDebugQSymmS16Workload = RefDebugWorkload<DataType::QSymmS16>;
using RefDebugQSymmS8Workload = RefDebugWorkload<DataType::QSymmS8>;
using RefDebugSigned32Workload = RefDebugWorkload<DataType::Signed32>;
+using RefDebugSigned64Workload = RefDebugWorkload<DataType::Signed64>;
} // namespace armnn
diff --git a/tests/ExecuteNetwork/ArmNNExecutor.cpp b/tests/ExecuteNetwork/ArmNNExecutor.cpp
index 8ce3689e9f..42d41ef169 100644
--- a/tests/ExecuteNetwork/ArmNNExecutor.cpp
+++ b/tests/ExecuteNetwork/ArmNNExecutor.cpp
@@ -682,6 +682,11 @@ void ArmNNExecutor::PrintOutputTensors(const armnn::OutputTensors* outputTensors
PrintTensor<int>(outputWriteInfo, "%d ");
break;
}
+ case armnn::DataType::Signed64:
+ {
+ PrintTensor<int64_t>(outputWriteInfo, "%ld ");
+ break;
+ }
case armnn::DataType::QSymmS8:
case armnn::DataType::QAsymmS8:
{
@@ -697,7 +702,6 @@ void ArmNNExecutor::PrintOutputTensors(const armnn::OutputTensors* outputTensors
case armnn::DataType::Float16:
case armnn::DataType::QSymmS16:
case armnn::DataType::BFloat16:
- case armnn::DataType::Signed64:
default:
{
LogAndThrow("Unexpected DataType");