blob: 336a687d5cd2dadb36fda35f42d81772ccf573e6 [file] [log] [blame]
Nattapat Chaimanowong1216b582018-11-23 15:33:41 +00001//
Mike Kelly386ff1a2021-03-29 15:04:50 +01002// Copyright © 2017 Arm Ltd and Contributors. All rights reserved.
Nattapat Chaimanowong1216b582018-11-23 15:33:41 +00003// SPDX-License-Identifier: MIT
4//
5
6#include "RefStridedSliceWorkload.hpp"
Matteo Martincighe851b3d2019-05-28 14:31:20 +01007#include "RefWorkloadUtils.hpp"
Nattapat Chaimanowong1216b582018-11-23 15:33:41 +00008#include "StridedSlice.hpp"
9
Nattapat Chaimanowong1216b582018-11-23 15:33:41 +000010namespace armnn
11{
12
Matteo Martincighe851b3d2019-05-28 14:31:20 +010013RefStridedSliceWorkload::RefStridedSliceWorkload(const StridedSliceQueueDescriptor& descriptor,
14 const WorkloadInfo& info)
15 : BaseWorkload(descriptor, info)
16{}
17
18void RefStridedSliceWorkload::Execute() const
Nattapat Chaimanowong1216b582018-11-23 15:33:41 +000019{
Finn Williamsb8181f72021-04-07 10:23:21 +010020 Execute(m_Data.m_Inputs, m_Data.m_Outputs);
Nattapat Chaimanowong1216b582018-11-23 15:33:41 +000021}
22
Finn Williamsb8181f72021-04-07 10:23:21 +010023void RefStridedSliceWorkload::ExecuteAsync(WorkingMemDescriptor &workingMemDescriptor)
Mike Kelly386ff1a2021-03-29 15:04:50 +010024{
Finn Williamsb8181f72021-04-07 10:23:21 +010025 Execute(workingMemDescriptor.m_Inputs, workingMemDescriptor.m_Outputs);
26}
Mike Kelly386ff1a2021-03-29 15:04:50 +010027
Finn Williamsb8181f72021-04-07 10:23:21 +010028void RefStridedSliceWorkload::Execute(std::vector<ITensorHandle*> inputs, std::vector<ITensorHandle*> outputs) const
29{
30 ARMNN_SCOPED_PROFILING_EVENT(Compute::CpuRef, "RefStridedSliceWorkload_Execute");
31
32 const TensorInfo& inputInfo = GetTensorInfo(inputs[0]);
33 const TensorInfo& outputInfo = GetTensorInfo(outputs[0]);
Mike Kelly386ff1a2021-03-29 15:04:50 +010034
35 DataType inputDataType = inputInfo.GetDataType();
36 DataType outputDataType = outputInfo.GetDataType();
37
38 ARMNN_ASSERT(inputDataType == outputDataType);
39 IgnoreUnused(outputDataType);
40
41 StridedSlice(inputInfo,
42 m_Data.m_Parameters,
Finn Williamsb8181f72021-04-07 10:23:21 +010043 inputs[0]->Map(),
44 outputs[0]->Map(),
Mike Kelly386ff1a2021-03-29 15:04:50 +010045 GetDataTypeSize(inputDataType));
46}
47
Matteo Martincighe851b3d2019-05-28 14:31:20 +010048} // namespace armnn