Compute Library
 19.08
IKernel Class Reference

Common information for all the kernels. More...

#include <IKernel.h>

Public Member Functions

 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 Windowwindow () const
 The maximum window the kernel can be executed on. More...
 

Detailed Description

Common information for all the kernels.

Definition at line 33 of file IKernel.h.

Constructor & Destructor Documentation

◆ IKernel()

IKernel ( )

Constructor.

Definition at line 33 of file IKernel.cpp.

34  : _window()
35 {
36  // Create an empty window to make sure the children classes set the window values themselves
37  _window.set(Window::DimX, Window::Dimension(0, 0, 1));
38  _window.set(Window::DimY, Window::Dimension(0, 0, 1));
39 }
Describe one of the image's dimensions with a start, end and step.
Definition: Window.h:75
static constexpr size_t DimX
Alias for dimension 0 also known as X dimension.
Definition: Window.h:43
void set(size_t dimension, const Dimension &dim)
Set the values of a given dimension.
Definition: Window.inl:48
static constexpr size_t DimY
Alias for dimension 1 also known as Y dimension.
Definition: Window.h:45

References Window::DimX, Window::DimY, and Window::set().

◆ ~IKernel()

virtual ~IKernel ( )
virtualdefault

Destructor.

Member Function Documentation

◆ border_size()

BorderSize border_size ( ) const
virtual

The size of the border for that kernel.

Returns
The width in number of elements of the border.

Reimplemented in NEConvolutionRectangleKernel, NEEdgeTraceKernel, CLConvolutionRectangleKernel, NEComplexPixelWiseMultiplicationKernel, NESeparableConvolutionVertKernel< matrix_size >, CLSeparableConvolutionVertKernel< matrix_size >, NEEdgeNonMaxSuppressionKernel, NESeparableConvolutionHorKernel< matrix_size >, CLComplexPixelWiseMultiplicationKernel, NESobel7x7VertKernel, NESobel5x5VertKernel, CLSobel5x5VertKernel, CLSobel7x7VertKernel, NELKTrackerKernel, CLSeparableConvolutionHorKernel< matrix_size >, NEGaussianPyramidVertKernel, CLEdgeNonMaxSuppressionKernel, NEScaleKernel, NEHarrisScoreKernel< block_size >, CLGaussianPyramidVertKernel, CLDirectConvolutionLayerKernel, NEArithmeticSubtractionKernel, CLWinogradInputTransformKernel, NEPixelWiseMultiplicationKernel, NEDepthwiseConvolutionLayerNativeKernel, NEDirectConvolutionLayerKernel, NEDepthwiseConvolutionLayer3x3Kernel, NENormalizationLayerKernel, CLPixelWiseMultiplicationKernel, NEGaussian5x5VertKernel, NEReductionOperationKernel, CLMeanStdDevKernel, CLReductionOperationKernel, CLScharr3x3Kernel, NEConvolutionKernel< matrix_size >, NEPoolingLayerKernel, NEScharr3x3Kernel, NESobel3x3Kernel, CLDepthwiseConvolutionLayer3x3NHWCKernel, CLDepthwiseConvolutionLayer3x3NCHWKernel, CLHarrisScoreKernel, CLScaleKernel, CLComparisonKernel, CLFastCornersKernel, CLPoolingLayerKernel, GCPoolingLayerKernel, CLNormalizationLayerKernel, NEGEMMMatrixVectorMultiplyKernel, NEMeanStdDevKernel, NENonMaximaSuppression3x3Kernel, NESobel5x5HorKernel, NESobel7x7HorKernel, NENonLinearFilterKernel, GCDirectConvolutionLayerKernel< kernel_size >, NEFastCornersKernel, NERemapKernel, CLConvolutionKernel< matrix_size >, CLGEMMMatrixVectorMultiplyKernel, NEDerivativeKernel, INEWarpKernel, CLSobel5x5HorKernel, CLSobel7x7HorKernel, GCNormalizationLayerKernel, NEGaussianPyramidHorKernel, CLDerivativeKernel, CLSobel3x3Kernel, GCDepthwiseConvolutionLayer3x3Kernel, CLRemapKernel, NELogits1DMaxKernel, CLElementwiseOperationKernel, CLGaussianPyramidHorKernel, CLNonLinearFilterKernel, NEGaussian5x5HorKernel, GCScaleKernel, NEGaussian3x3Kernel, NEMedian3x3Kernel, NEBox3x3Kernel, NEDilateKernel, NEErodeKernel, NEIntegralImageKernel, CLNonMaximaSuppression3x3Kernel, CLWarpAffineKernel, CLBox3x3Kernel, CLDilateKernel, CLErodeKernel, CLGaussian3x3Kernel, CLMedian3x3Kernel, and CLWarpPerspectiveKernel.

Definition at line 46 of file IKernel.cpp.

47 {
48  return BorderSize(0);
49 }
Container for 2D border size.
Definition: Types.h:259

Referenced by ICLSimpleKernel::configure(), IGCSimpleKernel::configure(), CLFillBorderKernel::configure(), GCFillBorderKernel::configure(), NEFillInnerBorderKernel::configure(), and NEFillBorderKernel::configure().

◆ is_parallelisable()

bool is_parallelisable ( ) const
virtual

Indicates whether or not the kernel is parallelisable.

If the kernel is parallelisable then the window returned by window() can be split into sub-windows which can then be run in parallel.

If the kernel is not parallelisable then only the window returned by window() can be passed to run()

Returns
True if the kernel is parallelisable

Reimplemented in NEWinogradLayerTransformWeightsKernel< T, OutputTileRows, OutputTileCols, KernelRows, KernelCols >, NEEdgeTraceKernel, NEMinMaxLocationKernel, NEChannelCombineKernel, CPPTopKVKernel, CPPBoxWithNonMaximaSuppressionLimitKernel, NECumulativeDistributionKernel, CLFillBorderKernel, GCFillBorderKernel, NEFillArrayKernel, CPPDetectionWindowNonMaximaSuppressionKernel, CPPUpsampleKernel, CPPSortEuclideanDistanceKernel, and NEIntegralImageKernel.

Definition at line 41 of file IKernel.cpp.

42 {
43  return true;
44 }

Referenced by OMPScheduler::schedule(), and CPPScheduler::schedule().

◆ window()

const Window & window ( ) const

The maximum window the kernel can be executed on.

Returns
The maximum window the kernel can be executed on.

Definition at line 28 of file IKernel.cpp.

29 {
30  return _window;
31 }

Referenced by ICLKernel::add_1D_array_argument(), IGCKernel::add_1D_tensor_argument(), ICLKernel::add_1D_tensor_argument(), ICLKernel::add_1D_tensor_argument_if(), IGCKernel::add_2D_tensor_argument(), ICLKernel::add_2D_tensor_argument(), ICLKernel::add_2D_tensor_argument_if(), IGCKernel::add_3D_tensor_argument(), ICLKernel::add_3D_tensor_argument(), ICLKernel::add_4D_tensor_argument(), ICLKernel::add_array_argument(), ICLKernel::add_tensor_argument(), CLDepthConvertLayerKernel::configure(), CLMemsetKernel::configure(), NEROIPoolingLayerKernel::configure(), CLLKTrackerInitKernel::configure(), CLLKTrackerFinalizeKernel::configure(), CLLKTrackerStage0Kernel::configure(), CLLKTrackerStage1Kernel::configure(), arm_compute::test::validation::DATA_TEST_CASE(), GCScheduler::dispatch(), CLScheduler::enqueue(), arm_compute::error_on_unconfigured_kernel(), ICLKernel::gws_from_window(), IGCSimple2DKernel::run(), ICLSimple2DKernel::run(), IGCSimple3DKernel::run(), ICLSimple3DKernel::run(), NEIntegralImageKernel::run(), GCTransposeKernel::run(), NEBox3x3Kernel::run(), NEDilateKernel::run(), NEErodeKernel::run(), NEMedian3x3Kernel::run(), GCScaleKernel::run(), NEGaussian3x3Kernel::run(), NEGaussian5x5HorKernel::run(), GCGEMMMatrixAccumulateBiasesKernel::run(), NEAccumulateKernel::run(), CLElementwiseOperationKernel::run(), CLElementWiseUnaryLayerKernel::run(), NEFloorKernel::run(), NEReshapeLayerKernel::run(), CLGaussianPyramidHorKernel::run(), CLGradientKernel::run(), CLHistogramKernel::run(), CLBitwiseAndKernel::run(), CLBitwiseOrKernel::run(), NELogits1DMaxKernel::run(), CLBitwiseXorKernel::run(), CLMinMaxKernel::run(), CLRemapKernel::run(), CLSobel3x3Kernel::run(), NETableLookupKernel::run(), GCActivationLayerKernel::run(), GCDepthwiseConvolutionLayer3x3Kernel::run(), GCPixelWiseMultiplicationKernel::run(), CLDerivativeKernel::run(), NEElementwiseOperationKernel::run(), CLSobel5x5HorKernel::run(), CLSobel7x7HorKernel::run(), CPPFlipWeightsKernel::run(), INEWarpKernel::run(), CLHOGOrientationBinningKernel::run(), GCGEMMMatrixAdditionKernel::run(), GCNormalizationLayerKernel::run(), NEGaussianPyramidHorKernel::run(), CPPSortEuclideanDistanceKernel::run(), GCAbsoluteDifferenceKernel::run(), NEBitwiseNotKernel::run(), CLAbsoluteDifferenceKernel::run(), NEMemsetKernel::run(), CLGEMMMatrixAccumulateBiasesKernel::run(), GCGEMMTranspose1xWKernel::run(), NEBitwiseAndKernel::run(), NEBitwiseOrKernel::run(), NEBitwiseXorKernel::run(), CPPUpsampleKernel::run(), CLGEMMMatrixVectorMultiplyKernel::run(), CLDequantizationLayerKernel::run(), CLMagnitudePhaseKernel::run(), CLFloorKernel::run(), NEDerivativeKernel::run(), NEHOGOrientationBinningKernel::run(), NERemapKernel::run(), GCDepthConcatenateLayerKernel::run(), NEFastCornersKernel::run(), NENonLinearFilterKernel::run(), CPPDetectionWindowNonMaximaSuppressionKernel::run(), NEThresholdKernel::run(), CLDepthwiseConvolutionLayerReshapeWeightsKernel::run(), CLIntegralImageVertKernel::run(), NEAbsoluteDifferenceKernel::run(), CLChannelShuffleLayerKernel::run(), CLFlattenLayerKernel::run(), CLReshapeLayerKernel::run(), CLROIPoolingLayerKernel::run(), NEGEMMMatrixAccumulateBiasesKernel::run(), CLCopyKernel::run(), CLSpaceToDepthLayerKernel::run(), NEMagnitudePhaseKernel< mag_type, phase_type >::run(), NENonMaximaSuppression3x3Kernel::run(), NESobel5x5HorKernel::run(), NESobel7x7HorKernel::run(), CLDepthToSpaceLayerKernel::run(), NECopyKernel::run(), CLPermuteKernel::run(), CLQuantizationLayerKernel::run(), NEFillArrayKernel::run(), NEFillInnerBorderKernel::run(), CLReverseKernel::run(), CLDeconvolutionLayerUpsampleKernel::run(), NELocallyConnectedMatrixMultiplyKernel::run(), NEMeanStdDevKernel::run(), NEFillBorderKernel::run(), NETileKernel::run(), CLComputeAllAnchorsKernel::run(), GCDropoutLayerKernel::run(), GCLogits1DShiftExpSumKernel::run(), CLLocallyConnectedMatrixMultiplyKernel::run(), NEGradientKernel::run(), NEDequantizationLayerKernel::run(), NEGEMMMatrixVectorMultiplyKernel::run(), NEHOGDetectorKernel::run(), NEMinMaxKernel::run(), CLUpsampleLayerKernel::run(), CPPCornerCandidatesKernel::run(), GCDirectConvolutionLayerKernel< kernel_size >::run(), GCFillBorderKernel::run(), CLChannelExtractKernel::run(), CLMemsetKernel::run(), CLFillBorderKernel::run(), CLNormalizationLayerKernel::run(), CLFFTScaleKernel::run(), CLWidthConcatenate2TensorsKernel::run(), NEPriorBoxLayerKernel::run(), CLTileKernel::run(), CLGEMMMatrixAdditionKernel::run(), CLDepthwiseConvolutionLayerReshapeWeightsGenericKernel::run(), GCPoolingLayerKernel::run(), CLFastCornersKernel::run(), CLMeanStdDevNormalizationKernel::run(), NECumulativeDistributionKernel::run(), NEDepthToSpaceLayerKernel::run(), CLActivationLayerKernel::run(), CLPoolingLayerKernel::run(), CLGatherKernel::run(), CLComparisonKernel::run(), CPPBoxWithNonMaximaSuppressionLimitKernel::run(), CLWidthConcatenateLayerKernel::run(), NEReverseKernel::run(), NEROIPoolingLayerKernel::run(), NESpaceToDepthLayerKernel::run(), CLDepthwiseConvolutionLayer3x3NCHWKernel::run(), CLHarrisScoreKernel::run(), CLHeightConcatenateLayerKernel::run(), CLDepthwiseVectorToTensorKernel::run(), NEChannelShuffleLayerKernel::run(), CLFFTDigitReverseKernel::run(), CLMinMaxLayerKernel::run(), CLReorgLayerKernel::run(), NEQuantizationLayerKernel::run(), CLDepthwiseConvolutionLayer3x3NHWCKernel::run(), GCGEMMInterleave4x4Kernel::run(), CLHOGDetectorKernel::run(), CLChannelCombineKernel::run(), CLPriorBoxLayerKernel::run(), CLScaleKernel::run(), NEFFTScaleKernel::run(), NEUpsampleLayerKernel::run(), NETransposeKernel::run(), GCArithmeticAdditionKernel::run(), CLConvertFullyConnectedWeightsKernel::run(), CLNormalizePlanarYUVLayerKernel::run(), CLRangeKernel::run(), NEFlattenLayerKernel::run(), CLScharr3x3Kernel::run(), CLBatchConcatenateLayerKernel::run(), CLSelectKernel::run(), NEDepthwiseVectorToTensorKernel::run(), CLDepthConcatenateLayerKernel::run(), CLWidthConcatenate4TensorsKernel::run(), NEReorgLayerKernel::run(), NEScharr3x3Kernel::run(), CPPPermuteKernel::run(), GCNormalizePlanarYUVLayerKernel::run(), CPPTopKVKernel::run(), NEChannelExtractKernel::run(), CLMeanStdDevKernel::run(), NESobel3x3Kernel::run(), NEConvolutionKernel< matrix_size >::run(), NEDepthwiseWeightsReshapeKernel::run(), NEPoolingLayerKernel::run(), NEHeightConcatenateLayerKernel::run(), CLBoundingBoxTransformKernel::run(), CLReductionOperationKernel::run(), GCTensorShiftKernel::run(), NEWidthConcatenateLayerKernel::run(), NEFFTDigitReverseKernel::run(), NEGEMMInterleave4x4Kernel::run(), NEReductionOperationKernel::run(), CLPixelWiseMultiplicationKernel::run(), NEYOLOLayerKernel::run(), NEGaussian5x5VertKernel::run(), NEChannelCombineKernel::run(), NEConvertFullyConnectedWeightsKernel::run(), NENormalizationLayerKernel::run(), CLCropKernel::run(), CLL2NormalizeLayerKernel::run(), NEActivationLayerKernel::run(), NEBatchConcatenateLayerKernel::run(), CLYOLOLayerKernel::run(), NERangeKernel::run(), NEDepthConcatenateLayerKernel::run(), CLGEMMLowpMatrixMultiplyKernel::run(), NEElementwiseUnaryKernel::run(), NEMeanStdDevNormalizationKernel::run(), CLGEMMReshapeRHSMatrixKernel::run(), NEPermuteKernel::run(), CLFFTRadixStageKernel::run(), CLGEMMLowpMatrixMultiplyNativeKernel::run(), CLStackLayerKernel::run(), NEGEMMMatrixAdditionKernel::run(), NEGatherKernel::run(), CLDirectConvolutionLayerOutputStageKernel::run(), NEGEMMLowpMatrixMultiplyKernel::run(), NESelectKernel::run(), NEMinMaxLayerKernel::run(), CLGEMMReshapeLHSMatrixKernel::run(), GCWeightsReshapeKernel::run(), CLColorConvertKernel::run(), NEDepthwiseConvolutionLayer3x3Kernel::run(), GCCol2ImKernel::run(), CLDepthwiseIm2ColKernel::run(), NEFFTRadixStageKernel::run(), NEDepthConvertLayerKernel::run(), CLROIAlignLayerKernel::run(), NEHistogramKernel::run(), CLGEMMLowpMatrixAReductionKernel::run(), GCGEMMMatrixMultiplyKernel::run(), GCIm2ColKernel::run(), CPPNonMaximumSuppressionKernel::run(), NEColorConvertKernel::run(), NEStackLayerKernel::run(), NEDirectConvolutionLayerOutputStageKernel::run(), NEAccumulateWeightedKernel::run(), NEGEMMMatrixMultiplyKernel::run(), CLGEMMLowpMatrixMultiplyReshapedOnlyRHSKernel::run(), NEDirectConvolutionLayerKernel::run(), NEDepthwiseConvolutionLayerNativeKernel::run(), GCBatchNormalizationLayerKernel::run(), NEPixelWiseMultiplicationKernel::run(), CLDeconvolutionReshapeOutputKernel::run(), CLGEMMLowpQuantizeDownInt32ToInt16ScaleByFixedPointKernel::run(), CLBatchToSpaceLayerKernel::run(), CLGEMMLowpQuantizeDownInt32ToUint8ScaleByFloatKernel::run(), CLWinogradInputTransformKernel::run(), NEArithmeticAdditionKernel::run(), CLCol2ImKernel::run(), CLGEMMLowpQuantizeDownInt32ToUint8ScaleByFixedPointKernel::run(), CLGEMMLowpQuantizeDownInt32ToUint8ScaleKernel::run(), NEArithmeticSubtractionKernel::run(), NEDepthwiseIm2ColKernel::run(), CLDirectConvolutionLayerKernel::run(), CLWinogradFilterTransformKernel::run(), NEBatchToSpaceLayerKernel::run(), CLGEMMLowpOffsetContributionOutputStageKernel::run(), CLBatchNormalizationLayerKernel::run(), NEGEMMLowpQuantizeDownInt32ToInt16ScaleByFixedPointKernel::run(), NEGEMMLowpOffsetContributionKernel::run(), CLGEMMLowpOffsetContributionKernel::run(), CLStridedSliceKernel::run(), CLHistogramBorderKernel::run(), CLGaussianPyramidVertKernel::run(), NEGEMMTranspose1xWKernel::run(), CLGEMMLowpMatrixMultiplyReshapedKernel::run(), CLGEMMMatrixMultiplyKernel::run(), CLGEMMMatrixMultiplyNativeKernel::run(), CLFuseBatchNormalizationKernel::run(), NEBatchNormalizationLayerKernel::run(), NEGEMMLowpQuantizeDownInt32ToUint8ScaleKernel::run(), NEGEMMLowpQuantizeDownInt32ToUint8ScaleByFixedPointKernel::run(), CLSpaceToBatchLayerKernel::run(), CLLKTrackerInitKernel::run(), NECol2ImKernel::run(), CLWinogradOutputTransformKernel::run(), NECropKernel::run(), NEStridedSliceKernel::run(), CLGEMMMatrixMultiplyReshapedOnlyRHSKernel::run(), NEScaleKernel::run(), CLEdgeNonMaxSuppressionKernel::run(), NEFuseBatchNormalizationKernel::run(), NESpaceToBatchLayerKernel::run(), NEHarrisScoreKernel< block_size >::run(), NEGEMMLowpMatrixAReductionKernel::run(), CLHOGBlockNormalizationKernel::run(), CLMinMaxLocationKernel::run(), NEGaussianPyramidVertKernel::run(), NEWeightsReshapeKernel::run(), CLWeightsReshapeKernel::run(), CLIm2ColKernel::run(), GCLogits1DNormKernel::run(), CLGEMMMatrixMultiplyReshapedKernel::run(), CLSobel7x7VertKernel::run(), CLSobel5x5VertKernel::run(), CLCopyToArrayKernel::run(), CLLKTrackerFinalizeKernel::run(), NEIm2ColKernel::run(), CLGEMMLowpMatrixBReductionKernel::run(), NESobel5x5VertKernel::run(), NEGEMMLowpOffsetContributionOutputStageKernel::run(), NELogits1DSoftmaxKernel::run(), CLComplexPixelWiseMultiplicationKernel::run(), NESobel7x7VertKernel::run(), NESeparableConvolutionHorKernel< matrix_size >::run(), NEHOGBlockNormalizationKernel::run(), NEEdgeNonMaxSuppressionKernel::run(), NEGEMMLowpMatrixBReductionKernel::run(), NEAccumulateSquaredKernel::run(), CLEdgeTraceKernel::run(), NEMinMaxLocationKernel::run(), CLLKTrackerStage0Kernel::run(), CLLogits1DMaxShiftExpSumKernel::run(), NESeparableConvolutionVertKernel< matrix_size >::run(), NEComplexPixelWiseMultiplicationKernel::run(), CLConvolutionRectangleKernel::run(), NEEdgeTraceKernel::run(), CLLKTrackerStage1Kernel::run(), CLLogits1DNormKernel::run(), NEConvolutionRectangleKernel::run(), SingleThreadScheduler::schedule(), OMPScheduler::schedule(), CPPScheduler::schedule(), and CLMemsetKernel::validate().


The documentation for this class was generated from the following files: