diff options
author | Matthew Sloyan <matthew.sloyan@arm.com> | 2022-06-30 17:13:04 +0100 |
---|---|---|
committer | Nikhil Raj <nikhil.raj@arm.com> | 2022-07-27 15:52:10 +0100 |
commit | 2d213a759e68f753ef4696e02a8535f7edfe421d (patch) | |
tree | f4003d0a60e907937e04d96fc434c0bfac596f86 /include/armnn/backends/Workload.hpp | |
parent | 28aa6691accfd78c5eb5c4356316220d0e82ddef (diff) | |
download | armnn-2d213a759e68f753ef4696e02a8535f7edfe421d.tar.gz |
IVGCVSW-6620 Update the async api to use ExecutionData
* ExecutionData holds a void* which can be assigned to data required
for execution in a backend. WorkingMemDescriptors are used in the Ref
backend which hold TensorHandles for inputs and outputs.
* Updated ExecuteAsync functions to take ExecutionData.
* Added CreateExecutionData and UpdateExectutionData to IBackendInternal.
* Streamlined experimental IWorkingMemHandle API by removing map related
function and unused m_workingMemDescriptorMap from WorkingMemHandle.
Signed-off-by: Matthew Sloyan <matthew.sloyan@arm.com>
Change-Id: I54b0aab12872011743a141eb42dae200227769af
Diffstat (limited to 'include/armnn/backends/Workload.hpp')
-rw-r--r-- | include/armnn/backends/Workload.hpp | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/include/armnn/backends/Workload.hpp b/include/armnn/backends/Workload.hpp index 6c9fcabd55..be6fbd977f 100644 --- a/include/armnn/backends/Workload.hpp +++ b/include/armnn/backends/Workload.hpp @@ -1,5 +1,5 @@ // -// Copyright © 2021 Arm Ltd and Contributors. All rights reserved. +// Copyright © 2022 Arm Ltd and Contributors. All rights reserved. // SPDX-License-Identifier: MIT // #pragma once @@ -8,6 +8,7 @@ #include "WorkloadData.hpp" #include "WorkloadInfo.hpp" #include "WorkingMemDescriptor.hpp" +#include "ExecutionData.hpp" #include <armnn/Logging.hpp> @@ -40,14 +41,15 @@ public: m_Data.Validate(info); } - void ExecuteAsync(WorkingMemDescriptor& workingMemDescriptor) override + void ExecuteAsync(ExecutionData& executionData) override { ARMNN_LOG(info) << "Using default async workload execution, this will network affect performance"; #if !defined(ARMNN_DISABLE_THREADS) std::lock_guard<std::mutex> lockGuard(m_AsyncWorkloadMutex); #endif - m_Data.m_Inputs = workingMemDescriptor.m_Inputs; - m_Data.m_Outputs = workingMemDescriptor.m_Outputs; + WorkingMemDescriptor* workingMemDescriptor = static_cast<WorkingMemDescriptor*>(executionData.m_Data); + m_Data.m_Inputs = workingMemDescriptor->m_Inputs; + m_Data.m_Outputs = workingMemDescriptor->m_Outputs; Execute(); }; |