213 virtual const BackendId& GetId()
const = 0;
239 virtual const BackendIdSet& GetSupportedBackends()
const = 0;
250 using ArrayType = std::array<ValueType, MaxNumOfTensorDimensions>;
281 if (m_NumDimMappings != other.m_NumDimMappings)
return false;
282 for (
unsigned int i = 0; i < m_NumDimMappings; ++i)
284 if (m_DimMappings[i] != other.m_DimMappings[i])
return false;
291 bool isInverse = (GetSize() == other.
GetSize());
292 for (
SizeType i = 0; isInverse && (i < GetSize()); ++i)
294 isInverse = (m_DimMappings[other.m_DimMappings[i]] == i);
316 using DebugCallbackFunction = std::function<void(LayerGuid guid, unsigned int slotIndex, ITensorHandle* tensorHandle)>;
325 static constexpr uint64_t MIN_STATIC_GUID = 1llu << 63;
334 operator uint64_t()
const {
return m_Guid; }
338 return m_Guid == other.
m_Guid;
343 return m_Guid != other.
m_Guid;
348 return m_Guid < other.
m_Guid;
353 return m_Guid <= other.
m_Guid;
358 return m_Guid > other.
m_Guid;
363 return m_Guid >= other.
m_Guid;
385 #define LIST_OF_LAYER_TYPE \ 389 X(BatchNormalization) \ 394 X(ConvertBf16ToFp32) \ 395 X(ConvertFp16ToFp32) \ 396 X(ConvertFp32ToBf16) \ 397 X(ConvertFp32ToFp16) \ 401 X(DepthwiseConvolution2d) \ 403 X(DetectionPostProcess) \ 405 X(ElementwiseUnary) \ 406 X(FakeQuantization) \ 412 X(InstanceNormalization) \ 450 X(TransposeConvolution2d) \ 457 #define X(name) name, 473 struct hash<
armnn::profiling::ProfilingGuid>
477 return hash<uint64_t>()(uint64_t(guid));
483 struct hash<
armnn::profiling::ProfilingDynamicGuid>
487 return hash<uint64_t>()(uint64_t(guid));
493 struct hash<
armnn::profiling::ProfilingStaticGuid>
497 return hash<uint64_t>()(uint64_t(guid));
bool operator<(const ProfilingGuid &other) const
bool operator>=(const ProfilingGuid &other) const
std::chrono::high_resolution_clock::time_point HighResolutionClock
Define a timer and associated inference ID for recording execution times.
constexpr unsigned int EXPIRE_RATE
Variable to control expire rate of priority queue.
bool operator==(const ProfilingGuid &other) const
std::unordered_set< BackendId > BackendIdSet
std::size_t operator()(armnn::profiling::ProfilingGuid const &guid) const noexcept
typename ArrayType::const_iterator ConstIterator
Each backend should implement an IBackend.
Strongly typed guids to distinguish between those generated at runtime, and those that are statically...
The padding fields don't count and are ignored.
#define LIST_OF_LAYER_TYPE
This list uses X macro technique.
NormalizationAlgorithmChannel
Copyright (c) 2021 ARM Limited and Contributors.
std::function< void(LayerGuid guid, unsigned int slotIndex, ITensorHandle *tensorHandle)> DebugCallbackFunction
Define the type of callback for the Debug layer to call.
std::size_t operator()(armnn::profiling::ProfilingDynamicGuid const &guid) const noexcept
int LayerBindingId
Type of identifiers for bindable layers (inputs, outputs).
PaddingMethod
The padding method modifies the output of pooling layers.
Constant weights can be accessed through the descriptors, On the other hand, non-const weights can be...
std::shared_ptr< IBackend > IBackendSharedPtr
bool operator<=(const ProfilingGuid &other) const
#define ARMNN_DEPRECATED_ENUM_MSG(message)
BackendCapability
BackendCapability class.
std::size_t operator()(armnn::profiling::ProfilingStaticGuid const &guid) const noexcept
std::array< ValueType, MaxNumOfTensorDimensions > ArrayType
Validate all output shapes.
Device specific knowledge to be passed to the optimizer.
constexpr unsigned int LOWEST_CAPTURE_PERIOD
The lowest performance data capture interval we support is 10 miliseconds.
std::unique_ptr< IBackend, void(*)(IBackend *backend)> IBackendUniquePtr
min(a, max(b, input)) ReLu1 & ReLu6.
ValueType operator[](SizeType i) const
bool IsEqual(const PermutationVector &other) const
The padding fields count, but are ignored.
MemorySource
Define the Memory Source to reduce copies.
ProfilingGuid(uint64_t guid)
bool operator!=(const ProfilingGuid &other) const
Jarret 2009: Local Contrast Normalization.
ConstIterator begin() const
ConstIterator end() const
Infer missing output shapes and validate all output shapes.
Krichevsky 2012: Local Brightness Normalization.
bool IsInverse(const PermutationVector &other) const
NormalizationAlgorithmMethod
bool operator>(const ProfilingGuid &other) const
ShapeInferenceMethod
The ShapeInferenceMethod modify how the output shapes are treated.
const char * GetLayerTypeAsCString(LayerType type)
std::pair< HighResolutionClock, HighResolutionClock > InferenceTimingPair
constexpr unsigned int MaxNumOfTensorDimensions
LayerType
When adding a new layer, adapt also the LastLayer enum value in the enum class LayerType below...