ArmNN
 22.08
Profiling.hpp File Reference
#include <common/include/ProfilingGuid.hpp>
#include "ProfilingEvent.hpp"
#include "ProfilingDetails.hpp"
#include "armnn/IProfiler.hpp"
#include <armnn/Optional.hpp>
#include <armnn/utility/IgnoreUnused.hpp>
#include "WallClockTimer.hpp"
#include <chrono>
#include <iosfwd>
#include <ctime>
#include <vector>
#include <stack>
#include <map>

Go to the source code of this file.

Classes

class  ProfilerImpl
 
struct  ProfilerImpl::Marker
 
struct  ProfilerImpl::ProfilingEventStats
 
class  ProfilerManager
 
class  ScopedProfilingEvent
 

Namespaces

 armnn
 Copyright (c) 2021 ARM Limited and Contributors.
 

Macros

#define ARMNN_SCOPED_PROFILING_EVENT_WITH_INSTRUMENTS_UNIQUE_LOC_INNER(lineNumber, backendId, guid, ...)   armnn::ScopedProfilingEvent e_ ## lineNumber(backendId, guid, /*name,*/ __VA_ARGS__);
 
#define ARMNN_SCOPED_PROFILING_EVENT_WITH_INSTRUMENTS_UNIQUE_LOC(lineNumber, backendId, guid, ...)   ARMNN_SCOPED_PROFILING_EVENT_WITH_INSTRUMENTS_UNIQUE_LOC_INNER(lineNumber, backendId, guid, /*name,*/ __VA_ARGS__)
 
#define ARMNN_SCOPED_PROFILING_EVENT_WITH_INSTRUMENTS(backendId, guid, ...)   ARMNN_SCOPED_PROFILING_EVENT_WITH_INSTRUMENTS_UNIQUE_LOC(__LINE__,backendId, guid, /*name,*/ __VA_ARGS__)
 
#define ARMNN_SCOPED_PROFILING_EVENT(backendId, name)   ARMNN_SCOPED_PROFILING_EVENT_WITH_INSTRUMENTS(backendId, armnn::EmptyOptional(), name, armnn::WallClockTimer())
 
#define ARMNN_SCOPED_PROFILING_EVENT_GUID(backendId, name, guid)   ARMNN_SCOPED_PROFILING_EVENT_WITH_INSTRUMENTS(backendId, guid, name, armnn::WallClockTimer())
 
#define ARMNN_REPORT_PROFILING_WORKLOAD_DESC(name, desc, infos, guid)   armnn::ProfilingUpdateDescriptions(name, desc, infos, guid);
 

Functions

template<typename DescriptorType >
void ProfilingUpdateDescriptions (const std::string &name, const DescriptorType &desc, const WorkloadInfo &infos, const arm::pipe::ProfilingGuid guid)
 

Macro Definition Documentation

◆ ARMNN_REPORT_PROFILING_WORKLOAD_DESC

#define ARMNN_REPORT_PROFILING_WORKLOAD_DESC (   name,
  desc,
  infos,
  guid 
)    armnn::ProfilingUpdateDescriptions(name, desc, infos, guid);

Definition at line 227 of file Profiling.hpp.

Referenced by ClActivationWorkload::ClActivationWorkload(), ClArgMinMaxWorkload::ClArgMinMaxWorkload(), ClBatchNormalizationFloatWorkload::ClBatchNormalizationFloatWorkload(), ClBatchToSpaceNdWorkload::ClBatchToSpaceNdWorkload(), ClChannelShuffleWorkload::ClChannelShuffleWorkload(), ClComparisonWorkload::ClComparisonWorkload(), ClConcatWorkload::ClConcatWorkload(), ClDepthToSpaceWorkload::ClDepthToSpaceWorkload(), ClDepthwiseConvolutionWorkload::ClDepthwiseConvolutionWorkload(), ClExpWorkload::ClExpWorkload(), ClFillWorkload::ClFillWorkload(), ClFullyConnectedWorkload::ClFullyConnectedWorkload(), ClGatherWorkload::ClGatherWorkload(), ClInstanceNormalizationWorkload::ClInstanceNormalizationWorkload(), ClL2NormalizationFloatWorkload::ClL2NormalizationFloatWorkload(), ClLogicalAndWorkload::ClLogicalAndWorkload(), ClLogicalNotWorkload::ClLogicalNotWorkload(), ClLogicalOrWorkload::ClLogicalOrWorkload(), ClLogSoftmaxWorkload::ClLogSoftmaxWorkload(), ClLstmFloatWorkload::ClLstmFloatWorkload(), ClMeanWorkload::ClMeanWorkload(), ClNormalizationFloatWorkload::ClNormalizationFloatWorkload(), ClPadWorkload::ClPadWorkload(), ClPermuteWorkload::ClPermuteWorkload(), ClPooling2dWorkload::ClPooling2dWorkload(), ClPooling3dWorkload::ClPooling3dWorkload(), ClQLstmWorkload::ClQLstmWorkload(), ClReduceWorkload::ClReduceWorkload(), ClResizeWorkload::ClResizeWorkload(), ClSliceWorkload::ClSliceWorkload(), ClSoftmaxWorkload::ClSoftmaxWorkload(), ClSpaceToBatchNdWorkload::ClSpaceToBatchNdWorkload(), ClSpaceToDepthWorkload::ClSpaceToDepthWorkload(), ClSplitterWorkload::ClSplitterWorkload(), ClSqrtWorkload::ClSqrtWorkload(), ClStackWorkload::ClStackWorkload(), ClStridedSliceWorkload::ClStridedSliceWorkload(), ClTransposeConvolution2dWorkload::ClTransposeConvolution2dWorkload(), ClTransposeWorkload::ClTransposeWorkload(), ClUnidirectionalSequenceLstmFloatWorkload::ClUnidirectionalSequenceLstmFloatWorkload(), NeonActivationWorkload::NeonActivationWorkload(), NeonArgMinMaxWorkload::NeonArgMinMaxWorkload(), NeonBatchNormalizationWorkload::NeonBatchNormalizationWorkload(), NeonBatchToSpaceNdWorkload::NeonBatchToSpaceNdWorkload(), NeonChannelShuffleWorkload::NeonChannelShuffleWorkload(), NeonComparisonWorkload::NeonComparisonWorkload(), NeonConcatWorkload::NeonConcatWorkload(), NeonDepthToSpaceWorkload::NeonDepthToSpaceWorkload(), NeonDetectionPostProcessWorkload::NeonDetectionPostProcessWorkload(), NeonExpWorkload::NeonExpWorkload(), NeonFillWorkload::NeonFillWorkload(), NeonGatherWorkload::NeonGatherWorkload(), NeonInstanceNormalizationWorkload::NeonInstanceNormalizationWorkload(), NeonL2NormalizationFloatWorkload::NeonL2NormalizationFloatWorkload(), NeonLogicalAndWorkload::NeonLogicalAndWorkload(), NeonLogicalNotWorkload::NeonLogicalNotWorkload(), NeonLogicalOrWorkload::NeonLogicalOrWorkload(), NeonLogSoftmaxWorkload::NeonLogSoftmaxWorkload(), NeonLstmFloatWorkload::NeonLstmFloatWorkload(), NeonMeanWorkload::NeonMeanWorkload(), NeonNormalizationFloatWorkload::NeonNormalizationFloatWorkload(), NeonPadWorkload::NeonPadWorkload(), NeonPermuteWorkload::NeonPermuteWorkload(), NeonPooling2dWorkload::NeonPooling2dWorkload(), NeonPooling3dWorkload::NeonPooling3dWorkload(), NeonQLstmWorkload::NeonQLstmWorkload(), NeonReduceWorkload::NeonReduceWorkload(), NeonResizeWorkload::NeonResizeWorkload(), NeonSliceWorkload::NeonSliceWorkload(), NeonSoftmaxWorkload::NeonSoftmaxWorkload(), NeonSpaceToBatchNdWorkload::NeonSpaceToBatchNdWorkload(), NeonSpaceToDepthWorkload::NeonSpaceToDepthWorkload(), NeonSplitterWorkload::NeonSplitterWorkload(), NeonSqrtWorkload::NeonSqrtWorkload(), NeonStackWorkload::NeonStackWorkload(), NeonStridedSliceWorkload::NeonStridedSliceWorkload(), NeonTransposeWorkload::NeonTransposeWorkload(), NeonUnidirectionalSequenceLstmFloatWorkload::NeonUnidirectionalSequenceLstmFloatWorkload(), NeonUnidirectionalSequenceLstmWorkload::NeonUnidirectionalSequenceLstmWorkload(), RefConvolution3dWorkload::RefConvolution3dWorkload(), and RefDepthwiseConvolution2dWorkload::RefDepthwiseConvolution2dWorkload().

◆ ARMNN_SCOPED_PROFILING_EVENT

#define ARMNN_SCOPED_PROFILING_EVENT (   backendId,
  name 
)    ARMNN_SCOPED_PROFILING_EVENT_WITH_INSTRUMENTS(backendId, armnn::EmptyOptional(), name, armnn::WallClockTimer())

Definition at line 220 of file Profiling.hpp.

Referenced by Graph::AllocateDynamicBuffers(), armnn::ApplyBackendOptimizations(), armnn::AssignBackends(), ClAbsWorkload::ClAbsWorkload(), ClActivationWorkload::ClActivationWorkload(), ClAdditionWorkload::ClAdditionWorkload(), ClArgMinMaxWorkload::ClArgMinMaxWorkload(), ClCastWorkload::ClCastWorkload(), ClComparisonWorkload::ClComparisonWorkload(), ClConcatWorkload::ClConcatWorkload(), ClConvertFp16ToFp32Workload::ClConvertFp16ToFp32Workload(), ClConvertFp32ToFp16Workload::ClConvertFp32ToFp16Workload(), ClConvolution2dWorkload::ClConvolution2dWorkload(), ClDequantizeWorkload::ClDequantizeWorkload(), ClDivisionWorkload::ClDivisionWorkload(), ClExpWorkload::ClExpWorkload(), ClFloorFloatWorkload::ClFloorFloatWorkload(), ClFullyConnectedWorkload::ClFullyConnectedWorkload(), ClGatherWorkload::ClGatherWorkload(), ClLogicalAndWorkload::ClLogicalAndWorkload(), ClLogicalNotWorkload::ClLogicalNotWorkload(), ClLogicalOrWorkload::ClLogicalOrWorkload(), ClLogSoftmaxWorkload::ClLogSoftmaxWorkload(), ClLogWorkload::ClLogWorkload(), ClMaximumWorkload::ClMaximumWorkload(), ClMinimumWorkload::ClMinimumWorkload(), ClMultiplicationWorkload::ClMultiplicationWorkload(), ClNegWorkload::ClNegWorkload(), ClPreluWorkload::ClPreluWorkload(), ClQuantizeWorkload::ClQuantizeWorkload(), ClReshapeWorkload::ClReshapeWorkload(), ClRsqrtWorkload::ClRsqrtWorkload(), ClSinWorkload::ClSinWorkload(), ClSliceWorkload::ClSliceWorkload(), ClSoftmaxWorkload::ClSoftmaxWorkload(), ClSplitterWorkload::ClSplitterWorkload(), ClSqrtWorkload::ClSqrtWorkload(), ClStackWorkload::ClStackWorkload(), ClSubtractionWorkload::ClSubtractionWorkload(), ClTransposeWorkload::ClTransposeWorkload(), armnn::CopyTensorContentsGeneric(), RuntimeImpl::CreateWorkingMemHandle(), Convolution2dLayer::CreateWorkload(), RuntimeImpl::EnqueueWorkload(), LoadedNetwork::EnqueueWorkload(), CopyMemGenericWorkload::Execute(), ImportMemGenericWorkload::Execute(), SyncMemGenericWorkload::Execute(), LoadedNetwork::Execute(), RuntimeImpl::Execute(), RefDepthToSpaceWorkload::ExecuteAsync(), RefStridedSliceWorkload::ExecuteAsync(), RefGatherNdWorkload::ExecuteAsync(), RefChannelShuffleWorkload::ExecuteAsync(), RefConcatWorkload::ExecuteAsync(), RefConvertBf16ToFp32Workload::ExecuteAsync(), RefConvertFp16ToFp32Workload::ExecuteAsync(), RefConvertFp32ToFp16Workload::ExecuteAsync(), RefPadWorkload::ExecuteAsync(), RefFakeQuantizationFloat32Workload::ExecuteAsync(), RefFillWorkload::ExecuteAsync(), RefFloorWorkload::ExecuteAsync(), RefLogSoftmaxWorkload::ExecuteAsync(), RefSpaceToBatchNdWorkload::ExecuteAsync(), RefReshapeWorkload::ExecuteAsync(), RefSpaceToDepthWorkload::ExecuteAsync(), RefConvertFp32ToBf16Workload::ExecuteAsync(), RefSoftmaxWorkload::ExecuteAsync(), RefActivationWorkload::ExecuteAsync(), RefResizeWorkload::ExecuteAsync(), RefBatchToSpaceNdWorkload::ExecuteAsync(), RefStackWorkload::ExecuteAsync(), CopyMemGenericWorkload::ExecuteAsync(), RefDepthwiseConvolution2dWorkload::ExecuteAsync(), RefInstanceNormalizationWorkload::ExecuteAsync(), RefBatchNormalizationWorkload::ExecuteAsync(), RefPreluWorkload::ExecuteAsync(), RefDequantizeWorkload::ExecuteAsync(), RefDetectionPostProcessWorkload::ExecuteAsync(), RefArgMinMaxWorkload::ExecuteAsync(), RefSliceWorkload::ExecuteAsync(), RefCastWorkload::ExecuteAsync(), RefSplitterWorkload::ExecuteAsync(), RefNormalizationWorkload::ExecuteAsync(), RefL2NormalizationWorkload::ExecuteAsync(), RefReduceWorkload::ExecuteAsync(), RefPooling3dWorkload::ExecuteAsync(), RefPooling2dWorkload::ExecuteAsync(), RefMeanWorkload::ExecuteAsync(), SyncMemGenericWorkload::ExecuteAsync(), RefLogicalUnaryWorkload::ExecuteAsync(), RefElementwiseUnaryWorkload::ExecuteAsync(), RefLogicalBinaryWorkload::ExecuteAsync(), RefBatchMatMulWorkload::ExecuteAsync(), RefConstantWorkload::ExecuteAsync(), RefComparisonWorkload::ExecuteAsync(), RefGatherWorkload::ExecuteAsync(), RefFullyConnectedWorkload::ExecuteAsync(), RefTransposeConvolution2dWorkload::ExecuteAsync(), RefElementwiseWorkload< Functor, ParentDescriptor, DebugString >::ExecuteAsync(), RefPermuteWorkload< DataType >::ExecuteAsync(), RefTransposeWorkload< DataType >::ExecuteAsync(), RefDebugWorkload< DataType >::ExecuteAsync(), LoadedNetwork::MakeLoadedNetwork(), armnn::Optimize(), Optimizer::Pass(), armnn::SelectTensorHandleStrategy(), LoadedNetwork::SendNetworkStructure(), and TEST_SUITE().

◆ ARMNN_SCOPED_PROFILING_EVENT_GUID

#define ARMNN_SCOPED_PROFILING_EVENT_GUID (   backendId,
  name,
  guid 
)    ARMNN_SCOPED_PROFILING_EVENT_WITH_INSTRUMENTS(backendId, guid, name, armnn::WallClockTimer())

◆ ARMNN_SCOPED_PROFILING_EVENT_WITH_INSTRUMENTS

#define ARMNN_SCOPED_PROFILING_EVENT_WITH_INSTRUMENTS (   backendId,
  guid,
  ... 
)    ARMNN_SCOPED_PROFILING_EVENT_WITH_INSTRUMENTS_UNIQUE_LOC(__LINE__,backendId, guid, /*name,*/ __VA_ARGS__)

Definition at line 217 of file Profiling.hpp.

Referenced by TEST_SUITE().

◆ ARMNN_SCOPED_PROFILING_EVENT_WITH_INSTRUMENTS_UNIQUE_LOC

#define ARMNN_SCOPED_PROFILING_EVENT_WITH_INSTRUMENTS_UNIQUE_LOC (   lineNumber,
  backendId,
  guid,
  ... 
)    ARMNN_SCOPED_PROFILING_EVENT_WITH_INSTRUMENTS_UNIQUE_LOC_INNER(lineNumber, backendId, guid, /*name,*/ __VA_ARGS__)

Definition at line 207 of file Profiling.hpp.

◆ ARMNN_SCOPED_PROFILING_EVENT_WITH_INSTRUMENTS_UNIQUE_LOC_INNER

#define ARMNN_SCOPED_PROFILING_EVENT_WITH_INSTRUMENTS_UNIQUE_LOC_INNER (   lineNumber,
  backendId,
  guid,
  ... 
)    armnn::ScopedProfilingEvent e_ ## lineNumber(backendId, guid, /*name,*/ __VA_ARGS__);

Definition at line 204 of file Profiling.hpp.