aboutsummaryrefslogtreecommitdiff
path: root/src/backends/reference/workloads/RefStridedSliceWorkload.cpp
diff options
context:
space:
mode:
authorMike Kelly <mike.kelly@arm.com>2021-03-29 15:04:50 +0100
committermike.kelly <mike.kelly@arm.com>2021-03-29 14:03:30 +0000
commit386ff1a721cdca3689b009ba31f2d3ac8bea2fae (patch)
treee2f5c26ab2601fd0be8c1223111f55cf1ff94e6e /src/backends/reference/workloads/RefStridedSliceWorkload.cpp
parent23dbe3d3ff51c2b297ce5bf6360da6552f1c3bf5 (diff)
downloadarmnn-386ff1a721cdca3689b009ba31f2d3ac8bea2fae.tar.gz
IVGCVSW-5790 Merge async prototype
* Added thread safe execution mechanism for armnn * Removed duplicate function bool Compare(T a, T b, float tolerance) * Added StridedSliceAsyncEndToEndTest * Fixed memory leak Signed-off-by: Mike Kelly <mike.kelly@arm.com> Change-Id: I2d367fc77ee7c01b8953138543e76af5e691211f
Diffstat (limited to 'src/backends/reference/workloads/RefStridedSliceWorkload.cpp')
-rw-r--r--src/backends/reference/workloads/RefStridedSliceWorkload.cpp22
1 files changed, 21 insertions, 1 deletions
diff --git a/src/backends/reference/workloads/RefStridedSliceWorkload.cpp b/src/backends/reference/workloads/RefStridedSliceWorkload.cpp
index 6a29439cc0..ce807ee087 100644
--- a/src/backends/reference/workloads/RefStridedSliceWorkload.cpp
+++ b/src/backends/reference/workloads/RefStridedSliceWorkload.cpp
@@ -1,5 +1,5 @@
//
-// Copyright © 2017 Arm Ltd. All rights reserved.
+// Copyright © 2017 Arm Ltd and Contributors. All rights reserved.
// SPDX-License-Identifier: MIT
//
@@ -35,4 +35,24 @@ void RefStridedSliceWorkload::Execute() const
GetDataTypeSize(inputDataType));
}
+void RefStridedSliceWorkload::ExecuteAsync(WorkingMemDescriptor& descriptor)
+{
+ ARMNN_SCOPED_PROFILING_EVENT(Compute::CpuRef, "RefStridedSliceWorkload_Execute_WorkingMemDescriptor");
+
+ const TensorInfo& inputInfo = GetTensorInfo(descriptor.m_Inputs[0]);
+ const TensorInfo& outputInfo = GetTensorInfo(descriptor.m_Outputs[0]);
+
+ DataType inputDataType = inputInfo.GetDataType();
+ DataType outputDataType = outputInfo.GetDataType();
+
+ ARMNN_ASSERT(inputDataType == outputDataType);
+ IgnoreUnused(outputDataType);
+
+ StridedSlice(inputInfo,
+ m_Data.m_Parameters,
+ descriptor.m_Inputs[0]->Map(),
+ descriptor.m_Outputs[0]->Map(),
+ GetDataTypeSize(inputDataType));
+}
+
} // namespace armnn