369 using namespace armnn;
391 IConnectableLayer* normalize = net->AddNormalizationLayer(descriptor,
"normalization");
409 BOOST_TEST(runtime.LoadNetwork(netId, std::move(optNet)) ==
Status::Success);
415 BOOST_CHECK(readableBuffer !=
nullptr);
417 unsigned int size = readableBuffer->GetSize();
419 const unsigned char* readableData = readableBuffer->GetReadableData();
420 BOOST_CHECK(readableData !=
nullptr);
422 unsigned int offset = 0;
426 BOOST_TEST_MESSAGE(
"HEADER OK");
431 BOOST_TEST_MESSAGE(
"NETWORK ENTITY OK");
441 BOOST_TEST_MESSAGE(
"NETWORK TYPE RELATIONSHIP OK");
449 BOOST_TEST_MESSAGE(
"NETWORK START OF LIFE EVENT OK");
459 BOOST_TEST_MESSAGE(
"NETWORK START OF LIFE RELATIONSHIP OK");
463 std::stringstream ss;
465 std::string processIdLabel = ss.str();
467 BOOST_TEST_MESSAGE(
"PROCESS ID LABEL OK");
477 BOOST_TEST_MESSAGE(
"NETWORK PROCESS ID RELATIONSHIP OK");
482 BOOST_TEST_MESSAGE(
"INPUT ENTITY OK");
486 BOOST_TEST_MESSAGE(
"INPUT NAME LABEL OK");
496 BOOST_TEST_MESSAGE(
"INPUT NAME RELATIONSHIP OK");
506 BOOST_TEST_MESSAGE(
"INPUT TYPE RELATIONSHIP OK");
516 BOOST_TEST_MESSAGE(
"NETWORK - INPUT CHILD RELATIONSHIP OK");
521 BOOST_TEST_MESSAGE(
"NORMALIZATION LAYER ENTITY OK");
526 BOOST_TEST_MESSAGE(
"NORMALIZATION LAYER NAME LABEL OK");
532 normalizationLayerNameGuid,
536 BOOST_TEST_MESSAGE(
"NORMALIZATION LAYER NAME RELATIONSHIP OK");
546 BOOST_TEST_MESSAGE(
"NORMALIZATION LAYER TYPE RELATIONSHIP OK");
556 BOOST_TEST_MESSAGE(
"NETWORK - NORMALIZATION LAYER CHILD RELATIONSHIP OK");
566 BOOST_TEST_MESSAGE(
"INPUT - NORMALIZATION LAYER CONNECTION OK");
572 BOOST_TEST_MESSAGE(
"NORMALIZATION WORKLOAD ENTITY OK");
577 normalizationWorkloadGuid,
579 LabelsAndEventClasses::TYPE_GUID,
582 BOOST_TEST_MESSAGE(
"NORMALIZATION WORKLOAD TYPE RELATIONSHIP OK");
587 BOOST_TEST_MESSAGE(
"CPUREF LABEL OK");
592 normalizationWorkloadGuid,
597 BOOST_TEST_MESSAGE(
"NORMALIZATION WORKLOAD BACKEND ID RELATIONSHIP OK");
603 normalizationWorkloadGuid,
607 BOOST_TEST_MESSAGE(
"NORMALIZATION LAYER - WORKLOAD CHILD RELATIONSHIP OK");
612 BOOST_TEST_MESSAGE(
"OUTPUT LAYER ENTITY OK");
617 BOOST_TEST_MESSAGE(
"OUTPUT LAYER NAME LABEL OK");
627 BOOST_TEST_MESSAGE(
"OUTPUT LAYER NAME RELATIONSHIP OK");
637 BOOST_TEST_MESSAGE(
"OUTPUT LAYER TYPE RELATIONSHIP OK");
647 BOOST_TEST_MESSAGE(
"NETWORK - OUTPUT LAYER CHILD RELATIONSHIP OK");
657 BOOST_TEST_MESSAGE(
"NORMALIZE LAYER - OUTPUT LAYER CONNECTION OK");
659 bufferManager.MarkRead(readableBuffer);
662 std::vector<float> inputData(16);
663 std::vector<float> outputData(16);
667 {0,
ConstTensor(runtime.GetInputTensorInfo(netId, 0), inputData.data())}
671 {0,
Tensor(runtime.GetOutputTensorInfo(netId, 0), outputData.data())}
675 runtime.EnqueueWorkload(netId, inputTensors, outputTensors);
678 auto inputReadableBuffer = bufferManager.GetReadableBuffer();
679 BOOST_CHECK(inputReadableBuffer !=
nullptr);
682 auto outputReadableBuffer = bufferManager.GetReadableBuffer();
683 BOOST_CHECK(outputReadableBuffer !=
nullptr);
686 auto inferenceReadableBuffer = bufferManager.GetReadableBuffer();
687 BOOST_CHECK(inferenceReadableBuffer !=
nullptr);
690 size = inputReadableBuffer->GetSize();
691 BOOST_CHECK(size == 164);
693 readableData = inputReadableBuffer->GetReadableData();
694 BOOST_CHECK(readableData !=
nullptr);
700 BOOST_TEST_MESSAGE(
"INPUT WORKLOAD HEADER OK");
705 BOOST_TEST_MESSAGE(
"INPUT WORKLOAD ENTITY OK");
712 LabelsAndEventClasses::TYPE_GUID,
715 BOOST_TEST_MESSAGE(
"INPUT WORKLOAD TYPE RELATIONSHIP OK");
720 BOOST_TEST_MESSAGE(
"CPUREF LABEL OK (INPUT WORKLOAD)");
730 BOOST_TEST_MESSAGE(
"INPUT WORKLOAD BACKEND ID RELATIONSHIP OK");
740 BOOST_TEST_MESSAGE(
"INPUT LAYER - INPUT WORKLOAD CHILD RELATIONSHIP OK");
742 bufferManager.MarkRead(inputReadableBuffer);
745 size = outputReadableBuffer->GetSize();
746 BOOST_CHECK(size == 164);
748 readableData = outputReadableBuffer->GetReadableData();
749 BOOST_CHECK(readableData !=
nullptr);
755 BOOST_TEST_MESSAGE(
"OUTPUT WORKLOAD HEADER OK");
760 BOOST_TEST_MESSAGE(
"OUTPUT WORKLOAD ENTITY OK");
767 LabelsAndEventClasses::TYPE_GUID,
770 BOOST_TEST_MESSAGE(
"OUTPUT WORKLOAD TYPE RELATIONSHIP OK");
774 BOOST_TEST_MESSAGE(
"OUTPUT WORKLOAD CPU REF LABEL OK");
784 BOOST_TEST_MESSAGE(
"OUTPUT WORKLOAD BACKEND ID RELATIONSHIP OK");
794 BOOST_TEST_MESSAGE(
"OUTPUT LAYER - OUTPUT WORKLOAD CHILD RELATIONSHIP OK");
796 bufferManager.MarkRead(outputReadableBuffer);
799 size = inferenceReadableBuffer->GetSize();
802 readableData = inferenceReadableBuffer->GetReadableData();
803 BOOST_CHECK(readableData !=
nullptr);
809 BOOST_TEST_MESSAGE(
"INFERENCE HEADER OK");
814 BOOST_TEST_MESSAGE(
"INFERENCE ENTITY OK");
821 LabelsAndEventClasses::TYPE_GUID,
824 BOOST_TEST_MESSAGE(
"INFERENCE TYPE RELATIONSHIP OK");
834 BOOST_TEST_MESSAGE(
"NETWORK - INFERENCE EXECUTION_OF RELATIONSHIP OK");
840 BOOST_TEST_MESSAGE(
"INFERENCE START OF LIFE EVENT OK");
850 BOOST_TEST_MESSAGE(
"INFERENCE START OF LIFE RELATIONSHIP OK");
857 BOOST_TEST_MESSAGE(
"INPUT WORKLOAD EXECUTION ENTITY OK");
862 inputWorkloadExecutionGuid,
864 LabelsAndEventClasses::TYPE_GUID,
867 BOOST_TEST_MESSAGE(
"INPUT WORKLOAD EXECUTION TYPE RELATIONSHIP OK");
873 inputWorkloadExecutionGuid,
874 LabelsAndEventClasses::CHILD_GUID,
877 BOOST_TEST_MESSAGE(
"INFERENCE - INPUT WORKLOAD EXECUTION CHILD RELATIONSHIP OK");
883 inputWorkloadExecutionGuid,
887 BOOST_TEST_MESSAGE(
"INPUT WORKLOAD - INPUT WORKLOAD EXECUTION RELATIONSHIP OK");
897 inputWorkloadExecutionGuid,
898 inputWorkloadExecutionSOLEventId,
902 BOOST_TEST_MESSAGE(
"INPUT WORKLOAD EXECUTION - START OF LIFE EVENT RELATIONSHIP OK");
912 inputWorkloadExecutionGuid,
913 inputWorkloadExecutionEOLEventId,
917 BOOST_TEST_MESSAGE(
"INPUT WORKLOAD EXECUTION - END OF LIFE EVENT RELATIONSHIP OK");
923 BOOST_TEST_MESSAGE(
"NORMALIZE WORKLOAD EXECUTION ENTITY OK");
928 normalizeWorkloadExecutionGuid,
930 LabelsAndEventClasses::TYPE_GUID,
933 BOOST_TEST_MESSAGE(
"NORMALIZE WORKLOAD EXECUTION TYPE RELATIONSHIP OK");
939 normalizeWorkloadExecutionGuid,
940 LabelsAndEventClasses::CHILD_GUID,
943 BOOST_TEST_MESSAGE(
"INFERENCE - NORMALIZE WORKLOAD EXECUTION CHILD RELATIONSHIP OK");
948 normalizationWorkloadGuid,
949 normalizeWorkloadExecutionGuid,
953 BOOST_TEST_MESSAGE(
"NORMALIZATION WORKLOAD - NORMALIZATION WORKLOAD EXECUTION RELATIONSHIP OK");
959 BOOST_TEST_MESSAGE(
"NORMALIZATION WORKLOAD EXECUTION START OF LIFE EVENT OK");
964 normalizeWorkloadExecutionGuid,
965 normalizationWorkloadExecutionSOLEventGuid,
969 BOOST_TEST_MESSAGE(
"NORMALIZATION WORKLOAD EXECUTION START OF LIFE RELATIONSHIP OK");
975 BOOST_TEST_MESSAGE(
"NORMALIZATION WORKLOAD EXECUTION END OF LIFE EVENT OK");
980 normalizeWorkloadExecutionGuid,
981 normalizationWorkloadExecutionEOLEventGuid,
985 BOOST_TEST_MESSAGE(
"NORMALIZATION WORKLOAD EXECUTION END OF LIFE RELATIONSHIP OK");
991 BOOST_TEST_MESSAGE(
"OUTPUT WORKLOAD EXECUTION ENTITY OK");
996 outputWorkloadExecutionGuid,
998 LabelsAndEventClasses::TYPE_GUID,
1001 BOOST_TEST_MESSAGE(
"OUTPUT WORKLOAD EXECUTION TYPE RELATIONSHIP OK");
1007 outputWorkloadExecutionGuid,
1008 LabelsAndEventClasses::CHILD_GUID,
1011 BOOST_TEST_MESSAGE(
"INFERENCE - OUTPUT WORKLOAD EXECUTION CHILD RELATIONSHIP OK");
1017 outputWorkloadExecutionGuid,
1021 BOOST_TEST_MESSAGE(
"OUTPUT WORKLOAD - OUTPUT WORKLOAD EXECUTION EXECUTION_OF RELATIONSHIP OK");
1027 BOOST_TEST_MESSAGE(
"OUTPUT WORKLOAD EXECUTION START OF LIFE EVENT OK");
1032 outputWorkloadExecutionGuid,
1033 outputWorkloadExecutionSOLEventGuid,
1037 BOOST_TEST_MESSAGE(
"OUTPUT WORKLOAD EXECUTION - START OF LIFE EVENT RELATIONSHIP OK");
1043 BOOST_TEST_MESSAGE(
"OUTPUT WORKLOAD EXECUTION END OF LIFE EVENT OK");
1048 outputWorkloadExecutionGuid,
1049 outputWorkloadExecutionEOLEventGuid,
1053 BOOST_TEST_MESSAGE(
"OUTPUT WORKLOAD EXECUTION - END OF LIFE EVENT RELATIONSHIP OK");
1059 BOOST_TEST_MESSAGE(
"INFERENCE END OF LIFE EVENT OK");
1065 inferenceEOLEventGuid,
1069 BOOST_TEST_MESSAGE(
"INFERENCE - END OF LIFE EVENT RELATIONSHIP OK");
1071 bufferManager.MarkRead(inferenceReadableBuffer);
static ARMNN_DLLEXPORT ProfilingStaticGuid INFERENCE_GUID
Interface for a layer that is connectable to other layers via InputSlots and OutputSlots.
ProfilingGuid VerifyTimelineEntityBinaryPacketData(Optional< ProfilingGuid > guid, const unsigned char *readableData, unsigned int &offset)
CPU Execution: Reference C++ kernels.
Head retains(parents) Tail.
std::vector< std::pair< LayerBindingId, class ConstTensor > > InputTensors
Copyright (c) 2020 ARM Limited.
static ARMNN_DLLEXPORT ProfilingStaticGuid CONNECTION_GUID
static ARMNN_DLLEXPORT ProfilingStaticGuid WORKLOAD_GUID
static ARMNN_DLLEXPORT ProfilingStaticGuid WORKLOAD_EXECUTION_GUID
static ARMNN_DLLEXPORT ProfilingStaticGuid ARMNN_PROFILING_EOL_EVENT_CLASS
virtual void SetTensorInfo(const TensorInfo &tensorInfo)=0
static ARMNN_DLLEXPORT ProfilingStaticGuid NAME_GUID
static ARMNN_DLLEXPORT ProfilingStaticGuid ARMNN_PROFILING_SOL_EVENT_CLASS
A tensor defined by a TensorInfo (shape and data type) and a mutable backing store.
static ARMNN_DLLEXPORT ProfilingStaticGuid LAYER_GUID
IOptimizedNetworkPtr Optimize(const INetwork &network, const std::vector< BackendId > &backendPreferences, const IDeviceSpec &deviceSpec, const OptimizerOptions &options=OptimizerOptions(), Optional< std::vector< std::string > &> messages=EmptyOptional())
Create an optimized version of the network.
profiling::ProfilingService & GetProfilingService(armnn::Runtime *runtime)
void VerifyTimelineRelationshipBinaryPacketData(ProfilingRelationshipType relationshipType, Optional< ProfilingGuid > relationshipGuid, Optional< ProfilingGuid > headGuid, Optional< ProfilingGuid > tailGuid, Optional< ProfilingGuid > attributeGuid, const unsigned char *readableData, unsigned int &offset)
virtual LayerGuid GetGuid() const =0
Returns the unique id of the layer.
static ARMNN_DLLEXPORT ProfilingStaticGuid EXECUTION_OF_GUID
A tensor defined by a TensorInfo (shape and data type) and an immutable backing store.
std::vector< std::pair< LayerBindingId, class Tensor > > OutputTensors
std::unique_ptr< IOptimizedNetwork, void(*)(IOptimizedNetwork *network)> IOptimizedNetworkPtr
void ResetExternalProfilingOptions(const ExternalProfilingOptions &options, bool resetProfilingService=false)
IPacketBufferPtr GetReadableBuffer() override
constexpr unsigned int ThreadIdSize
void VerifyTimelineHeaderBinary(const unsigned char *readableData, unsigned int &offset, uint32_t packetDataLength)
static ARMNN_DLLEXPORT ProfilingStaticGuid NETWORK_GUID
EmptyOptional is used to initialize the Optional class in case we want to have default value for an O...
static ARMNN_DLLEXPORT ProfilingStaticGuid TYPE_GUID
virtual const IInputSlot & GetInputSlot(unsigned int index) const =0
Get a const input slot handle by slot index.
virtual const IOutputSlot & GetOutputSlot(unsigned int index) const =0
Get the const output slot handle by slot index.
std::unique_ptr< INetwork, void(*)(INetwork *network)> INetworkPtr
ProfilingGuid VerifyTimelineEventBinaryPacket(Optional< uint64_t > timestamp, Optional< int > threadId, Optional< ProfilingGuid > eventGuid, const unsigned char *readableData, unsigned int &offset)
virtual int Connect(IInputSlot &destination)=0
ProfilingGuid VerifyTimelineLabelBinaryPacketData(Optional< ProfilingGuid > guid, const std::string &label, const unsigned char *readableData, unsigned int &offset)
static ARMNN_DLLEXPORT ProfilingStaticGuid PROCESS_ID_GUID
A NormalizationDescriptor for the NormalizationLayer.
ExternalProfilingOptions m_ProfilingOptions
static INetworkPtr Create(NetworkOptions networkOptions={})
static ARMNN_DLLEXPORT ProfilingStaticGuid BACKENDID_GUID
static ARMNN_DLLEXPORT ProfilingStaticGuid CHILD_GUID