21.02
|
Common interface for all kernels implemented in C++. More...
#include <ICPPKernel.h>
Public Member Functions | |
virtual | ~ICPPKernel ()=default |
Default destructor. More... | |
virtual void | run (const Window &window, const ThreadInfo &info) |
Execute the kernel on the passed window. More... | |
virtual void | run_nd (const Window &window, const ThreadInfo &info, const Window &thread_locator) |
legacy compatibility layer for implemantions which do not support thread_locator In these cases we simply narrow the interface down the legacy version More... | |
virtual void | run_op (ITensorPack &tensors, const Window &window, const ThreadInfo &info) |
Execute the kernel on the passed window. More... | |
virtual const char * | name () const =0 |
Name of the kernel. More... | |
Public Member Functions inherited from IKernel | |
IKernel () | |
Constructor. More... | |
virtual | ~IKernel ()=default |
Destructor. More... | |
virtual bool | is_parallelisable () const |
Indicates whether or not the kernel is parallelisable. More... | |
virtual BorderSize | border_size () const |
The size of the border for that kernel. More... | |
const Window & | window () const |
The maximum window the kernel can be executed on. More... | |
Common interface for all kernels implemented in C++.
Definition at line 38 of file ICPPKernel.h.
|
virtualdefault |
Default destructor.
|
pure virtual |
Name of the kernel.
Implemented in NEWinogradLayerTransformWeightsKernel< T, OutputTileRows, OutputTileCols, KernelRows, KernelCols >, NEWinogradLayerTransformOutputKernel< T, OutputTileRows, OutputTileCols, KernelRows, KernelCols >, NEConvolutionRectangleKernel, NESeparableConvolutionVertKernel< matrix_size >, NEWinogradLayerTransformInputKernel< T, OutputTileRows, OutputTileCols, KernelRows, KernelCols >, NEComplexPixelWiseMultiplicationKernel, NEEdgeTraceKernel, NEAccumulateSquaredKernel, NEGEMMLowpMatrixBReductionKernel, NESeparableConvolutionHorKernel< matrix_size >, NEMinMaxLocationKernel, CpuLogits1DSoftmaxKernel< IS_LOG >, NEEdgeNonMaxSuppressionKernel, NEHOGBlockNormalizationKernel, CpuSubKernel, NEHarrisScoreKernel< block_size >, NESobel5x5VertKernel, NESobel7x7VertKernel, NEAccumulateWeightedKernel, NEGEMMLowpMatrixAReductionKernel, CpuAddKernel, NEGaussian5x5VertKernel, NEGaussianPyramidVertKernel, NEGEMMTranspose1xWKernel, CpuConcatenateDepthKernel, CpuPoolingKernel, CpuFloorKernel, CpuConcatenateBatchKernel, CpuActivationKernel, CpuPermuteKernel, NEGEMMLowpOffsetContributionOutputStageKernel, NELogicalKernel, CpuConcatenateHeightKernel, CpuConcatenateWidthKernel, CpuCopyKernel, CpuReshapeKernel, CpuLogits1DMaxKernel, NEIm2ColKernel, NEWeightsReshapeKernel, CpuPoolingAssemblyWrapperKernel, NEConvolutionKernel< matrix_size >, NEGatherKernel, NECol2ImKernel, NEGEMMInterleave4x4Kernel, CpuFillKernel, NEGEMMLowpQuantizeDownInt32ScaleKernel, NEGEMMLowpOffsetContributionKernel, NEGEMMLowpQuantizeDownInt32ToInt8ScaleByFixedPointKernel, NEGEMMLowpQuantizeDownInt32ToUint8ScaleByFixedPointKernel, NETileKernel, NEGEMMLowpQuantizeDownInt32ToInt16ScaleByFixedPointKernel, CpuElementwiseUnaryKernel, NECumulativeDistributionKernel, NELKTrackerKernel, CpuElementwiseKernel, NEGEMMLowpMatrixMultiplyKernel, NEScharr3x3Kernel, NESobel3x3Kernel, CPPCornerCandidatesKernel, NEConvertFullyConnectedWeightsKernel, NEDepthwiseConvolutionLayerNativeKernel, NEGEMMMatrixAdditionKernel, NESelectKernel, NEAccumulateKernel, NEHistogramKernel, NEReductionOperationKernel, CPPDetectionWindowNonMaximaSuppressionKernel, NEChannelCombineKernel, NEDirectConvolutionLayerOutputStageKernel, NEFFTRadixStageKernel, NEFillArrayKernel, NEGEMMMatrixMultiplyKernel, NEMinMaxKernel, NENonMaximaSuppression3x3Kernel, NERangeKernel, CPPNonMaximumSuppressionKernel, NEAbsoluteDifferenceKernel, NEBitwiseAndKernel, NEBitwiseNotKernel, NEBitwiseOrKernel, NEBitwiseXorKernel, NEFastCornersKernel, NEMeanStdDevKernel, NEMeanStdDevNormalizationKernel, NEMinMaxLayerKernel, NEQuantizationLayerKernel, NEStridedSliceKernel, NETransposeKernel, CPPPermuteKernel, NEChannelExtractKernel, NECropKernel, NEFFTScaleKernel, NEFillBorderKernel, NEHOGDetectorKernel, NENonLinearFilterKernel, NEPadLayerKernel, CPPSortEuclideanDistanceKernel, CPPUpsampleKernel, NEBatchNormalizationLayerKernel, NEGradientKernel, NEColorConvertKernel, NEConvertQuantizedSignednessKernel, NEDepthConvertLayerKernel, NEDerivativeKernel, NEFFTDigitReverseKernel, NEHOGOrientationBinningKernel, NEMagnitudePhaseKernel< mag_type, phase_type >, NEROIPoolingLayerKernel, NESobel5x5HorKernel, NESobel7x7HorKernel, NESpaceToBatchLayerKernel, NEStackLayerKernel, NEThresholdKernel, CPPBoxWithNonMaximaSuppressionLimitKernel, NEChannelShuffleLayerKernel, NEDepthToSpaceLayerKernel, NEFuseBatchNormalizationKernel, NEInstanceNormalizationLayerKernel, NENormalizationLayerKernel, NEPixelWiseMultiplicationKernel, NEQLSTMLayerNormalizationKernel, NERemapKernel, NEReorgLayerKernel, NEROIAlignLayerKernel, NEScaleKernel, NESpaceToDepthLayerKernel, NETableLookupKernel, CPPTopKVKernel, NEBatchToSpaceLayerKernel, NEBoundingBoxTransformKernel, NEBox3x3Kernel, NEDequantizationLayerKernel, NEDilateKernel, NEDirectConvolutionLayerKernel, NEErodeKernel, NEGaussian3x3Kernel, NEGaussian5x5HorKernel, NEGaussianPyramidHorKernel, NEIntegralImageKernel, NEL2NormalizeLayerKernel, NEMaxUnpoolingLayerKernel, NEMedian3x3Kernel, NEPriorBoxLayerKernel, NEReverseKernel, and NEComputeAllAnchorsKernel.
Referenced by SchedulerClock< output_timestamps >::id(), and ICPPKernel::run_op().
|
inlinevirtual |
Execute the kernel on the passed window.
[in] | window | Region on which to execute the kernel. (Must be a region of the window returned by window()) |
[in] | info | Info about executing thread and CPU. |
Reimplemented in NEWinogradLayerTransformWeightsKernel< T, OutputTileRows, OutputTileCols, KernelRows, KernelCols >, NEWinogradLayerTransformOutputKernel< T, OutputTileRows, OutputTileCols, KernelRows, KernelCols >, NEConvolutionRectangleKernel, NESeparableConvolutionVertKernel< matrix_size >, NEWinogradLayerTransformInputKernel< T, OutputTileRows, OutputTileCols, KernelRows, KernelCols >, NEGEMMLowpMatrixBReductionKernel, NEEdgeTraceKernel, NEAccumulateSquaredKernel, NESeparableConvolutionHorKernel< matrix_size >, NEMinMaxLocationKernel, NEEdgeNonMaxSuppressionKernel, NEHOGBlockNormalizationKernel, NEGEMMLowpMatrixAReductionKernel, NEGEMMLowpOffsetContributionOutputStageKernel, NESobel7x7VertKernel, NESobel5x5VertKernel, NEIm2ColKernel, NEAccumulateWeightedKernel, NEGEMMTranspose1xWKernel, NEWeightsReshapeKernel, NEGaussian5x5VertKernel, NEGaussianPyramidVertKernel, NEDepthwiseConvolutionLayerNativeKernel, NESpaceToBatchLayerKernel, NEFuseBatchNormalizationKernel, NEHarrisScoreKernel< block_size >, NEGEMMLowpQuantizeDownInt32ToInt8ScaleByFixedPointKernel, NEGEMMLowpQuantizeDownInt32ToUint8ScaleByFixedPointKernel, NEBatchNormalizationLayerKernel, NECol2ImKernel, NEGEMMLowpOffsetContributionKernel, NEGEMMLowpQuantizeDownInt32ToInt16ScaleByFixedPointKernel, NECropKernel, NELKTrackerKernel, NEBatchToSpaceLayerKernel, NEGEMMLowpQuantizeDownInt32ScaleKernel, NEROIAlignLayerKernel, NEDepthConvertLayerKernel, NEGEMMInterleave4x4Kernel, NEDirectConvolutionLayerOutputStageKernel, NEConvolutionKernel< matrix_size >, NEDirectConvolutionLayerKernel, NEGEMMMatrixMultiplyKernel, NEScaleKernel, CPPNonMaximumSuppressionKernel, NEColorConvertKernel, NEHistogramKernel, NEStackLayerKernel, NEBoundingBoxTransformKernel, NEFFTRadixStageKernel, NEGEMMLowpMatrixMultiplyKernel, NEPadLayerKernel, NEReductionOperationKernel, NEGEMMMatrixAdditionKernel, NESelectKernel, NEFillBorderKernel, NEGatherKernel, NEMinMaxLayerKernel, NEL2NormalizeLayerKernel, NEConvertFullyConnectedWeightsKernel, NEMeanStdDevNormalizationKernel, NEChannelCombineKernel, NEMaxUnpoolingLayerKernel, NENormalizationLayerKernel, NERangeKernel, NEFFTDigitReverseKernel, CPPPermuteKernel, CPPTopKVKernel, NEQuantizationLayerKernel, NEReorgLayerKernel, NEScharr3x3Kernel, NESobel3x3Kernel, NEFFTScaleKernel, NEComputeAllAnchorsKernel, NEInstanceNormalizationLayerKernel, NEQLSTMLayerNormalizationKernel, NETransposeKernel, NEChannelExtractKernel, NECumulativeDistributionKernel, NEPriorBoxLayerKernel, NEThresholdKernel, NEChannelShuffleLayerKernel, NEDepthToSpaceLayerKernel, NEReverseKernel, NEROIPoolingLayerKernel, NESpaceToDepthLayerKernel, CPPCornerCandidatesKernel, NEConvertQuantizedSignednessKernel, NETileKernel, CPPBoxWithNonMaximaSuppressionLimitKernel, NEHOGDetectorKernel, NEMinMaxKernel, CPPDetectionWindowNonMaximaSuppressionKernel, NEGradientKernel, NEDequantizationLayerKernel, NEMeanStdDevKernel, NENonLinearFilterKernel, NEFastCornersKernel, NEFillArrayKernel, NEMagnitudePhaseKernel< mag_type, phase_type >, NENonMaximaSuppression3x3Kernel, NESobel5x5HorKernel, NESobel7x7HorKernel, NEAbsoluteDifferenceKernel, NEAccumulateKernel, NEDerivativeKernel, NEBitwiseAndKernel, NEBitwiseOrKernel, NEBitwiseXorKernel, NEHOGOrientationBinningKernel, NERemapKernel, CPPUpsampleKernel, NEBitwiseNotKernel, INEWarpKernel, CPPSortEuclideanDistanceKernel, NEGaussian5x5HorKernel, NETableLookupKernel, NEGaussian3x3Kernel, NEGaussianPyramidHorKernel, NEMedian3x3Kernel, NEBox3x3Kernel, NEDilateKernel, NEErodeKernel, and NEIntegralImageKernel.
Definition at line 55 of file ICPPKernel.h.
References ARM_COMPUTE_ERROR, and ARM_COMPUTE_UNUSED.
Referenced by NEGEMMLowpMatrixAReductionKernel::name(), NEHarrisScoreKernel< block_size >::name(), NEGEMMLowpMatrixBReductionKernel::name(), NEWinogradLayerTransformInputKernel< T, OutputTileRows, OutputTileCols, KernelRows, KernelCols >::name(), NEWinogradLayerTransformOutputKernel< T, OutputTileRows, OutputTileCols, KernelRows, KernelCols >::name(), NEWinogradLayerTransformWeightsKernel< T, OutputTileRows, OutputTileCols, KernelRows, KernelCols >::name(), IScheduler::num_threads_hint(), ICPPKernel::run_nd(), and SingleThreadScheduler::schedule().
|
inlinevirtual |
legacy compatibility layer for implemantions which do not support thread_locator In these cases we simply narrow the interface down the legacy version
[in] | window | Region on which to execute the kernel. (Must be a region of the window returned by window()) |
[in] | info | Info about executing thread and CPU. |
[in] | thread_locator | Specifies "where" the current thread is in the multi-dimensional space |
Definition at line 68 of file ICPPKernel.h.
References ARM_COMPUTE_UNUSED, and ICPPKernel::run().
Referenced by IScheduler::num_threads_hint().
|
inlinevirtual |
Execute the kernel on the passed window.
[in] | tensors | A vector containing the tensors to operate on. |
[in] | window | Region on which to execute the kernel. (Must be a region of the window returned by window()) |
[in] | info | Info about executing thread and CPU. |
Reimplemented in NEComplexPixelWiseMultiplicationKernel, NEPixelWiseMultiplicationKernel, CpuLogits1DSoftmaxKernel< IS_LOG >, NEStridedSliceKernel, CpuSubKernel, CpuPoolingAssemblyWrapperKernel, NEFillBorderKernel, CpuAddKernel, CpuElementwiseUnaryKernel, CpuConcatenateDepthKernel, CpuPoolingKernel, CpuFloorKernel, CpuConcatenateBatchKernel, CpuActivationKernel, CpuElementwiseKernel, CpuPermuteKernel, NELogicalKernel, CpuConcatenateHeightKernel, CpuConcatenateWidthKernel, CpuCopyKernel, CpuReshapeKernel, CpuLogits1DMaxKernel, and CpuFillKernel.
Definition at line 86 of file ICPPKernel.h.
References ARM_COMPUTE_UNUSED, and ICPPKernel::name().
Referenced by IScheduler::num_threads_hint(), SingleThreadScheduler::schedule_op(), and OMPScheduler::schedule_op().