19 #include <boost/test/unit_test.hpp> 23 uint32_t sizeUint32 =
sizeof(uint32_t);
24 uint32_t payloadSize = 0;
31 payloadSize += 13 * 2 * sizeUint32;
33 payloadSize += sizeUint32;
35 uint32_t headerSize = 2 * sizeUint32;
36 uint32_t bodySize = 10 * sizeUint32;
38 return headerSize + bodySize + payloadSize;
43 std::vector<BackendId> suitableBackends;
56 return suitableBackends;
69 return numberOfBytes + uint32_t_size - remainder;
74 uint32_t packetDataLength)
82 uint32_t timelineBinaryPacketHeaderWord0 =
ReadUint32(readableData, offset);
83 uint32_t timelineBinaryPacketFamily = (timelineBinaryPacketHeaderWord0 >> 26) & 0x0000003F;
84 uint32_t timelineBinaryPacketClass = (timelineBinaryPacketHeaderWord0 >> 19) & 0x0000007F;
85 uint32_t timelineBinaryPacketType = (timelineBinaryPacketHeaderWord0 >> 16) & 0x00000007;
86 uint32_t timelineBinaryPacketStreamId = (timelineBinaryPacketHeaderWord0 >> 0) & 0x00000007;
87 BOOST_CHECK(timelineBinaryPacketFamily == 1);
88 BOOST_CHECK(timelineBinaryPacketClass == 0);
89 BOOST_CHECK(timelineBinaryPacketType == 1);
90 BOOST_CHECK(timelineBinaryPacketStreamId == 0);
92 uint32_t timelineBinaryPacketHeaderWord1 =
ReadUint32(readableData, offset);
93 uint32_t timelineBinaryPacketSequenceNumber = (timelineBinaryPacketHeaderWord1 >> 24) & 0x00000001;
94 uint32_t timelineBinaryPacketDataLength = (timelineBinaryPacketHeaderWord1 >> 0) & 0x00FFFFFF;
95 BOOST_CHECK(timelineBinaryPacketSequenceNumber == 0);
96 BOOST_CHECK(timelineBinaryPacketDataLength == packetDataLength);
101 const std::string& label,
102 const unsigned char* readableData,
103 unsigned int& offset)
109 unsigned int uint64_t_size =
sizeof(uint64_t);
113 uint32_t eventClassDeclId =
ReadUint32(readableData, offset);
114 BOOST_CHECK(eventClassDeclId == 0);
118 uint64_t readProfilingGuid =
ReadUint64(readableData, offset);
121 BOOST_CHECK(readProfilingGuid == guid.
value());
126 BOOST_CHECK(readProfilingGuid == profilingService.
GetStaticId(label));
130 offset += uint64_t_size;
131 uint32_t swTraceLabelLength =
ReadUint32(readableData, offset);
132 BOOST_CHECK(swTraceLabelLength == label_size + 1);
134 BOOST_CHECK(std::memcmp(readableData + offset,
136 swTraceLabelLength - 1) == 0);
147 const unsigned char* readableData,
148 unsigned int& offset)
154 unsigned int uint64_t_size =
sizeof(uint64_t);
157 uint32_t eventClassDeclId =
ReadUint32(readableData, offset);
158 BOOST_CHECK(eventClassDeclId == 2);
162 uint64_t readProfilingGuid =
ReadUint64(readableData, offset);
163 BOOST_CHECK(readProfilingGuid == guid);
165 offset += uint64_t_size;
166 uint64_t readProfiilngNameGuid =
ReadUint64(readableData, offset);
167 BOOST_CHECK(readProfiilngNameGuid == nameGuid);
170 offset += uint64_t_size;
178 const unsigned char* readableData,
179 unsigned int& offset)
183 uint32_t relationshipTypeUint = 0;
184 switch (relationshipType)
186 case ProfilingRelationshipType::RetentionLink:
187 relationshipTypeUint = 0;
189 case ProfilingRelationshipType::ExecutionLink:
190 relationshipTypeUint = 1;
192 case ProfilingRelationshipType::DataLink:
193 relationshipTypeUint = 2;
195 case ProfilingRelationshipType::LabelLink:
196 relationshipTypeUint = 3;
199 BOOST_ERROR(
"Unknown relationship type");
204 unsigned int uint64_t_size =
sizeof(uint64_t);
207 uint32_t eventClassDeclId =
ReadUint32(readableData, offset);
208 BOOST_CHECK(eventClassDeclId == 3);
212 uint32_t readRelationshipTypeUint =
ReadUint32(readableData, offset);
213 BOOST_CHECK(readRelationshipTypeUint == relationshipTypeUint);
217 uint64_t readRelationshipGuid =
ReadUint64(readableData, offset);
220 BOOST_CHECK(readRelationshipGuid == relationshipGuid.
value());
228 offset += uint64_t_size;
229 uint64_t readHeadRelationshipGuid =
ReadUint64(readableData, offset);
232 BOOST_CHECK(readHeadRelationshipGuid == headGuid.
value());
240 offset += uint64_t_size;
241 uint64_t readTailRelationshipGuid =
ReadUint64(readableData, offset);
244 BOOST_CHECK(readTailRelationshipGuid == tailGuid.
value());
252 offset += uint64_t_size;
253 uint64_t readAttributeRelationshipGuid =
ReadUint64(readableData, offset);
256 BOOST_CHECK(readAttributeRelationshipGuid == attributeGuid.
value());
260 BOOST_CHECK(readAttributeRelationshipGuid ==
ProfilingGuid(0));
264 offset += uint64_t_size;
268 const unsigned char* readableData,
269 unsigned int& offset)
275 unsigned int uint64_t_size =
sizeof(uint64_t);
279 uint32_t entityDeclId =
ReadUint32(readableData, offset);
280 BOOST_CHECK(entityDeclId == 1);
284 uint64_t readProfilingGuid =
ReadUint64(readableData, offset);
288 BOOST_CHECK(readProfilingGuid == guid.
value());
295 offset += uint64_t_size;
304 const unsigned char* readableData,
305 unsigned int& offset)
311 unsigned int uint64_t_size =
sizeof(uint64_t);
315 uint32_t entityDeclId =
ReadUint32(readableData, offset);
316 BOOST_CHECK(entityDeclId == 4);
320 uint64_t readTimestamp =
ReadUint64(readableData, offset);
323 BOOST_CHECK(readTimestamp == timestamp.
value());
327 BOOST_CHECK(readTimestamp != 0);
331 offset += uint64_t_size;
336 BOOST_CHECK(readThreadId == threadId.
value());
345 uint64_t readEventGuid =
ReadUint64(readableData, offset);
348 BOOST_CHECK(readEventGuid == eventGuid.
value());
355 offset += uint64_t_size;
363 using namespace armnn;
385 std::vector<float> weightsData{
398 std::vector<float> biasesData{ 1.0f, 0.0f, 0.0f };
414 IConnectableLayer* conv2d = net->AddConvolution2dLayer(conv2dDesc, weights, optionalBiases);
423 input->GetOutputSlot(0).Connect(conv2d->
GetInputSlot(0));
427 input->GetOutputSlot(0).SetTensorInfo(inputInfo);
432 std::vector<armnn::BackendId> backends = { backendId };
445 BOOST_CHECK(readableBuffer !=
nullptr);
446 unsigned int size = readableBuffer->GetSize();
448 const unsigned char* readableData = readableBuffer->GetReadableData();
449 BOOST_CHECK(readableData !=
nullptr);
451 unsigned int offset = 0;
455 BOOST_TEST_MESSAGE(
"HEADER OK");
460 BOOST_TEST_MESSAGE(
"NETWORK ENTITY OK");
470 BOOST_TEST_MESSAGE(
"NETWORK TYPE RELATIONSHIP OK");
478 BOOST_TEST_MESSAGE(
"NETWORK START OF LIFE EVENT OK");
488 BOOST_TEST_MESSAGE(
"NETWORK START OF LIFE RELATIONSHIP OK");
492 std::stringstream ss;
494 std::string processIdLabel = ss.str();
496 BOOST_TEST_MESSAGE(
"PROCESS ID LABEL OK");
506 BOOST_TEST_MESSAGE(
"NETWORK PROCESS ID RELATIONSHIP OK");
511 BOOST_TEST_MESSAGE(
"INPUT ENTITY OK");
515 BOOST_TEST_MESSAGE(
"INPUT NAME LABEL OK");
525 BOOST_TEST_MESSAGE(
"INPUT NAME RELATIONSHIP OK");
535 BOOST_TEST_MESSAGE(
"INPUT TYPE RELATIONSHIP OK");
545 BOOST_TEST_MESSAGE(
"NETWORK - INPUT CHILD RELATIONSHIP OK");
554 BOOST_TEST_MESSAGE(
"CONV2D NAME LABEL OK");
564 BOOST_TEST_MESSAGE(
"CONV2D NAME RELATIONSHIP OK");
574 BOOST_TEST_MESSAGE(
"CONV2D TYPE RELATIONSHIP OK");
584 BOOST_TEST_MESSAGE(
"NETWORK - CONV2D CHILD RELATIONSHIP OK");
594 BOOST_TEST_MESSAGE(
"INPUT - CONV2D LAYER CONNECTION OK");
599 BOOST_TEST_MESSAGE(
"CONV2D WORKLOAD ENTITY OK");
606 LabelsAndEventClasses::TYPE_GUID,
609 BOOST_TEST_MESSAGE(
"CONV2D WORKLOAD TYPE RELATIONSHIP OK");
623 BOOST_TEST_MESSAGE(
"CONV2D WORKLOAD BACKEND ID RELATIONSHIP OK");
634 BOOST_TEST_MESSAGE(
"CONV2D LAYER - WORKLOAD CHILD RELATIONSHIP OK");
639 BOOST_TEST_MESSAGE(
"ABS ENTITY OK");
644 BOOST_TEST_MESSAGE(
"ABS NAME LABEL OK");
654 BOOST_TEST_MESSAGE(
"ABS LAYER - NAME RELATIONSHIP OK");
664 BOOST_TEST_MESSAGE(
"ABS LAYER TYPE RELATIONSHIP OK");
674 BOOST_TEST_MESSAGE(
"NETWORK - ABS LAYER CHILD RELATIONSHIP OK");
684 BOOST_TEST_MESSAGE(
"CONV2D LAYER - ABS LAYER CONNECTION OK");
689 BOOST_TEST_MESSAGE(
"ABS WORKLOAD ENTITY OK");
696 LabelsAndEventClasses::TYPE_GUID,
699 BOOST_TEST_MESSAGE(
"ABS WORKLAD TYPE RELATIONSHIP OK");
703 BOOST_TEST_MESSAGE(
"BACKEND ID LABEL OK");
713 BOOST_TEST_MESSAGE(
"ABS WORKLOAD BACKEND ID RELATIONSHIP OK");
723 BOOST_TEST_MESSAGE(
"ABS LAYER - WORKLOAD CHILD RELATIONSHIP OK");
728 BOOST_TEST_MESSAGE(
"OUTPUT LAYER ENTITY OK");
742 BOOST_TEST_MESSAGE(
"OUTPUT LAYER NAME RELATIONSHIP OK");
752 BOOST_TEST_MESSAGE(
"OUTPUT LAYER TYPE RELATIONSHIP OK");
762 BOOST_TEST_MESSAGE(
"NETWORK - OUTPUT LAYER CHILD RELATIONSHIP OK");
772 BOOST_TEST_MESSAGE(
"ABS LAYER - OUTPUT LAYER CONNECTION OK");
774 bufferManager.MarkRead(readableBuffer);
777 std::vector<float> inputData(inputInfo.GetNumElements());
778 std::vector<float> outputData(outputInfo.GetNumElements());
793 auto inputReadableBuffer = bufferManager.GetReadableBuffer();
794 BOOST_CHECK(inputReadableBuffer !=
nullptr);
797 auto outputReadableBuffer = bufferManager.GetReadableBuffer();
798 BOOST_CHECK(outputReadableBuffer !=
nullptr);
801 auto inferenceReadableBuffer = bufferManager.GetReadableBuffer();
802 BOOST_CHECK(inferenceReadableBuffer !=
nullptr);
805 size = inputReadableBuffer->GetSize();
806 BOOST_CHECK(size == 164);
808 readableData = inputReadableBuffer->GetReadableData();
809 BOOST_CHECK(readableData !=
nullptr);
815 BOOST_TEST_MESSAGE(
"INPUT WORKLOAD HEADER OK");
820 BOOST_TEST_MESSAGE(
"INPUT WORKLOAD TYPE RELATIONSHIP OK");
827 LabelsAndEventClasses::TYPE_GUID,
830 BOOST_TEST_MESSAGE(
"INPUT WORKLOAD TYPE RELATIONSHIP OK");
843 BOOST_TEST_MESSAGE(
"INPUT WORKLOAD BACKEND ID RELATIONSHIP OK");
853 BOOST_TEST_MESSAGE(
"INPUT LAYER - INPUT WORKLOAD CHILD RELATIONSHIP OK");
855 bufferManager.MarkRead(inputReadableBuffer);
858 size = outputReadableBuffer->GetSize();
859 BOOST_CHECK(size == 164);
861 readableData = outputReadableBuffer->GetReadableData();
862 BOOST_CHECK(readableData !=
nullptr);
868 BOOST_TEST_MESSAGE(
"OUTPUT WORKLOAD HEADER OK");
873 BOOST_TEST_MESSAGE(
"OUTPUT WORKLOAD ENTITY OK");
880 LabelsAndEventClasses::TYPE_GUID,
883 BOOST_TEST_MESSAGE(
"OUTPUT WORKLOAD TYPE RELATIONSHIP OK");
887 BOOST_TEST_MESSAGE(
"OUTPUT WORKLOAD LABEL OK");
897 BOOST_TEST_MESSAGE(
"OUTPUT WORKLOAD BACKEND ID RELATIONSHIP OK");
907 BOOST_TEST_MESSAGE(
"OUTPUT LAYER - OUTPUT WORKLOAD CHILD RELATIONSHIP OK");
909 bufferManager.MarkRead(outputReadableBuffer);
912 size = inferenceReadableBuffer->GetSize();
916 readableData = inferenceReadableBuffer->GetReadableData();
917 BOOST_CHECK(readableData !=
nullptr);
923 BOOST_TEST_MESSAGE(
"INFERENCE HEADER OK");
928 BOOST_TEST_MESSAGE(
"INFERENCE ENTITY OK");
935 LabelsAndEventClasses::TYPE_GUID,
938 BOOST_TEST_MESSAGE(
"INFERENCE TYPE RELATIONSHIP OK");
948 BOOST_TEST_MESSAGE(
"NETWORK - INFERENCE EXECUTION_OF RELATIONSHIP OK");
954 BOOST_TEST_MESSAGE(
"INFERENCE START OF LIFE EVENT OK");
964 BOOST_TEST_MESSAGE(
"INFERENCE START OF LIFE RELATIONSHIP OK");
971 BOOST_TEST_MESSAGE(
"INPUT WORKLOAD EXECUTION ENTITY OK");
976 inputWorkloadExecutionGuid,
978 LabelsAndEventClasses::TYPE_GUID,
981 BOOST_TEST_MESSAGE(
"INPUT WORKLOAD EXECUTION TYPE RELATIONSHIP OK");
987 inputWorkloadExecutionGuid,
988 LabelsAndEventClasses::CHILD_GUID,
991 BOOST_TEST_MESSAGE(
"INPUT WORKLOAD - INPUT WORKLOAD EXECUTION RELATIONSHIP OK");
997 inputWorkloadExecutionGuid,
1001 BOOST_TEST_MESSAGE(
"INPUT WORKLOAD - INPUT WORKLOAD EXECUTION RELATIONSHIP OK");
1007 BOOST_TEST_MESSAGE(
"INPUT WORKLOAD EXECUTION - START OF LIFE EVENT OK");
1012 inputWorkloadExecutionGuid,
1013 inputWorkloadExecutionSOLEventId,
1017 BOOST_TEST_MESSAGE(
"INPUT WORKLOAD EXECUTION - START OF LIFE EVENT RELATIONSHIP OK");
1023 BOOST_TEST_MESSAGE(
"INPUT WORKLOAD EXECUTION - END OF LIFE EVENT OK");
1028 inputWorkloadExecutionGuid,
1029 inputWorkloadExecutionEOLEventId,
1033 BOOST_TEST_MESSAGE(
"INPUT WORKLOAD EXECUTION - END OF LIFE EVENT RELATIONSHIP OK");
1039 BOOST_TEST_MESSAGE(
"CONV2D WORKLOAD EXECUTION ENTITY OK");
1044 conv2DWorkloadExecutionGuid,
1046 LabelsAndEventClasses::TYPE_GUID,
1049 BOOST_TEST_MESSAGE(
"CONV2D WORKLOAD EXECUTION TYPE RELATIONSHIP OK");
1055 conv2DWorkloadExecutionGuid,
1056 LabelsAndEventClasses::CHILD_GUID,
1059 BOOST_TEST_MESSAGE(
"INFERENCE - CONV2D WORKLOAD EXECUTION CHILD RELATIONSHIP OK");
1065 conv2DWorkloadExecutionGuid,
1069 BOOST_TEST_MESSAGE(
"CONV2D WORKLOAD - CONV2D WORKLOAD EXECUTION RELATIONSHIP OK");
1075 BOOST_TEST_MESSAGE(
"CONV2D WORKLOAD EXECUTION START OF LIFE EVENT OK");
1080 conv2DWorkloadExecutionGuid,
1081 conv2DWorkloadExecutionSOLEventGuid,
1085 BOOST_TEST_MESSAGE(
"CONV2D WORKLOAD EXECUTION START OF LIFE RELATIONSHIP OK");
1091 BOOST_TEST_MESSAGE(
"CONV2D WORKLOAD EXECUTION END OF LIFE EVENT OK");
1096 conv2DWorkloadExecutionGuid,
1097 conv2DWorkloadExecutionEOLEventGuid,
1101 BOOST_TEST_MESSAGE(
"CONV2D WORKLOAD EXECUTION END OF LIFE RELATIONSHIP OK");
1107 BOOST_TEST_MESSAGE(
"ABS WORKLOAD EXECUTION ENTITY OK");
1112 absWorkloadExecutionGuid,
1114 LabelsAndEventClasses::TYPE_GUID,
1117 BOOST_TEST_MESSAGE(
"ABS WORKLOAD EXECUTION TYPE RELATIONSHIP OK");
1123 absWorkloadExecutionGuid,
1124 LabelsAndEventClasses::CHILD_GUID,
1127 BOOST_TEST_MESSAGE(
"INFERENCE - ABS WORKLOAD EXECUTION CHILD RELATIONSHIP OK");
1133 absWorkloadExecutionGuid,
1137 BOOST_TEST_MESSAGE(
"ABS WORKLOAD - ABS WORKLOAD EXECUTION RELATIONSHIP OK");
1143 BOOST_TEST_MESSAGE(
"ABS WORKLOAD EXECUTION START OF LIFE EVENT OK");
1148 absWorkloadExecutionGuid,
1149 absWorkloadExecutionSOLEventGuid,
1153 BOOST_TEST_MESSAGE(
"ABS WORKLOAD EXECUTION START OF LIFE RELATIONSHIP OK");
1159 BOOST_TEST_MESSAGE(
"ABS WORKLOAD EXECUTION END OF LIFE EVENT OK");
1164 absWorkloadExecutionGuid,
1165 absWorkloadExecutionEOLEventGuid,
1169 BOOST_TEST_MESSAGE(
"ABS WORKLOAD EXECUTION END OF LIFE RELATIONSHIP OK");
1175 BOOST_TEST_MESSAGE(
"OUTPUT WORKLOAD EXECUTION ENTITY OK");
1180 outputWorkloadExecutionGuid,
1182 LabelsAndEventClasses::TYPE_GUID,
1185 BOOST_TEST_MESSAGE(
"OUTPUT WORKLOAD EXECUTION TYPE RELATIONSHIP OK");
1191 outputWorkloadExecutionGuid,
1192 LabelsAndEventClasses::CHILD_GUID,
1195 BOOST_TEST_MESSAGE(
"INFERENCE - OUTPUT WORKLOAD EXECUTION CHILD RELATIONSHIP OK");
1201 outputWorkloadExecutionGuid,
1205 BOOST_TEST_MESSAGE(
"OUTPUT WORKLOAD - OUTPUT WORKLOAD EXECUTION EXECUTION_OF RELATIONSHIP OK");
1211 BOOST_TEST_MESSAGE(
"OUTPUT WORKLOAD EXECUTION START OF LIFE EVENT OK");
1216 outputWorkloadExecutionGuid,
1217 outputWorkloadExecutionSOLEventGuid,
1221 BOOST_TEST_MESSAGE(
"OUTPUT WORKLOAD EXECUTION - START OF LIFE EVENT RELATIONSHIP OK");
1227 BOOST_TEST_MESSAGE(
"OUTPUT WORKLOAD EXECUTION END OF LIFE EVENT OK");
1232 outputWorkloadExecutionGuid,
1233 outputWorkloadExecutionEOLEventGuid,
1237 BOOST_TEST_MESSAGE(
"OUTPUT WORKLOAD EXECUTION - END OF LIFE EVENT RELATIONSHIP OK");
1243 BOOST_TEST_MESSAGE(
"INFERENCE END OF LIFE EVENT OK");
1249 inferenceEOLEventGuid,
1253 BOOST_TEST_MESSAGE(
"INFERENCE - END OF LIFE EVENT RELATIONSHIP OK");
1255 bufferManager.MarkRead(inferenceReadableBuffer);
1258 bool CompareOutput(std::vector<std::string> output, std::vector<std::string> expectedOutput)
1260 if (output.size() != expectedOutput.size())
1262 std::cerr <<
"output has [" << output.size() <<
"] lines, expected was [" 1263 << expectedOutput.size() <<
"] lines" << std::endl;
1264 std::cerr << std::endl <<
"actual" << std::endl << std::endl;
1265 for (
auto line : output)
1267 std::cerr << line << std::endl;
1269 std::cerr << std::endl <<
"expected" << std::endl << std::endl;
1270 for (
auto line : expectedOutput)
1272 std::cerr << line << std::endl;
1277 for (
unsigned long i = 0; i < output.size(); ++i)
1279 if (output[i] != expectedOutput[i])
1282 std::cerr << i <<
": actual [" << output[i] <<
"] expected [" << expectedOutput[i] <<
"]" << std::endl;
static ARMNN_DLLEXPORT ProfilingStaticGuid INFERENCE_GUID
uint32_t m_PadBottom
Padding bottom value in the height dimension.
bool m_BiasEnabled
Enable/disable bias.
virtual TensorInfo GetOutputTensorInfo(NetworkId networkId, LayerBindingId layerId) const override
Interface for a layer that is connectable to other layers via InputSlots and OutputSlots.
void VerifyTimelineEventClassBinaryPacketData(ProfilingGuid guid, ProfilingGuid nameGuid, const unsigned char *readableData, unsigned int &offset)
ProfilingGuid VerifyTimelineEntityBinaryPacketData(Optional< ProfilingGuid > guid, const unsigned char *readableData, unsigned int &offset)
void VerifyPostOptimisationStructureTestImpl(armnn::BackendId backendId)
CPU Execution: Reference C++ kernels.
std::string GetHardwareVersion()
virtual const IDeviceSpec & GetDeviceSpec() const override
void ReadBytes(const IPacketBufferPtr &packetBuffer, unsigned int offset, unsigned int valueSize, uint8_t outValue[])
uint64_t ReadUint64(const IPacketBufferPtr &packetBuffer, unsigned int offset)
void ForceTransitionToState(ProfilingState newState)
A Convolution2dDescriptor for the Convolution2dLayer.
uint32_t GetStreamMetaDataPacketSize()
std::string GetProcessName()
BackendRegistry & BackendRegistryInstance()
std::vector< std::pair< LayerBindingId, class ConstTensor > > InputTensors
uint32_t m_PadRight
Padding right value in the width dimension.
Copyright (c) 2020 ARM Limited.
std::vector< BackendId > GetSuitableBackendRegistered()
Returns a vector of CpuRef, CpuAcc or GpuAcc backends if they where registered.
std::string GetSoftwareInfo()
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.
unsigned int OffsetToNextWord(unsigned int numberOfBytes)
uint32_t m_PadTop
Padding top value in the height dimension.
uint32_t m_StrideX
Stride value when proceeding through input for the width dimension.
static ARMNN_DLLEXPORT ProfilingStaticGuid LAYER_GUID
static ProfilingStaticGuid GetStaticId(const std::string &str)
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)
bool CompareOutput(std::vector< std::string > output, std::vector< std::string > expectedOutput)
bool has_value() const noexcept
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)
ProfilingRelationshipType
#define ARMNN_ASSERT(COND)
constexpr char const * GetComputeDeviceAsCString(Compute compute)
Deprecated function that will be removed together with the Compute enum.
GPU Execution: OpenCL: ArmCompute.
IPacketBufferPtr GetReadableBuffer() override
constexpr unsigned int ThreadIdSize
uint32_t m_StrideY
Stride value when proceeding through input for the height dimension.
uint32_t ReadUint32(const IPacketBufferPtr &packetBuffer, unsigned int offset)
void VerifyTimelineHeaderBinary(const unsigned char *readableData, unsigned int &offset, uint32_t packetDataLength)
static ARMNN_DLLEXPORT ProfilingStaticGuid NETWORK_GUID
std::string GetSoftwareVersion()
EmptyOptional is used to initialize the Optional class in case we want to have default value for an O...
A ElementwiseUnaryDescriptor for the ElementwiseUnaryLayer.
static ARMNN_DLLEXPORT ProfilingStaticGuid TYPE_GUID
virtual Status LoadNetwork(NetworkId &networkIdOut, IOptimizedNetworkPtr network) override
Loads a complete network into the Runtime.
CPU Execution: NEON: ArmCompute.
const std::string & Get() const
virtual const IInputSlot & GetInputSlot(unsigned int index) const =0
Get a const input slot handle by slot index.
std::enable_if_t< std::is_unsigned< Source >::value &&std::is_unsigned< Dest >::value, Dest > numeric_cast(Source source)
BufferManager & GetProfilingBufferManager()
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
ExternalProfilingOptions m_ProfilingOptions
virtual Status EnqueueWorkload(NetworkId networkId, const InputTensors &inputTensors, const OutputTensors &outputTensors) override
Evaluates a network using input in inputTensors and outputs filled into outputTensors.
static INetworkPtr Create(NetworkOptions networkOptions={})
static ARMNN_DLLEXPORT ProfilingStaticGuid BACKENDID_GUID
uint32_t m_PadLeft
Padding left value in the width dimension.
static ARMNN_DLLEXPORT ProfilingStaticGuid CHILD_GUID
virtual TensorInfo GetInputTensorInfo(NetworkId networkId, LayerBindingId layerId) const override