21.05
|
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... | |
bool | is_window_configured () const |
Function to check if the embedded window of this kernel has been configured. 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 >, NEWinogradLayerTransformInputKernel< T, OutputTileRows, OutputTileCols, KernelRows, KernelCols >, CpuComplexMulKernel, NEGEMMLowpMatrixBReductionKernel, CpuLogits1DSoftmaxKernel< IS_LOG >, CpuSubKernel, CpuMulKernel, NEGEMMLowpMatrixAReductionKernel, CpuDirectConvolutionOutputStageKernel, CpuAddKernel, CpuDirectConvolutionKernel, CpuScaleKernel, NEGEMMTranspose1xWKernel, CpuConcatenateDepthKernel, CpuConvertFullyConnectedWeightsKernel, CpuPoolingKernel, CpuFloorKernel, CpuConcatenateBatchKernel, CpuQuantizationKernel, CpuActivationKernel, CpuPermuteKernel, NEGEMMLowpOffsetContributionOutputStageKernel, NELogicalKernel, CpuConcatenateHeightKernel, CpuConcatenateWidthKernel, CpuCopyKernel, CpuDequantizationKernel, CpuReshapeKernel, CpuLogits1DMaxKernel, NEIm2ColKernel, CpuTransposeKernel, NEWeightsReshapeKernel, CpuPoolingAssemblyWrapperKernel, NEGatherKernel, NECol2ImKernel, NEGEMMInterleave4x4Kernel, CpuFillKernel, NEGEMMLowpQuantizeDownInt32ScaleKernel, NEGEMMLowpOffsetContributionKernel, NEGEMMLowpQuantizeDownInt32ToInt8ScaleByFixedPointKernel, NEGEMMLowpQuantizeDownInt32ToUint8ScaleByFixedPointKernel, NETileKernel, NEGEMMLowpQuantizeDownInt32ToInt16ScaleByFixedPointKernel, CpuElementwiseUnaryKernel, CpuDepthwiseConvolutionNativeKernel, CpuElementwiseKernel, NEGEMMLowpMatrixMultiplyKernel, NEGEMMMatrixAdditionKernel, NESelectKernel, NEReductionOperationKernel, NEFFTRadixStageKernel, NEGEMMMatrixMultiplyKernel, NERangeKernel, CPPNonMaximumSuppressionKernel, NEBitwiseAndKernel, NEBitwiseNotKernel, NEBitwiseOrKernel, NEBitwiseXorKernel, NEMeanStdDevNormalizationKernel, NEMinMaxLayerKernel, NEStridedSliceKernel, CPPPermuteKernel, NECropKernel, NEFFTScaleKernel, NEFillBorderKernel, CPPUpsampleKernel, NEBatchNormalizationLayerKernel, NEConvertQuantizedSignednessKernel, NEDepthConvertLayerKernel, NEFFTDigitReverseKernel, NESpaceToBatchLayerKernel, NEStackLayerKernel, CPPBoxWithNonMaximaSuppressionLimitKernel, NEChannelShuffleLayerKernel, NEDepthToSpaceLayerKernel, NEFuseBatchNormalizationKernel, NEInstanceNormalizationLayerKernel, NENormalizationLayerKernel, NEQLSTMLayerNormalizationKernel, NERemapKernel, NEReorgLayerKernel, NEROIAlignLayerKernel, NESpaceToDepthLayerKernel, CPPTopKVKernel, NEBatchToSpaceLayerKernel, NEBoundingBoxTransformKernel, NEL2NormalizeLayerKernel, NEMaxUnpoolingLayerKernel, NEPadLayerKernel, NEPriorBoxLayerKernel, NEReverseKernel, NEComputeAllAnchorsKernel, and NEROIPoolingLayerKernel.
|
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 >, NEWinogradLayerTransformInputKernel< T, OutputTileRows, OutputTileCols, KernelRows, KernelCols >, NEGEMMLowpMatrixBReductionKernel, NEGEMMLowpMatrixAReductionKernel, NEGEMMLowpOffsetContributionOutputStageKernel, NEIm2ColKernel, NEGEMMTranspose1xWKernel, NEWeightsReshapeKernel, NESpaceToBatchLayerKernel, NEFuseBatchNormalizationKernel, NEGEMMLowpQuantizeDownInt32ToInt8ScaleByFixedPointKernel, NEGEMMLowpQuantizeDownInt32ToUint8ScaleByFixedPointKernel, NEBatchNormalizationLayerKernel, NECol2ImKernel, NEGEMMLowpOffsetContributionKernel, NEGEMMLowpQuantizeDownInt32ToInt16ScaleByFixedPointKernel, NECropKernel, NEBatchToSpaceLayerKernel, NEGEMMLowpQuantizeDownInt32ScaleKernel, NEROIAlignLayerKernel, NEDepthConvertLayerKernel, NEGEMMInterleave4x4Kernel, NEGEMMMatrixMultiplyKernel, CPPNonMaximumSuppressionKernel, NEStackLayerKernel, NEBoundingBoxTransformKernel, NEFFTRadixStageKernel, NEGEMMLowpMatrixMultiplyKernel, NEReductionOperationKernel, NEGEMMMatrixAdditionKernel, NESelectKernel, NEFillBorderKernel, NEGatherKernel, NEMinMaxLayerKernel, NEL2NormalizeLayerKernel, NEPadLayerKernel, NEMeanStdDevNormalizationKernel, NEMaxUnpoolingLayerKernel, NENormalizationLayerKernel, NERangeKernel, NEFFTDigitReverseKernel, CPPPermuteKernel, CPPTopKVKernel, NEReorgLayerKernel, NEFFTScaleKernel, NEComputeAllAnchorsKernel, NEInstanceNormalizationLayerKernel, NEQLSTMLayerNormalizationKernel, NEPriorBoxLayerKernel, NEChannelShuffleLayerKernel, NEDepthToSpaceLayerKernel, NEReverseKernel, NESpaceToDepthLayerKernel, NEConvertQuantizedSignednessKernel, NETileKernel, CPPBoxWithNonMaximaSuppressionLimitKernel, NEROIPoolingLayerKernel, NEBitwiseAndKernel, NEBitwiseOrKernel, NEBitwiseXorKernel, NERemapKernel, CPPUpsampleKernel, and NEBitwiseNotKernel.
Definition at line 55 of file ICPPKernel.h.
References ARM_COMPUTE_ERROR, ARM_COMPUTE_UNUSED, arm_compute::test::validation::info, and IKernel::window().
Referenced by 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, arm_compute::test::validation::info, ICPPKernel::run(), and IKernel::window().
|
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 CpuComplexMulKernel, CpuLogits1DSoftmaxKernel< IS_LOG >, NEStridedSliceKernel, CpuSubKernel, CpuDepthwiseConvolutionNativeKernel, CpuPoolingAssemblyWrapperKernel, NEFillBorderKernel, CpuMulKernel, CpuDirectConvolutionOutputStageKernel, CpuAddKernel, CpuDirectConvolutionKernel, CpuElementwiseUnaryKernel, CpuScaleKernel, CpuConcatenateDepthKernel, CpuConvertFullyConnectedWeightsKernel, CpuPoolingKernel, CpuFloorKernel, CpuConcatenateBatchKernel, CpuQuantizationKernel, CpuActivationKernel, CpuElementwiseKernel, CpuPermuteKernel, NELogicalKernel, CpuConcatenateHeightKernel, CpuConcatenateWidthKernel, CpuCopyKernel, CpuDequantizationKernel, CpuReshapeKernel, CpuLogits1DMaxKernel, CpuTransposeKernel, and CpuFillKernel.
Definition at line 86 of file ICPPKernel.h.
References ARM_COMPUTE_UNUSED, arm_compute::test::validation::info, and IKernel::window().
Referenced by SingleThreadScheduler::schedule_op(), and OMPScheduler::schedule_op().