diff options
author | Narumol Prangnawarat <narumol.prangnawarat@arm.com> | 2019-11-29 17:17:43 +0000 |
---|---|---|
committer | Narumol Prangnawarat <narumol.prangnawarat@arm.com> | 2019-12-02 10:17:12 +0000 |
commit | aa68e01f3eb0be2678ad8f4ef4e0a09ec7f43332 (patch) | |
tree | 072682bfa0f27a4397adef6d2a9fb362345fac86 /src/armnn/LoadedNetwork.cpp | |
parent | 88d5f9f1615fa956464b8932b574d85c37cec937 (diff) | |
download | armnn-aa68e01f3eb0be2678ad8f4ef4e0a09ec7f43332.tar.gz |
IVGCVSW-4015 Add input and output workload to post-optimisation structure
Signed-off-by: Narumol Prangnawarat <narumol.prangnawarat@arm.com>
Change-Id: Ic9fbe1300cf8c4b8a78bad5934f0b2d18b205090
Diffstat (limited to 'src/armnn/LoadedNetwork.cpp')
-rw-r--r-- | src/armnn/LoadedNetwork.cpp | 23 |
1 files changed, 21 insertions, 2 deletions
diff --git a/src/armnn/LoadedNetwork.cpp b/src/armnn/LoadedNetwork.cpp index 36a56b044e..778c469043 100644 --- a/src/armnn/LoadedNetwork.cpp +++ b/src/armnn/LoadedNetwork.cpp @@ -510,9 +510,18 @@ void LoadedNetwork::EnqueueInput(const BindableLayer& layer, ITensorHandle* tens else { // Create a mem copy workload for input since we did not import - auto inputWorkload = std::make_unique<CopyMemGenericWorkload>(inputQueueDescriptor, info); + std::unique_ptr<IWorkload> inputWorkload = std::make_unique<CopyMemGenericWorkload>(inputQueueDescriptor, info); BOOST_ASSERT_MSG(inputWorkload, "No input workload created"); + + std::unique_ptr<TimelineUtilityMethods> timelineUtils = TimelineUtilityMethods::GetTimelineUtils(); + if (timelineUtils) + { + // Add Input Workload to the post-optimisation network structure + AddWorkloadStructure(timelineUtils, inputWorkload, layer); + timelineUtils->Commit(); + } + m_InputQueue.push_back(move(inputWorkload)); } } @@ -593,8 +602,18 @@ void LoadedNetwork::EnqueueOutput(const BindableLayer& layer, ITensorHandle* ten outputQueueDescriptor.m_Inputs.push_back(inputTensorHandle); info.m_InputTensorInfos.push_back(inputTensorInfo); - auto outputWorkload = std::make_unique<CopyMemGenericWorkload>(outputQueueDescriptor, info); + std::unique_ptr<IWorkload> outputWorkload = + std::make_unique<CopyMemGenericWorkload>(outputQueueDescriptor, info); BOOST_ASSERT_MSG(outputWorkload, "No output workload created"); + + std::unique_ptr<TimelineUtilityMethods> timelineUtils = TimelineUtilityMethods::GetTimelineUtils(); + if (timelineUtils) + { + // Add Output Workload to the post-optimisation network structure + AddWorkloadStructure(timelineUtils, outputWorkload, layer); + timelineUtils->Commit(); + } + m_OutputQueue.push_back(move(outputWorkload)); } } |