diff options
Diffstat (limited to 'src/armnn/test/RuntimeTests.cpp')
-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) |