diff options
author | Mike Kelly <mike.kelly@arm.com> | 2021-03-29 15:04:50 +0100 |
---|---|---|
committer | mike.kelly <mike.kelly@arm.com> | 2021-03-29 14:03:30 +0000 |
commit | 386ff1a721cdca3689b009ba31f2d3ac8bea2fae (patch) | |
tree | e2f5c26ab2601fd0be8c1223111f55cf1ff94e6e /src/backends/reference | |
parent | 23dbe3d3ff51c2b297ce5bf6360da6552f1c3bf5 (diff) | |
download | armnn-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')
3 files changed, 29 insertions, 3 deletions
diff --git a/src/backends/reference/test/RefEndToEndTests.cpp b/src/backends/reference/test/RefEndToEndTests.cpp index b6974811ef..521854b12b 100644 --- a/src/backends/reference/test/RefEndToEndTests.cpp +++ b/src/backends/reference/test/RefEndToEndTests.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 // @@ -25,6 +25,7 @@ #include <backendsCommon/test/ResizeEndToEndTestImpl.hpp> #include <backendsCommon/test/SpaceToDepthEndToEndTestImpl.hpp> #include <backendsCommon/test/SplitterEndToEndTestImpl.hpp> +#include <backendsCommon/test/StridedSliceAsyncEndToEndTest.hpp> #include <backendsCommon/test/TransposeConvolution2dEndToEndTestImpl.hpp> #include <boost/test/unit_test.hpp> @@ -1336,6 +1337,10 @@ BOOST_AUTO_TEST_CASE(RefStridedSliceInvalidSliceEndToEndTest) StridedSliceInvalidSliceEndToEndTest(defaultBackends); } +BOOST_AUTO_TEST_CASE(RefAsyncFP32StridedSlicedEndToEndTest) +{ + armnn::experimental::StridedSlicedEndToEndTest<armnn::DataType::Float32>(defaultBackends); +} #endif BOOST_AUTO_TEST_SUITE_END() 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 diff --git a/src/backends/reference/workloads/RefStridedSliceWorkload.hpp b/src/backends/reference/workloads/RefStridedSliceWorkload.hpp index 44aabc0106..3e253edcd9 100644 --- a/src/backends/reference/workloads/RefStridedSliceWorkload.hpp +++ b/src/backends/reference/workloads/RefStridedSliceWorkload.hpp @@ -1,5 +1,5 @@ // -// Copyright © 2017 Arm Ltd. All rights reserved. +// Copyright © 2017 Arm Ltd and Contributors. All rights reserved. // SPDX-License-Identifier: MIT // @@ -15,6 +15,7 @@ class RefStridedSliceWorkload : public BaseWorkload<StridedSliceQueueDescriptor> public: RefStridedSliceWorkload(const StridedSliceQueueDescriptor& descriptor, const WorkloadInfo& info); void Execute() const override; + void ExecuteAsync(WorkingMemDescriptor& descriptor) override; }; } // namespace armnn |