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/profiling/test/ProfilingTestUtils.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/profiling/test/ProfilingTestUtils.cpp')
-rw-r--r-- | src/profiling/test/ProfilingTestUtils.cpp | 140 |
1 files changed, 140 insertions, 0 deletions
diff --git a/src/profiling/test/ProfilingTestUtils.cpp b/src/profiling/test/ProfilingTestUtils.cpp index 7f18ef33d6..862dcf0bf3 100644 --- a/src/profiling/test/ProfilingTestUtils.cpp +++ b/src/profiling/test/ProfilingTestUtils.cpp @@ -815,4 +815,144 @@ void VerifyPostOptimisationStructureTestImpl(armnn::BackendId backendId) offset); bufferManager.MarkRead(readableBuffer); + + // Creates structures for input & output. + std::vector<float> inputData(inputInfo.GetNumElements()); + std::vector<float> outputData(outputInfo.GetNumElements()); + + InputTensors inputTensors + { + {0, ConstTensor(runtime->GetInputTensorInfo(netId, 0), inputData.data())} + }; + OutputTensors outputTensors + { + {0, Tensor(runtime->GetOutputTensorInfo(netId, 0), outputData.data())} + }; + + // Does the inference. + runtime->EnqueueWorkload(netId, inputTensors, outputTensors); + + // Get readable buffer for output workload + auto outputReadableBuffer = bufferManager.GetReadableBuffer(); + BOOST_CHECK(outputReadableBuffer != nullptr); + + // Get readable buffer for input workload + auto inputReadableBuffer = bufferManager.GetReadableBuffer(); + BOOST_CHECK(inputReadableBuffer != nullptr); + + // Validate input workload data + size = inputReadableBuffer->GetSize(); + BOOST_CHECK(size == 252); + + readableData = inputReadableBuffer->GetReadableData(); + BOOST_CHECK(readableData != nullptr); + + offset = 0; + + // Input workload + // Input workload entity + VerifyTimelineEntityBinaryPacket(EmptyOptional(), readableData, offset); + + // Entity - Type relationship + VerifyTimelineRelationshipBinaryPacket(ProfilingRelationshipType::LabelLink, + EmptyOptional(), + EmptyOptional(), + EmptyOptional(), + readableData, + offset); + + // Type label relationship + VerifyTimelineRelationshipBinaryPacket(ProfilingRelationshipType::LabelLink, + EmptyOptional(), + EmptyOptional(), + LabelsAndEventClasses::TYPE_GUID, + readableData, + offset); + + // BackendId entity + VerifyTimelineLabelBinaryPacket(EmptyOptional(), backendId.Get(), readableData, offset); + + // Entity - BackendId relationship + VerifyTimelineRelationshipBinaryPacket(ProfilingRelationshipType::LabelLink, + EmptyOptional(), + EmptyOptional(), + EmptyOptional(), + readableData, + offset); + + // BackendId label relationship + VerifyTimelineRelationshipBinaryPacket(ProfilingRelationshipType::LabelLink, + EmptyOptional(), + EmptyOptional(), + LabelsAndEventClasses::BACKENDID_GUID, + readableData, + offset); + + // Input layer - Input workload relationship + VerifyTimelineRelationshipBinaryPacket(ProfilingRelationshipType::RetentionLink, + EmptyOptional(), + input->GetGuid(), + EmptyOptional(), + readableData, + offset); + + bufferManager.MarkRead(inputReadableBuffer); + + // Validate output workload data + size = outputReadableBuffer->GetSize(); + BOOST_CHECK(size == 252); + + readableData = outputReadableBuffer->GetReadableData(); + BOOST_CHECK(readableData != nullptr); + + offset = 0; + + // Output workload + // Output workload entity + VerifyTimelineEntityBinaryPacket(EmptyOptional(), readableData, offset); + + // Entity - Type relationship + VerifyTimelineRelationshipBinaryPacket(ProfilingRelationshipType::LabelLink, + EmptyOptional(), + EmptyOptional(), + EmptyOptional(), + readableData, + offset); + + // Type label relationship + VerifyTimelineRelationshipBinaryPacket(ProfilingRelationshipType::LabelLink, + EmptyOptional(), + EmptyOptional(), + LabelsAndEventClasses::TYPE_GUID, + readableData, + offset); + + // BackendId entity + VerifyTimelineLabelBinaryPacket(EmptyOptional(), backendId.Get(), readableData, offset); + + // Entity - BackendId relationship + VerifyTimelineRelationshipBinaryPacket(ProfilingRelationshipType::LabelLink, + EmptyOptional(), + EmptyOptional(), + EmptyOptional(), + readableData, + offset); + + // BackendId label relationship + VerifyTimelineRelationshipBinaryPacket(ProfilingRelationshipType::LabelLink, + EmptyOptional(), + EmptyOptional(), + LabelsAndEventClasses::BACKENDID_GUID, + readableData, + offset); + + // Output layer - Output workload relationship + VerifyTimelineRelationshipBinaryPacket(ProfilingRelationshipType::RetentionLink, + EmptyOptional(), + output->GetGuid(), + EmptyOptional(), + readableData, + offset); + + bufferManager.MarkRead(outputReadableBuffer); } |