17 #include <boost/test/unit_test.hpp> 21 uint32_t sizeUint32 =
sizeof(uint32_t);
22 uint32_t payloadSize = 0;
29 payloadSize += 13 * 2 * sizeUint32;
31 payloadSize += sizeUint32;
33 uint32_t headerSize = 2 * sizeUint32;
34 uint32_t bodySize = 10 * sizeUint32;
36 return headerSize + bodySize + payloadSize;
41 std::vector<BackendId> suitableBackends;
54 return suitableBackends;
67 return numberOfBytes + uint32_t_size - remainder;
72 uint32_t packetDataLength)
80 uint32_t timelineBinaryPacketHeaderWord0 =
ReadUint32(readableData, offset);
81 uint32_t timelineBinaryPacketFamily = (timelineBinaryPacketHeaderWord0 >> 26) & 0x0000003F;
82 uint32_t timelineBinaryPacketClass = (timelineBinaryPacketHeaderWord0 >> 19) & 0x0000007F;
83 uint32_t timelineBinaryPacketType = (timelineBinaryPacketHeaderWord0 >> 16) & 0x00000007;
84 uint32_t timelineBinaryPacketStreamId = (timelineBinaryPacketHeaderWord0 >> 0) & 0x00000007;
85 BOOST_CHECK(timelineBinaryPacketFamily == 1);
86 BOOST_CHECK(timelineBinaryPacketClass == 0);
87 BOOST_CHECK(timelineBinaryPacketType == 1);
88 BOOST_CHECK(timelineBinaryPacketStreamId == 0);
90 uint32_t timelineBinaryPacketHeaderWord1 =
ReadUint32(readableData, offset);
91 uint32_t timelineBinaryPacketSequenceNumber = (timelineBinaryPacketHeaderWord1 >> 24) & 0x00000001;
92 uint32_t timelineBinaryPacketDataLength = (timelineBinaryPacketHeaderWord1 >> 0) & 0x00FFFFFF;
93 BOOST_CHECK(timelineBinaryPacketSequenceNumber == 0);
94 BOOST_CHECK(timelineBinaryPacketDataLength == packetDataLength);
99 const std::string& label,
100 const unsigned char* readableData,
101 unsigned int& offset)
107 unsigned int uint64_t_size =
sizeof(uint64_t);
111 uint32_t eventClassDeclId =
ReadUint32(readableData, offset);
112 BOOST_CHECK(eventClassDeclId == 0);
116 uint64_t readProfilingGuid =
ReadUint64(readableData, offset);
119 BOOST_CHECK(readProfilingGuid == guid.
value());
124 BOOST_CHECK(readProfilingGuid == profilingService.
GetStaticId(label));
128 offset += uint64_t_size;
129 uint32_t swTraceLabelLength =
ReadUint32(readableData, offset);
130 BOOST_CHECK(swTraceLabelLength == label_size + 1);
132 BOOST_CHECK(std::memcmp(readableData + offset,
134 swTraceLabelLength - 1) == 0);
145 const unsigned char* readableData,
146 unsigned int& offset)
152 unsigned int uint64_t_size =
sizeof(uint64_t);
155 uint32_t eventClassDeclId =
ReadUint32(readableData, offset);
156 BOOST_CHECK(eventClassDeclId == 2);
160 uint64_t readProfilingGuid =
ReadUint64(readableData, offset);
161 BOOST_CHECK(readProfilingGuid == guid);
163 offset += uint64_t_size;
164 uint64_t readProfiilngNameGuid =
ReadUint64(readableData, offset);
165 BOOST_CHECK(readProfiilngNameGuid == nameGuid);
168 offset += uint64_t_size;
176 const unsigned char* readableData,
177 unsigned int& offset)
181 uint32_t relationshipTypeUint = 0;
182 switch (relationshipType)
184 case ProfilingRelationshipType::RetentionLink:
185 relationshipTypeUint = 0;
187 case ProfilingRelationshipType::ExecutionLink:
188 relationshipTypeUint = 1;
190 case ProfilingRelationshipType::DataLink:
191 relationshipTypeUint = 2;
193 case ProfilingRelationshipType::LabelLink:
194 relationshipTypeUint = 3;
197 BOOST_ERROR(
"Unknown relationship type");
202 unsigned int uint64_t_size =
sizeof(uint64_t);
205 uint32_t eventClassDeclId =
ReadUint32(readableData, offset);
206 BOOST_CHECK(eventClassDeclId == 3);
210 uint32_t readRelationshipTypeUint =
ReadUint32(readableData, offset);
211 BOOST_CHECK(readRelationshipTypeUint == relationshipTypeUint);
215 uint64_t readRelationshipGuid =
ReadUint64(readableData, offset);
218 BOOST_CHECK(readRelationshipGuid == relationshipGuid.
value());
226 offset += uint64_t_size;
227 uint64_t readHeadRelationshipGuid =
ReadUint64(readableData, offset);
230 BOOST_CHECK(readHeadRelationshipGuid == headGuid.
value());
238 offset += uint64_t_size;
239 uint64_t readTailRelationshipGuid =
ReadUint64(readableData, offset);
242 BOOST_CHECK(readTailRelationshipGuid == tailGuid.
value());
250 offset += uint64_t_size;
251 uint64_t readAttributeRelationshipGuid =
ReadUint64(readableData, offset);
254 BOOST_CHECK(readAttributeRelationshipGuid == attributeGuid.
value());
258 BOOST_CHECK(readAttributeRelationshipGuid ==
ProfilingGuid(0));
262 offset += uint64_t_size;
266 const unsigned char* readableData,
267 unsigned int& offset)
273 unsigned int uint64_t_size =
sizeof(uint64_t);
277 uint32_t entityDeclId =
ReadUint32(readableData, offset);
278 BOOST_CHECK(entityDeclId == 1);
282 uint64_t readProfilingGuid =
ReadUint64(readableData, offset);
286 BOOST_CHECK(readProfilingGuid == guid.
value());
293 offset += uint64_t_size;
302 const unsigned char* readableData,
303 unsigned int& offset)
309 unsigned int uint64_t_size =
sizeof(uint64_t);
313 uint32_t entityDeclId =
ReadUint32(readableData, offset);
314 BOOST_CHECK(entityDeclId == 4);
318 uint64_t readTimestamp =
ReadUint64(readableData, offset);
321 BOOST_CHECK(readTimestamp == timestamp.
value());
325 BOOST_CHECK(readTimestamp != 0);
329 offset += uint64_t_size;
334 BOOST_CHECK(readThreadId == threadId.
value());
343 uint64_t readEventGuid =
ReadUint64(readableData, offset);
346 BOOST_CHECK(readEventGuid == eventGuid.
value());
353 offset += uint64_t_size;
361 using namespace armnn;
383 std::vector<float> weightsData{
396 std::vector<float> biasesData{ 1.0f, 0.0f, 0.0f };
412 IConnectableLayer* conv2d = net->AddConvolution2dLayer(conv2dDesc, weights, optionalBiases);
421 input->GetOutputSlot(0).Connect(conv2d->
GetInputSlot(0));
425 input->GetOutputSlot(0).SetTensorInfo(inputInfo);
430 std::vector<armnn::BackendId> backends = { backendId };
443 BOOST_CHECK(readableBuffer !=
nullptr);
444 unsigned int size = readableBuffer->GetSize();
446 const unsigned char* readableData = readableBuffer->GetReadableData();
447 BOOST_CHECK(readableData !=
nullptr);
449 unsigned int offset = 0;
453 BOOST_TEST_MESSAGE(
"HEADER OK");
458 BOOST_TEST_MESSAGE(
"NETWORK ENTITY OK");
468 BOOST_TEST_MESSAGE(
"NETWORK TYPE RELATIONSHIP OK");
476 BOOST_TEST_MESSAGE(
"NETWORK START OF LIFE EVENT OK");
486 BOOST_TEST_MESSAGE(
"NETWORK START OF LIFE RELATIONSHIP OK");
490 std::stringstream ss;
492 std::string processIdLabel = ss.str();
494 BOOST_TEST_MESSAGE(
"PROCESS ID LABEL OK");
504 BOOST_TEST_MESSAGE(
"NETWORK PROCESS ID RELATIONSHIP OK");
509 BOOST_TEST_MESSAGE(
"INPUT ENTITY OK");
513 BOOST_TEST_MESSAGE(
"INPUT NAME LABEL OK");
523 BOOST_TEST_MESSAGE(
"INPUT NAME RELATIONSHIP OK");
533 BOOST_TEST_MESSAGE(
"INPUT TYPE RELATIONSHIP OK");
543 BOOST_TEST_MESSAGE(
"NETWORK - INPUT CHILD RELATIONSHIP OK");
552 BOOST_TEST_MESSAGE(
"CONV2D NAME LABEL OK");
562 BOOST_TEST_MESSAGE(
"CONV2D NAME RELATIONSHIP OK");
572 BOOST_TEST_MESSAGE(
"CONV2D TYPE RELATIONSHIP OK");
582 BOOST_TEST_MESSAGE(
"NETWORK - CONV2D CHILD RELATIONSHIP OK");
592 BOOST_TEST_MESSAGE(
"INPUT - CONV2D LAYER CONNECTION OK");
597 BOOST_TEST_MESSAGE(
"CONV2D WORKLOAD ENTITY OK");
604 LabelsAndEventClasses::TYPE_GUID,
607 BOOST_TEST_MESSAGE(
"CONV2D WORKLOAD TYPE RELATIONSHIP OK");
621 BOOST_TEST_MESSAGE(
"CONV2D WORKLOAD BACKEND ID RELATIONSHIP OK");
632 BOOST_TEST_MESSAGE(
"CONV2D LAYER - WORKLOAD CHILD RELATIONSHIP OK");
637 BOOST_TEST_MESSAGE(
"ACTIVATION ENTITY OK");
642 BOOST_TEST_MESSAGE(
"ACTIVATION NAME LABEL OK");
652 BOOST_TEST_MESSAGE(
"ACTIVATION LAYER - NAME RELATIONSHIP OK");
662 BOOST_TEST_MESSAGE(
"ACTIVATION LAYER TYPE RELATIONSHIP OK");
672 BOOST_TEST_MESSAGE(
"NETWORK - ACTIVATION LAYER CHILD RELATIONSHIP OK");
682 BOOST_TEST_MESSAGE(
"CONV2D LAYER - ACTIVATION LAYER CONNECTION OK");
687 BOOST_TEST_MESSAGE(
"ACTIVATION WORKLOAD ENTITY OK");
692 activationWorkloadGuid,
694 LabelsAndEventClasses::TYPE_GUID,
697 BOOST_TEST_MESSAGE(
"ACTIVATION WORKLAD TYPE RELATIONSHIP OK");
701 BOOST_TEST_MESSAGE(
"BACKEND ID LABEL OK");
706 activationWorkloadGuid,
711 BOOST_TEST_MESSAGE(
"ACTIVATION WORKLOAD BACKEND ID RELATIONSHIP OK");
717 activationWorkloadGuid,
721 BOOST_TEST_MESSAGE(
"ACTIVATION LAYER - WORKLOAD CHILD RELATIONSHIP OK");
726 BOOST_TEST_MESSAGE(
"OUTPUT LAYER ENTITY OK");
740 BOOST_TEST_MESSAGE(
"OUTPUT LAYER NAME RELATIONSHIP OK");
750 BOOST_TEST_MESSAGE(
"OUTPUT LAYER TYPE RELATIONSHIP OK");
760 BOOST_TEST_MESSAGE(
"NETWORK - OUTPUT LAYER CHILD RELATIONSHIP OK");
770 BOOST_TEST_MESSAGE(
"ACTIVATION LAYER - OUTPUT LAYER CONNECTION OK");
772 bufferManager.MarkRead(readableBuffer);
775 std::vector<float> inputData(inputInfo.GetNumElements());
776 std::vector<float> outputData(outputInfo.GetNumElements());
791 auto inputReadableBuffer = bufferManager.GetReadableBuffer();
792 BOOST_CHECK(inputReadableBuffer !=
nullptr);
795 auto outputReadableBuffer = bufferManager.GetReadableBuffer();
796 BOOST_CHECK(outputReadableBuffer !=
nullptr);
799 auto inferenceReadableBuffer = bufferManager.GetReadableBuffer();
800 BOOST_CHECK(inferenceReadableBuffer !=
nullptr);
803 size = inputReadableBuffer->GetSize();
804 BOOST_CHECK(size == 164);
806 readableData = inputReadableBuffer->GetReadableData();
807 BOOST_CHECK(readableData !=
nullptr);
813 BOOST_TEST_MESSAGE(
"INPUT WORKLOAD HEADER OK");
818 BOOST_TEST_MESSAGE(
"INPUT WORKLOAD TYPE RELATIONSHIP OK");
825 LabelsAndEventClasses::TYPE_GUID,
828 BOOST_TEST_MESSAGE(
"INPUT WORKLOAD TYPE RELATIONSHIP OK");
841 BOOST_TEST_MESSAGE(
"INPUT WORKLOAD BACKEND ID RELATIONSHIP OK");
851 BOOST_TEST_MESSAGE(
"INPUT LAYER - INPUT WORKLOAD CHILD RELATIONSHIP OK");
853 bufferManager.MarkRead(inputReadableBuffer);
856 size = outputReadableBuffer->GetSize();
857 BOOST_CHECK(size == 164);
859 readableData = outputReadableBuffer->GetReadableData();
860 BOOST_CHECK(readableData !=
nullptr);
866 BOOST_TEST_MESSAGE(
"OUTPUT WORKLOAD HEADER OK");
871 BOOST_TEST_MESSAGE(
"OUTPUT WORKLOAD ENTITY OK");
878 LabelsAndEventClasses::TYPE_GUID,
881 BOOST_TEST_MESSAGE(
"OUTPUT WORKLOAD TYPE RELATIONSHIP OK");
885 BOOST_TEST_MESSAGE(
"OUTPUT WORKLOAD LABEL OK");
895 BOOST_TEST_MESSAGE(
"OUTPUT WORKLOAD BACKEND ID RELATIONSHIP OK");
905 BOOST_TEST_MESSAGE(
"OUTPUT LAYER - OUTPUT WORKLOAD CHILD RELATIONSHIP OK");
907 bufferManager.MarkRead(outputReadableBuffer);
910 size = inferenceReadableBuffer->GetSize();
914 readableData = inferenceReadableBuffer->GetReadableData();
915 BOOST_CHECK(readableData !=
nullptr);
921 BOOST_TEST_MESSAGE(
"INFERENCE HEADER OK");
926 BOOST_TEST_MESSAGE(
"INFERENCE ENTITY OK");
933 LabelsAndEventClasses::TYPE_GUID,
936 BOOST_TEST_MESSAGE(
"INFERENCE TYPE RELATIONSHIP OK");
946 BOOST_TEST_MESSAGE(
"NETWORK - INFERENCE EXECUTION_OF RELATIONSHIP OK");
952 BOOST_TEST_MESSAGE(
"INFERENCE START OF LIFE EVENT OK");
962 BOOST_TEST_MESSAGE(
"INFERENCE START OF LIFE RELATIONSHIP OK");
969 BOOST_TEST_MESSAGE(
"INPUT WORKLOAD EXECUTION ENTITY OK");
974 inputWorkloadExecutionGuid,
976 LabelsAndEventClasses::TYPE_GUID,
979 BOOST_TEST_MESSAGE(
"INPUT WORKLOAD EXECUTION TYPE RELATIONSHIP OK");
985 inputWorkloadExecutionGuid,
986 LabelsAndEventClasses::CHILD_GUID,
989 BOOST_TEST_MESSAGE(
"INPUT WORKLOAD - INPUT WORKLOAD EXECUTION RELATIONSHIP OK");
995 inputWorkloadExecutionGuid,
999 BOOST_TEST_MESSAGE(
"INPUT WORKLOAD - INPUT WORKLOAD EXECUTION RELATIONSHIP OK");
1005 BOOST_TEST_MESSAGE(
"INPUT WORKLOAD EXECUTION - START OF LIFE EVENT OK");
1010 inputWorkloadExecutionGuid,
1011 inputWorkloadExecutionSOLEventId,
1015 BOOST_TEST_MESSAGE(
"INPUT WORKLOAD EXECUTION - START OF LIFE EVENT RELATIONSHIP OK");
1021 BOOST_TEST_MESSAGE(
"INPUT WORKLOAD EXECUTION - END OF LIFE EVENT OK");
1026 inputWorkloadExecutionGuid,
1027 inputWorkloadExecutionEOLEventId,
1031 BOOST_TEST_MESSAGE(
"INPUT WORKLOAD EXECUTION - END OF LIFE EVENT RELATIONSHIP OK");
1037 BOOST_TEST_MESSAGE(
"CONV2D WORKLOAD EXECUTION ENTITY OK");
1042 conv2DWorkloadExecutionGuid,
1044 LabelsAndEventClasses::TYPE_GUID,
1047 BOOST_TEST_MESSAGE(
"CONV2D WORKLOAD EXECUTION TYPE RELATIONSHIP OK");
1053 conv2DWorkloadExecutionGuid,
1054 LabelsAndEventClasses::CHILD_GUID,
1057 BOOST_TEST_MESSAGE(
"INFERENCE - CONV2D WORKLOAD EXECUTION CHILD RELATIONSHIP OK");
1063 conv2DWorkloadExecutionGuid,
1067 BOOST_TEST_MESSAGE(
"CONV2D WORKLOAD - CONV2D WORKLOAD EXECUTION RELATIONSHIP OK");
1073 BOOST_TEST_MESSAGE(
"CONV2D WORKLOAD EXECUTION START OF LIFE EVENT OK");
1078 conv2DWorkloadExecutionGuid,
1079 conv2DWorkloadExecutionSOLEventGuid,
1083 BOOST_TEST_MESSAGE(
"CONV2D WORKLOAD EXECUTION START OF LIFE RELATIONSHIP OK");
1089 BOOST_TEST_MESSAGE(
"CONV2D WORKLOAD EXECUTION END OF LIFE EVENT OK");
1094 conv2DWorkloadExecutionGuid,
1095 conv2DWorkloadExecutionEOLEventGuid,
1099 BOOST_TEST_MESSAGE(
"CONV2D WORKLOAD EXECUTION END OF LIFE RELATIONSHIP OK");
1105 BOOST_TEST_MESSAGE(
"ACTIVATION WORKLOAD EXECUTION ENTITY OK");
1110 activationWorkloadExecutionGuid,
1112 LabelsAndEventClasses::TYPE_GUID,
1115 BOOST_TEST_MESSAGE(
"ACTIVATION WORKLOAD EXECUTION TYPE RELATIONSHIP OK");
1121 activationWorkloadExecutionGuid,
1122 LabelsAndEventClasses::CHILD_GUID,
1125 BOOST_TEST_MESSAGE(
"INFERENCE - ACTIVATION WORKLOAD EXECUTION CHILD RELATIONSHIP OK");
1130 activationWorkloadGuid,
1131 activationWorkloadExecutionGuid,
1135 BOOST_TEST_MESSAGE(
"ACTIVATION WORKLOAD - ACTIVATION WORKLOAD EXECUTION RELATIONSHIP OK");
1141 BOOST_TEST_MESSAGE(
"ACTIVATION WORKLOAD EXECUTION START OF LIFE EVENT OK");
1146 activationWorkloadExecutionGuid,
1147 activationWorkloadExecutionSOLEventGuid,
1151 BOOST_TEST_MESSAGE(
"ACTIVATION WORKLOAD EXECUTION START OF LIFE RELATIONSHIP OK");
1157 BOOST_TEST_MESSAGE(
"ACTIVATION WORKLOAD EXECUTION END OF LIFE EVENT OK");
1162 activationWorkloadExecutionGuid,
1163 activationWorkloadExecutionEOLEventGuid,
1167 BOOST_TEST_MESSAGE(
"ACTIVATION WORKLOAD EXECUTION END OF LIFE RELATIONSHIP OK");
1173 BOOST_TEST_MESSAGE(
"OUTPUT WORKLOAD EXECUTION ENTITY OK");
1178 outputWorkloadExecutionGuid,
1180 LabelsAndEventClasses::TYPE_GUID,
1183 BOOST_TEST_MESSAGE(
"OUTPUT WORKLOAD EXECUTION TYPE RELATIONSHIP OK");
1189 outputWorkloadExecutionGuid,
1190 LabelsAndEventClasses::CHILD_GUID,
1193 BOOST_TEST_MESSAGE(
"INFERENCE - OUTPUT WORKLOAD EXECUTION CHILD RELATIONSHIP OK");
1199 outputWorkloadExecutionGuid,
1203 BOOST_TEST_MESSAGE(
"OUTPUT WORKLOAD - OUTPUT WORKLOAD EXECUTION EXECUTION_OF RELATIONSHIP OK");
1209 BOOST_TEST_MESSAGE(
"OUTPUT WORKLOAD EXECUTION START OF LIFE EVENT OK");
1214 outputWorkloadExecutionGuid,
1215 outputWorkloadExecutionSOLEventGuid,
1219 BOOST_TEST_MESSAGE(
"OUTPUT WORKLOAD EXECUTION - START OF LIFE EVENT RELATIONSHIP OK");
1225 BOOST_TEST_MESSAGE(
"OUTPUT WORKLOAD EXECUTION END OF LIFE EVENT OK");
1230 outputWorkloadExecutionGuid,
1231 outputWorkloadExecutionEOLEventGuid,
1235 BOOST_TEST_MESSAGE(
"OUTPUT WORKLOAD EXECUTION - END OF LIFE EVENT RELATIONSHIP OK");
1241 BOOST_TEST_MESSAGE(
"INFERENCE END OF LIFE EVENT OK");
1247 inferenceEOLEventGuid,
1251 BOOST_TEST_MESSAGE(
"INFERENCE - END OF LIFE EVENT RELATIONSHIP OK");
1253 bufferManager.MarkRead(inferenceReadableBuffer);
1256 bool CompareOutput(std::vector<std::string> output, std::vector<std::string> expectedOutput)
1258 if (output.size() != expectedOutput.size())
1260 std::cerr <<
"output has [" << output.size() <<
"] lines, expected was [" 1261 << expectedOutput.size() <<
"] lines" << std::endl;
1262 std::cerr << std::endl <<
"actual" << std::endl << std::endl;
1263 for (
auto line : output)
1265 std::cerr << line << std::endl;
1267 std::cerr << std::endl <<
"expected" << std::endl << std::endl;
1268 for (
auto line : expectedOutput)
1270 std::cerr << line << std::endl;
1275 for (
unsigned long i = 0; i < output.size(); ++i)
1277 if (output[i] != expectedOutput[i])
1280 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)
std::enable_if_t< std::is_unsigned< Source >::value &&std::is_unsigned< Dest >::value, Dest > numeric_cast(Source source)
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
An ActivationDescriptor for the ActivationLayer.
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...
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.
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