blob: 8827d8ac58efe81b7e0b75ad7b036abd9e9a15d7 [file] [log] [blame]
Laurent Carlier749294b2020-06-01 09:03:17 +01001//
Teresa Charlinb74f36a2020-08-17 00:58:28 +01002// Copyright © 2017 Arm Ltd and Contributors. All rights reserved.
David Beckecb56cd2018-09-05 12:52:57 +01003// SPDX-License-Identifier: MIT
telsoa014fcda012018-03-09 14:13:49 +00004//
Aron Virginas-Tarc9cc8042018-11-01 16:15:57 +00005
telsoa014fcda012018-03-09 14:13:49 +00006#include "OutputHandler.hpp"
7
Matteo Martincighe5b8eb92019-11-28 15:45:42 +00008#include <armnn/backends/ITensorHandle.hpp>
9#include <backendsCommon/WorkloadDataCollector.hpp>
Colm Donelan0c479742021-12-10 12:43:54 +000010#include <armnn/backends/WorkloadFactory.hpp>
Aron Virginas-Tarc9cc8042018-11-01 16:15:57 +000011
telsoa014fcda012018-03-09 14:13:49 +000012namespace armnn
13{
14
15void OutputHandler::SetTensorInfo(const TensorInfo& tensorInfo)
16{
17 m_TensorInfo = tensorInfo;
18 m_bTensorInfoSet = true;
19}
20
David Monahan3fb7e102019-08-20 11:25:29 +010021void OutputHandler::CreateTensorHandles(const IWorkloadFactory& factory, const bool IsMemoryManaged)
telsoa014fcda012018-03-09 14:13:49 +000022{
Teresa Charlinb74f36a2020-08-17 00:58:28 +010023 ARMNN_NO_DEPRECATE_WARN_BEGIN
David Monahan3fb7e102019-08-20 11:25:29 +010024 m_TensorHandle = factory.CreateTensorHandle(m_TensorInfo, IsMemoryManaged);
Teresa Charlinb74f36a2020-08-17 00:58:28 +010025 ARMNN_NO_DEPRECATE_WARN_END
telsoa014fcda012018-03-09 14:13:49 +000026}
27
David Monahan3fb7e102019-08-20 11:25:29 +010028void OutputHandler::CreateTensorHandles(const ITensorHandleFactory& factory, const bool IsMemoryManaged)
Francis Murtagh351d13d2018-09-24 15:01:18 +010029{
David Monahan3fb7e102019-08-20 11:25:29 +010030 m_TensorHandle = factory.CreateTensorHandle(m_TensorInfo, IsMemoryManaged);
Francis Murtagh351d13d2018-09-24 15:01:18 +010031}
32
telsoa014fcda012018-03-09 14:13:49 +000033void OutputHandler::CollectWorkloadOutputs(WorkloadDataCollector& dataCollector) const
34{
35 dataCollector.Push(m_TensorHandle.get(), m_TensorInfo);
36}
37
Narumol Prangnawaratec5463d2022-02-04 17:50:20 +000038void OutputHandler::SetAllocatedData()
39{
40 // Set allocated data only once
41 if (!m_AllocatedTensorHandle)
42 {
43 m_AllocatedTensorHandle = std::move(m_TensorHandle);
44 }
45}
46
telsoa014fcda012018-03-09 14:13:49 +000047} // namespace armnn