Compute Library
18.03
|
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)=0 |
Execute the kernel on the passed window. More... | |
virtual const char * | name () const =0 |
Name of the kernel. More... | |
![]() | |
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 35 of file ICPPKernel.h.
|
virtualdefault |
Default destructor.
|
pure virtual |
Name of the kernel.
Implemented in NEWinogradLayerBatchedGEMMKernel< TIn, TOut, OutputTileRows, OutputTileCols, KernelRows, KernelCols >, NEWinogradLayerTransformWeightsKernel< T, OutputTileRows, OutputTileCols, KernelRows, KernelCols >, NEConvolutionRectangleKernel, NEWinogradLayerTransformOutputKernel< T, OutputTileRows, OutputTileCols, KernelRows, KernelCols >, NEEdgeTraceKernel, NESeparableConvolutionVertKernel< matrix_size >, NEAccumulateSquaredKernel, NEEdgeNonMaxSuppressionKernel, NEWinogradLayerTransformInputKernel< T, OutputTileRows, OutputTileCols, KernelRows, KernelCols >, NEMinMaxLocationKernel, NEGEMMLowpMatrixBReductionKernel, NESeparableConvolutionHorKernel< matrix_size >, NEHOGBlockNormalizationKernel, NEHarrisScoreKernel< block_size >, NESobel5x5VertKernel, NESobel7x7VertKernel, NELogits1DSoftmaxKernel, NEGaussianPyramidVertKernel, NEGEMMLowpMatrixAReductionKernel, NEGEMMTranspose1xWKernel, NEAccumulateWeightedKernel, NEGaussian5x5VertKernel, NEIm2ColKernel, NEWeightsReshapeKernel, NEConvolutionKernel< matrix_size >, NECol2ImKernel, NEGEMMInterleave4x4Kernel, NELKTrackerKernel, NEGEMMLowpOffsetContributionKernel, NEGEMMLowpQuantizeDownInt32ToUint8ScaleByFixedPointKernel, NEGEMMLowpQuantizeDownInt32ToUint8ScaleKernel, NECumulativeDistributionKernel, NEGEMMLowpMatrixMultiplyKernel, NEScharr3x3Kernel, NESobel3x3Kernel, NEGEMMMatrixAdditionKernel, CPPCornerCandidatesKernel, NEAccumulateKernel, NEActivationLayerKernel, NEDepthwiseVectorToTensorKernel, NEHistogramKernel, CPPDetectionWindowNonMaximaSuppressionKernel, NEChannelCombineKernel, NEChannelExtractKernel, NEFillArrayKernel, NEGEMMInterleaveBlockedKernel, NEGEMMMatrixMultiplyKernel, NEMinMaxKernel, NENonMaximaSuppression3x3Kernel, NEThresholdKernel, NEAbsoluteDifferenceKernel, NEBitwiseAndKernel, NEBitwiseNotKernel, NEBitwiseOrKernel, NEBitwiseXorKernel, NEDepthwiseIm2ColKernel, NEDequantizationLayerKernel, NEFastCornersKernel, NEMeanStdDevKernel, NEMinMaxLayerKernel, NEQuantizationLayerKernel, NETransposeKernel, CPPPermuteKernel, NEGEMMLowpAArch64A53Kernel, NEGEMMLowpAArch64Kernel, NEGEMMLowpAArch64V8P4Kernel, NEDepthConcatenateLayerKernel, NEDepthConvertLayerKernel, NEDepthwiseConvolutionLayer3x3Kernel, NEDepthwiseWeightsReshapeKernel, NEHOGDetectorKernel, NENonLinearFilterKernel, NEPermuteKernel, CPPSortEuclideanDistanceKernel, NEGradientKernel, NEColorConvertKernel, NEDerivativeKernel, NEDirectConvolutionLayerOutputStageKernel, NEFillBorderKernel, NEFillInnerBorderKernel, NEHOGOrientationBinningKernel, NEMagnitudePhaseKernel< mag_type, phase_type >, NEROIPoolingLayerKernel, NESobel5x5HorKernel, NESobel7x7HorKernel, NEArithmeticAdditionKernel, NEArithmeticSubtractionKernel, NEBatchNormalizationLayerKernel, NENormalizationLayerKernel, NEPixelWiseMultiplicationKernel, NERemapKernel, NEScaleKernel, NELogits1DMaxKernel, NETableLookupKernel, NEGEMMAArch32Kernel, NEGEMMAArch64Kernel, NEGEMMAArch64NativeKernel, NEGEMVAArch64Kernel, NEHGEMMAArch64FP16Kernel, NEBox3x3Kernel, NEDilateKernel, NEDirectConvolutionLayerKernel, NEErodeKernel, NEFloorKernel, NEGaussian3x3Kernel, NEGaussian5x5HorKernel, NEGaussianPyramidHorKernel, NEGEMMAssemblyBaseKernel, NEIntegralImageKernel, NEL2NormalizeLayerKernel, NELocallyConnectedMatrixMultiplyKernel, NEMedian3x3Kernel, NEPoolingLayerKernel, NEReductionOperationKernel, NEReshapeLayerKernel, NEGEMMMatrixAccumulateBiasesKernel, and NEGEMMMatrixVectorMultiplyKernel.
Referenced by SchedulerTimer::id(), and NEHarrisScoreKernel< block_size >::name().
|
pure virtual |
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. |
Implemented in NEWinogradLayerBatchedGEMMKernel< TIn, TOut, OutputTileRows, OutputTileCols, KernelRows, KernelCols >, NEWinogradLayerTransformWeightsKernel< T, OutputTileRows, OutputTileCols, KernelRows, KernelCols >, NEWinogradLayerTransformOutputKernel< T, OutputTileRows, OutputTileCols, KernelRows, KernelCols >, NEConvolutionRectangleKernel, NEEdgeTraceKernel, NESeparableConvolutionVertKernel< matrix_size >, NEEdgeNonMaxSuppressionKernel, NEMinMaxLocationKernel, NEWinogradLayerTransformInputKernel< T, OutputTileRows, OutputTileCols, KernelRows, KernelCols >, NEAccumulateSquaredKernel, NEGEMMLowpMatrixBReductionKernel, NEHOGBlockNormalizationKernel, NESeparableConvolutionHorKernel< matrix_size >, NESobel7x7VertKernel, NELogits1DSoftmaxKernel, NESobel5x5VertKernel, NEIm2ColKernel, NEWeightsReshapeKernel, NEGaussianPyramidVertKernel, NELKTrackerKernel, NEGEMMLowpMatrixAReductionKernel, NEHarrisScoreKernel< block_size >, NEBatchNormalizationLayerKernel, NECol2ImKernel, NEGEMMLowpQuantizeDownInt32ToUint8ScaleByFixedPointKernel, NEGEMMLowpQuantizeDownInt32ToUint8ScaleKernel, NEGEMMTranspose1xWKernel, NEGEMMLowpOffsetContributionKernel, NEPixelWiseMultiplicationKernel, NEArithmeticAdditionKernel, NEArithmeticSubtractionKernel, NEAccumulateWeightedKernel, NEDirectConvolutionLayerKernel, NEGEMMMatrixMultiplyKernel, NEHistogramKernel, NEColorConvertKernel, NEGEMMLowpMatrixMultiplyKernel, NEDirectConvolutionLayerOutputStageKernel, NEActivationLayerKernel, NEPermuteKernel, NEChannelCombineKernel, NEDepthConvertLayerKernel, NENormalizationLayerKernel, NEDepthwiseConvolutionLayer3x3Kernel, NEGaussian5x5VertKernel, NEGEMMInterleave4x4Kernel, CPPPermuteKernel, NEChannelExtractKernel, NEConvolutionKernel< matrix_size >, NEPoolingLayerKernel, NEScharr3x3Kernel, NESobel3x3Kernel, NETransposeKernel, NEMinMaxLayerKernel, NEScaleKernel, NECumulativeDistributionKernel, NEROIPoolingLayerKernel, NEGEMMInterleaveBlockedKernel, NEHOGDetectorKernel, NEMinMaxKernel, CPPCornerCandidatesKernel, NEGradientKernel, NEDepthConcatenateLayerKernel, NEFillBorderKernel, NEGEMMMatrixAdditionKernel, NEMeanStdDevKernel, NEDepthwiseIm2ColKernel, NEFillArrayKernel, NEFillInnerBorderKernel, NEGEMMMatrixAccumulateBiasesKernel, NEMagnitudePhaseKernel< mag_type, phase_type >, NENonMaximaSuppression3x3Kernel, NESobel5x5HorKernel, NESobel7x7HorKernel, CPPDetectionWindowNonMaximaSuppressionKernel, NEAbsoluteDifferenceKernel, NEDepthwiseVectorToTensorKernel, NEDequantizationLayerKernel, NENonLinearFilterKernel, NEQuantizationLayerKernel, NEThresholdKernel, NEFastCornersKernel, NEHOGOrientationBinningKernel, NERemapKernel, NEDerivativeKernel, NEBitwiseAndKernel, NEBitwiseOrKernel, NEBitwiseXorKernel, NEL2NormalizeLayerKernel, CPPSortEuclideanDistanceKernel, NEBitwiseNotKernel, NEDepthwiseWeightsReshapeKernel, NEGaussianPyramidHorKernel, NEReductionOperationKernel, NETableLookupKernel, INEWarpKernel, NELocallyConnectedMatrixMultiplyKernel, NELogits1DMaxKernel, NEGEMMMatrixVectorMultiplyKernel, NEAccumulateKernel, NEGaussian5x5HorKernel, NEGaussian3x3Kernel, NEMedian3x3Kernel, NEBox3x3Kernel, NEDilateKernel, NEErodeKernel, NEIntegralImageKernel, NEReshapeLayerKernel, NEGEMMLowpAArch64Kernel, NEFloorKernel, NEGEMMLowpAArch64A53Kernel, NEGEMMLowpAArch64V8P4Kernel, NEGEMMAArch32Kernel, NEGEMMAArch64Kernel, NEGEMMAArch64NativeKernel, NEGEMVAArch64Kernel, and NEHGEMMAArch64FP16Kernel.
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(), and NEWinogradLayerBatchedGEMMKernel< TIn, TOut, OutputTileRows, OutputTileCols, KernelRows, KernelCols >::name().