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/test | |
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/test')
-rw-r--r-- | src/armnn/test/RuntimeTests.cpp | 140 |
1 files changed, 140 insertions, 0 deletions
diff --git a/src/armnn/test/RuntimeTests.cpp b/src/armnn/test/RuntimeTests.cpp index f84f73d810..2567e86862 100644 --- a/src/armnn/test/RuntimeTests.cpp +++ b/src/armnn/test/RuntimeTests.cpp @@ -637,6 +637,146 @@ BOOST_AUTO_TEST_CASE(ProfilingEnableCpuRef) offset); bufferManager.MarkRead(readableBuffer); + + // Creates structures for input & output. + std::vector<float> inputData(16); + std::vector<float> outputData(16); + + 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(), "CpuRef", 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(), "CpuRef", 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); } BOOST_AUTO_TEST_CASE(ProfilingPostOptimisationStructureCpuRef) |