aboutsummaryrefslogtreecommitdiff
path: root/src/armnn/test/RuntimeTests.cpp
diff options
context:
space:
mode:
authorNarumol Prangnawarat <narumol.prangnawarat@arm.com>2019-11-29 17:17:43 +0000
committerNarumol Prangnawarat <narumol.prangnawarat@arm.com>2019-12-02 10:17:12 +0000
commitaa68e01f3eb0be2678ad8f4ef4e0a09ec7f43332 (patch)
tree072682bfa0f27a4397adef6d2a9fb362345fac86 /src/armnn/test/RuntimeTests.cpp
parent88d5f9f1615fa956464b8932b574d85c37cec937 (diff)
downloadarmnn-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/RuntimeTests.cpp')
-rw-r--r--src/armnn/test/RuntimeTests.cpp140
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)