From c186b574e52b81c75e551cee46a6c4cc7d500c90 Mon Sep 17 00:00:00 2001 From: Moritz Pflanzer Date: Thu, 7 Sep 2017 09:48:04 +0100 Subject: COMPMID-481: Add thread info parameter Change-Id: Iebb50a88d017445b6b37a86563ebd4abd86c5cf5 Reviewed-on: http://mpd-gerrit.cambridge.arm.com/86788 Tested-by: Kaizen Reviewed-by: Anthony Barbier --- src/core/CPP/kernels/CPPCornerCandidatesKernel.cpp | 3 +- ...PPDetectionWindowNonMaximaSuppressionKernel.cpp | 3 +- .../CPP/kernels/CPPSortEuclideanDistanceKernel.cpp | 3 +- .../NEON/kernels/NEAbsoluteDifferenceKernel.cpp | 3 +- src/core/NEON/kernels/NEAccumulateKernel.cpp | 12 ++++-- src/core/NEON/kernels/NEActivationLayerKernel.cpp | 3 +- .../NEON/kernels/NEArithmeticAdditionKernel.cpp | 3 +- .../NEON/kernels/NEArithmeticSubtractionKernel.cpp | 3 +- .../kernels/NEBatchNormalizationLayerKernel.cpp | 3 +- src/core/NEON/kernels/NEBitwiseAndKernel.cpp | 3 +- src/core/NEON/kernels/NEBitwiseNotKernel.cpp | 3 +- src/core/NEON/kernels/NEBitwiseOrKernel.cpp | 3 +- src/core/NEON/kernels/NEBitwiseXorKernel.cpp | 3 +- src/core/NEON/kernels/NEBox3x3Kernel.cpp | 6 ++- src/core/NEON/kernels/NECannyEdgeKernel.cpp | 9 ++-- src/core/NEON/kernels/NEChannelCombineKernel.cpp | 3 +- src/core/NEON/kernels/NEChannelExtractKernel.cpp | 3 +- src/core/NEON/kernels/NECol2ImKernel.cpp | 3 +- src/core/NEON/kernels/NEColorConvertKernel.cpp | 3 +- src/core/NEON/kernels/NEConvolutionKernel.cpp | 12 ++++-- .../kernels/NECumulativeDistributionKernel.cpp | 3 +- src/core/NEON/kernels/NEDepthConcatenateKernel.cpp | 3 +- src/core/NEON/kernels/NEDepthConvertKernel.cpp | 3 +- .../NEON/kernels/NEDequantizationLayerKernel.cpp | 3 +- src/core/NEON/kernels/NEDerivativeKernel.cpp | 3 +- src/core/NEON/kernels/NEDilateKernel.cpp | 3 +- ...EDirectConvolutionLayerBiasAccumulateKernel.cpp | 3 +- .../kernels/NEDirectConvolutionLayerKernel.cpp | 3 +- src/core/NEON/kernels/NEErodeKernel.cpp | 3 +- src/core/NEON/kernels/NEFastCornersKernel.cpp | 3 +- src/core/NEON/kernels/NEFillArrayKernel.cpp | 3 +- src/core/NEON/kernels/NEFillBorderKernel.cpp | 4 +- src/core/NEON/kernels/NEFillInnerBorderKernel.cpp | 3 +- src/core/NEON/kernels/NEFloorKernel.cpp | 3 +- .../NEON/kernels/NEGEMMInterleave4x4Kernel.cpp | 3 +- .../kernels/NEGEMMLowpMatrixMultiplyKernel.cpp | 3 +- .../kernels/NEGEMMMatrixAccumulateBiasesKernel.cpp | 3 +- .../NEON/kernels/NEGEMMMatrixAdditionKernel.cpp | 3 +- .../NEON/kernels/NEGEMMMatrixMultiplyKernel.cpp | 42 +++++++++---------- src/core/NEON/kernels/NEGEMMTranspose1xWKernel.cpp | 3 +- src/core/NEON/kernels/NEGaussian3x3Kernel.cpp | 3 +- src/core/NEON/kernels/NEGaussian5x5Kernel.cpp | 6 ++- src/core/NEON/kernels/NEGaussianPyramidKernel.cpp | 6 ++- src/core/NEON/kernels/NEHOGDescriptorKernel.cpp | 6 ++- src/core/NEON/kernels/NEHOGDetectorKernel.cpp | 3 +- src/core/NEON/kernels/NEHarrisCornersKernel.cpp | 6 ++- src/core/NEON/kernels/NEHistogramKernel.cpp | 11 ++--- src/core/NEON/kernels/NEIm2ColKernel.cpp | 3 +- src/core/NEON/kernels/NEIntegralImageKernel.cpp | 3 +- src/core/NEON/kernels/NEL2NormalizeKernel.cpp | 3 +- src/core/NEON/kernels/NELKTrackerKernel.cpp | 3 +- .../NELocallyConnectedMatrixMultiplyKernel.cpp | 18 ++++---- src/core/NEON/kernels/NEMagnitudePhaseKernel.cpp | 6 ++- src/core/NEON/kernels/NEMeanStdDevKernel.cpp | 3 +- src/core/NEON/kernels/NEMedian3x3Kernel.cpp | 3 +- src/core/NEON/kernels/NEMinMaxLocationKernel.cpp | 6 ++- src/core/NEON/kernels/NENonLinearFilterKernel.cpp | 3 +- .../kernels/NENonMaximaSuppression3x3Kernel.cpp | 3 +- .../NEON/kernels/NENormalizationLayerKernel.cpp | 3 +- .../kernels/NEPixelWiseMultiplicationKernel.cpp | 3 +- src/core/NEON/kernels/NEPoolingLayerKernel.cpp | 3 +- .../NEON/kernels/NEQuantizationLayerKernel.cpp | 3 +- src/core/NEON/kernels/NEROIPoolingLayerKernel.cpp | 3 +- .../NEON/kernels/NEReductionOperationKernel.cpp | 3 +- src/core/NEON/kernels/NERemapKernel.cpp | 3 +- src/core/NEON/kernels/NEScaleKernel.cpp | 3 +- src/core/NEON/kernels/NEScharr3x3Kernel.cpp | 3 +- src/core/NEON/kernels/NESobel3x3Kernel.cpp | 3 +- src/core/NEON/kernels/NESobel5x5Kernel.cpp | 6 ++- src/core/NEON/kernels/NESobel7x7Kernel.cpp | 6 ++- src/core/NEON/kernels/NESoftmaxLayerKernel.cpp | 9 ++-- src/core/NEON/kernels/NETableLookupKernel.cpp | 3 +- src/core/NEON/kernels/NEThresholdKernel.cpp | 3 +- src/core/NEON/kernels/NETransposeKernel.cpp | 3 +- src/core/NEON/kernels/NEWarpKernel.cpp | 3 +- src/core/NEON/kernels/NEWeightsReshapeKernel.cpp | 3 +- src/runtime/CL/functions/CLHOGMultiDetection.cpp | 3 +- src/runtime/CL/functions/CLHarrisCorners.cpp | 2 +- src/runtime/CPP/CPPScheduler.cpp | 49 ++++++++++------------ src/runtime/CPP/SingleThreadScheduler.cpp | 5 ++- src/runtime/NEON/INESimpleFunction.cpp | 2 +- src/runtime/NEON/functions/NECannyEdge.cpp | 6 +-- src/runtime/NEON/functions/NEConvolution.cpp | 2 +- src/runtime/NEON/functions/NEDerivative.cpp | 2 +- .../NEON/functions/NEDirectConvolutionLayer.cpp | 2 +- src/runtime/NEON/functions/NEEqualizeHistogram.cpp | 2 +- src/runtime/NEON/functions/NEFastCorners.cpp | 2 +- src/runtime/NEON/functions/NEGaussian5x5.cpp | 2 +- src/runtime/NEON/functions/NEGaussianPyramid.cpp | 2 +- src/runtime/NEON/functions/NEHOGMultiDetection.cpp | 2 +- src/runtime/NEON/functions/NEHarrisCorners.cpp | 6 +-- src/runtime/NEON/functions/NEMeanStdDev.cpp | 2 +- src/runtime/NEON/functions/NESobel5x5.cpp | 2 +- src/runtime/NEON/functions/NESobel7x7.cpp | 2 +- 94 files changed, 267 insertions(+), 176 deletions(-) (limited to 'src') diff --git a/src/core/CPP/kernels/CPPCornerCandidatesKernel.cpp b/src/core/CPP/kernels/CPPCornerCandidatesKernel.cpp index c7ac753672..418d349830 100644 --- a/src/core/CPP/kernels/CPPCornerCandidatesKernel.cpp +++ b/src/core/CPP/kernels/CPPCornerCandidatesKernel.cpp @@ -93,8 +93,9 @@ void CPPCornerCandidatesKernel::configure(const IImage *input, InternalKeypoint INEKernel::configure(win); } -void CPPCornerCandidatesKernel::run(const Window &window) +void CPPCornerCandidatesKernel::run(const Window &window, const ThreadInfo &info) { + ARM_COMPUTE_UNUSED(info); ARM_COMPUTE_ERROR_ON_UNCONFIGURED_KERNEL(this); ARM_COMPUTE_ERROR_ON_INVALID_SUBWINDOW(INEKernel::window(), window); Iterator input(_input, window); diff --git a/src/core/CPP/kernels/CPPDetectionWindowNonMaximaSuppressionKernel.cpp b/src/core/CPP/kernels/CPPDetectionWindowNonMaximaSuppressionKernel.cpp index 62bfdd60ba..ebe3db983f 100644 --- a/src/core/CPP/kernels/CPPDetectionWindowNonMaximaSuppressionKernel.cpp +++ b/src/core/CPP/kernels/CPPDetectionWindowNonMaximaSuppressionKernel.cpp @@ -59,8 +59,9 @@ void CPPDetectionWindowNonMaximaSuppressionKernel::configure(IDetectionWindowArr IKernel::configure(Window()); // Default 1 iteration window } -void CPPDetectionWindowNonMaximaSuppressionKernel::run(const Window &window) +void CPPDetectionWindowNonMaximaSuppressionKernel::run(const Window &window, const ThreadInfo &info) { + ARM_COMPUTE_UNUSED(info); ARM_COMPUTE_ERROR_ON_UNCONFIGURED_KERNEL(this); ARM_COMPUTE_ERROR_ON_MISMATCHING_WINDOWS(IKernel::window(), window); ARM_COMPUTE_ERROR_ON(_input_output->buffer() == nullptr); diff --git a/src/core/CPP/kernels/CPPSortEuclideanDistanceKernel.cpp b/src/core/CPP/kernels/CPPSortEuclideanDistanceKernel.cpp index 09d3ccffa4..3b1c7aeb3d 100644 --- a/src/core/CPP/kernels/CPPSortEuclideanDistanceKernel.cpp +++ b/src/core/CPP/kernels/CPPSortEuclideanDistanceKernel.cpp @@ -68,8 +68,9 @@ bool CPPSortEuclideanDistanceKernel::is_parallelisable() const return false; } -void CPPSortEuclideanDistanceKernel::run(const Window &window) +void CPPSortEuclideanDistanceKernel::run(const Window &window, const ThreadInfo &info) { + ARM_COMPUTE_UNUSED(info); ARM_COMPUTE_ERROR_ON_UNCONFIGURED_KERNEL(this); ARM_COMPUTE_ERROR_ON_MISMATCHING_WINDOWS(ICPPKernel::window(), window); diff --git a/src/core/NEON/kernels/NEAbsoluteDifferenceKernel.cpp b/src/core/NEON/kernels/NEAbsoluteDifferenceKernel.cpp index edb0a0f304..e0c2891592 100644 --- a/src/core/NEON/kernels/NEAbsoluteDifferenceKernel.cpp +++ b/src/core/NEON/kernels/NEAbsoluteDifferenceKernel.cpp @@ -201,8 +201,9 @@ void NEAbsoluteDifferenceKernel::configure(const ITensor *input1, const ITensor INEKernel::configure(win); } -void NEAbsoluteDifferenceKernel::run(const Window &window) +void NEAbsoluteDifferenceKernel::run(const Window &window, const ThreadInfo &info) { + ARM_COMPUTE_UNUSED(info); ARM_COMPUTE_ERROR_ON_UNCONFIGURED_KERNEL(this); ARM_COMPUTE_ERROR_ON_INVALID_SUBWINDOW(INEKernel::window(), window); ARM_COMPUTE_ERROR_ON(_func == nullptr); diff --git a/src/core/NEON/kernels/NEAccumulateKernel.cpp b/src/core/NEON/kernels/NEAccumulateKernel.cpp index 6e54dd64a3..deafabe1d4 100644 --- a/src/core/NEON/kernels/NEAccumulateKernel.cpp +++ b/src/core/NEON/kernels/NEAccumulateKernel.cpp @@ -114,8 +114,9 @@ void acc_we_v16_u8(const void *__restrict input, void *__restrict accum, float16 } } // namespace fp16 -void NEAccumulateWeightedFP16Kernel::run(const Window &window) +void NEAccumulateWeightedFP16Kernel::run(const Window &window, const ThreadInfo &info) { + ARM_COMPUTE_UNUSED(info); ARM_COMPUTE_ERROR_ON_UNCONFIGURED_KERNEL(this); ARM_COMPUTE_ERROR_ON_INVALID_SUBWINDOW(INESimpleKernel::window(), window); @@ -262,8 +263,9 @@ void NEAccumulateKernel::configure(const ITensor *input, ITensor *accum) INESimpleKernel::configure(input, accum, num_elems_processed_per_iteration); } -void NEAccumulateKernel::run(const Window &window) +void NEAccumulateKernel::run(const Window &window, const ThreadInfo &info) { + ARM_COMPUTE_UNUSED(info); ARM_COMPUTE_ERROR_ON_UNCONFIGURED_KERNEL(this); ARM_COMPUTE_ERROR_ON_INVALID_SUBWINDOW(INESimpleKernel::window(), window); Iterator input(_input, window); @@ -300,8 +302,9 @@ void NEAccumulateWeightedKernel::configure(const ITensor *input, float alpha, IT INESimpleKernel::configure(input, accum, num_elems_processed_per_iteration); } -void NEAccumulateWeightedKernel::run(const Window &window) +void NEAccumulateWeightedKernel::run(const Window &window, const ThreadInfo &info) { + ARM_COMPUTE_UNUSED(info); ARM_COMPUTE_ERROR_ON_UNCONFIGURED_KERNEL(this); ARM_COMPUTE_ERROR_ON_INVALID_SUBWINDOW(INESimpleKernel::window(), window); @@ -342,8 +345,9 @@ void NEAccumulateSquaredKernel::configure(const ITensor *input, uint32_t shift, INESimpleKernel::configure(input, accum, num_elems_processed_per_iteration); } -void NEAccumulateSquaredKernel::run(const Window &window) +void NEAccumulateSquaredKernel::run(const Window &window, const ThreadInfo &info) { + ARM_COMPUTE_UNUSED(info); ARM_COMPUTE_ERROR_ON_UNCONFIGURED_KERNEL(this); ARM_COMPUTE_ERROR_ON_INVALID_SUBWINDOW(INESimpleKernel::window(), window); Iterator input(_input, window); diff --git a/src/core/NEON/kernels/NEActivationLayerKernel.cpp b/src/core/NEON/kernels/NEActivationLayerKernel.cpp index 4ff26c0c67..67fc45bc70 100644 --- a/src/core/NEON/kernels/NEActivationLayerKernel.cpp +++ b/src/core/NEON/kernels/NEActivationLayerKernel.cpp @@ -653,8 +653,9 @@ typename std::enable_if::value, void>::type NEActivati input, output); } -void NEActivationLayerKernel::run(const Window &window) +void NEActivationLayerKernel::run(const Window &window, const ThreadInfo &info) { + ARM_COMPUTE_UNUSED(info); ARM_COMPUTE_ERROR_ON_UNCONFIGURED_KERNEL(this); ARM_COMPUTE_ERROR_ON_INVALID_SUBWINDOW(IKernel::window(), window); ARM_COMPUTE_ERROR_ON(_func == nullptr); diff --git a/src/core/NEON/kernels/NEArithmeticAdditionKernel.cpp b/src/core/NEON/kernels/NEArithmeticAdditionKernel.cpp index 7f7e45a940..f263fd0df2 100644 --- a/src/core/NEON/kernels/NEArithmeticAdditionKernel.cpp +++ b/src/core/NEON/kernels/NEArithmeticAdditionKernel.cpp @@ -459,8 +459,9 @@ void NEArithmeticAdditionKernel::configure(const ITensor *input1, const ITensor INEKernel::configure(win); } -void NEArithmeticAdditionKernel::run(const Window &window) +void NEArithmeticAdditionKernel::run(const Window &window, const ThreadInfo &info) { + ARM_COMPUTE_UNUSED(info); ARM_COMPUTE_ERROR_ON_UNCONFIGURED_KERNEL(this); ARM_COMPUTE_ERROR_ON_INVALID_SUBWINDOW(INEKernel::window(), window); ARM_COMPUTE_ERROR_ON(_func == nullptr); diff --git a/src/core/NEON/kernels/NEArithmeticSubtractionKernel.cpp b/src/core/NEON/kernels/NEArithmeticSubtractionKernel.cpp index be8574317b..85f72c1421 100644 --- a/src/core/NEON/kernels/NEArithmeticSubtractionKernel.cpp +++ b/src/core/NEON/kernels/NEArithmeticSubtractionKernel.cpp @@ -452,8 +452,9 @@ void NEArithmeticSubtractionKernel::configure(const ITensor *input1, const ITens INEKernel::configure(win); } -void NEArithmeticSubtractionKernel::run(const Window &window) +void NEArithmeticSubtractionKernel::run(const Window &window, const ThreadInfo &info) { + ARM_COMPUTE_UNUSED(info); ARM_COMPUTE_ERROR_ON_UNCONFIGURED_KERNEL(this); ARM_COMPUTE_ERROR_ON_INVALID_SUBWINDOW(INEKernel::window(), window); ARM_COMPUTE_ERROR_ON(_func == nullptr); diff --git a/src/core/NEON/kernels/NEBatchNormalizationLayerKernel.cpp b/src/core/NEON/kernels/NEBatchNormalizationLayerKernel.cpp index 66f174e883..f6f6f9cb61 100644 --- a/src/core/NEON/kernels/NEBatchNormalizationLayerKernel.cpp +++ b/src/core/NEON/kernels/NEBatchNormalizationLayerKernel.cpp @@ -283,8 +283,9 @@ void NEBatchNormalizationLayerKernel::configure(ITensor *input, ITensor *output, INEKernel::configure(win); } -void NEBatchNormalizationLayerKernel::run(const Window &window) +void NEBatchNormalizationLayerKernel::run(const Window &window, const ThreadInfo &info) { + ARM_COMPUTE_UNUSED(info); ARM_COMPUTE_ERROR_ON_UNCONFIGURED_KERNEL(this); ARM_COMPUTE_ERROR_ON_INVALID_SUBWINDOW(INEKernel::window(), window); ARM_COMPUTE_ERROR_ON(_func == nullptr); diff --git a/src/core/NEON/kernels/NEBitwiseAndKernel.cpp b/src/core/NEON/kernels/NEBitwiseAndKernel.cpp index e8e448e455..3888300899 100644 --- a/src/core/NEON/kernels/NEBitwiseAndKernel.cpp +++ b/src/core/NEON/kernels/NEBitwiseAndKernel.cpp @@ -93,8 +93,9 @@ void NEBitwiseAndKernel::configure(const ITensor *input1, const ITensor *input2, INEKernel::configure(win); } -void NEBitwiseAndKernel::run(const Window &window) +void NEBitwiseAndKernel::run(const Window &window, const ThreadInfo &info) { + ARM_COMPUTE_UNUSED(info); ARM_COMPUTE_ERROR_ON_UNCONFIGURED_KERNEL(this); ARM_COMPUTE_ERROR_ON_INVALID_SUBWINDOW(INEKernel::window(), window); Iterator input1(_input1, window); diff --git a/src/core/NEON/kernels/NEBitwiseNotKernel.cpp b/src/core/NEON/kernels/NEBitwiseNotKernel.cpp index bf75592677..08d7fe2610 100644 --- a/src/core/NEON/kernels/NEBitwiseNotKernel.cpp +++ b/src/core/NEON/kernels/NEBitwiseNotKernel.cpp @@ -81,8 +81,9 @@ void NEBitwiseNotKernel::configure(const ITensor *input, ITensor *output) INEKernel::configure(win); } -void NEBitwiseNotKernel::run(const Window &window) +void NEBitwiseNotKernel::run(const Window &window, const ThreadInfo &info) { + ARM_COMPUTE_UNUSED(info); ARM_COMPUTE_ERROR_ON_UNCONFIGURED_KERNEL(this); ARM_COMPUTE_ERROR_ON_INVALID_SUBWINDOW(INEKernel::window(), window); Iterator input(_input, window); diff --git a/src/core/NEON/kernels/NEBitwiseOrKernel.cpp b/src/core/NEON/kernels/NEBitwiseOrKernel.cpp index f184be2f26..1b17cc283c 100644 --- a/src/core/NEON/kernels/NEBitwiseOrKernel.cpp +++ b/src/core/NEON/kernels/NEBitwiseOrKernel.cpp @@ -93,8 +93,9 @@ void NEBitwiseOrKernel::configure(const ITensor *input1, const ITensor *input2, INEKernel::configure(win); } -void NEBitwiseOrKernel::run(const Window &window) +void NEBitwiseOrKernel::run(const Window &window, const ThreadInfo &info) { + ARM_COMPUTE_UNUSED(info); ARM_COMPUTE_ERROR_ON_UNCONFIGURED_KERNEL(this); ARM_COMPUTE_ERROR_ON_INVALID_SUBWINDOW(INEKernel::window(), window); Iterator input1(_input1, window); diff --git a/src/core/NEON/kernels/NEBitwiseXorKernel.cpp b/src/core/NEON/kernels/NEBitwiseXorKernel.cpp index c4fb4c0d03..9451e8a08d 100644 --- a/src/core/NEON/kernels/NEBitwiseXorKernel.cpp +++ b/src/core/NEON/kernels/NEBitwiseXorKernel.cpp @@ -89,8 +89,9 @@ void NEBitwiseXorKernel::configure(const ITensor *input1, const ITensor *input2, INEKernel::configure(win); } -void NEBitwiseXorKernel::run(const Window &window) +void NEBitwiseXorKernel::run(const Window &window, const ThreadInfo &info) { + ARM_COMPUTE_UNUSED(info); ARM_COMPUTE_ERROR_ON_UNCONFIGURED_KERNEL(this); ARM_COMPUTE_ERROR_ON_INVALID_SUBWINDOW(INEKernel::window(), window); Iterator input1(_input1, window); diff --git a/src/core/NEON/kernels/NEBox3x3Kernel.cpp b/src/core/NEON/kernels/NEBox3x3Kernel.cpp index 551c903dd9..d7178e4690 100644 --- a/src/core/NEON/kernels/NEBox3x3Kernel.cpp +++ b/src/core/NEON/kernels/NEBox3x3Kernel.cpp @@ -34,8 +34,9 @@ using namespace arm_compute; #ifdef ARM_COMPUTE_ENABLE_FP16 -void NEBox3x3FP16Kernel::run(const Window &window) +void NEBox3x3FP16Kernel::run(const Window &window, const ThreadInfo &info) { + ARM_COMPUTE_UNUSED(info); ARM_COMPUTE_ERROR_ON_UNCONFIGURED_KERNEL(this); ARM_COMPUTE_ERROR_ON_INVALID_SUBWINDOW(INESimpleKernel::window(), window); @@ -144,8 +145,9 @@ void NEBox3x3Kernel::configure(const ITensor *input, ITensor *output, bool borde INEKernel::configure(win); } -void NEBox3x3Kernel::run(const Window &window) +void NEBox3x3Kernel::run(const Window &window, const ThreadInfo &info) { + ARM_COMPUTE_UNUSED(info); ARM_COMPUTE_ERROR_ON_UNCONFIGURED_KERNEL(this); ARM_COMPUTE_ERROR_ON_INVALID_SUBWINDOW(INESimpleKernel::window(), window); diff --git a/src/core/NEON/kernels/NECannyEdgeKernel.cpp b/src/core/NEON/kernels/NECannyEdgeKernel.cpp index 26df6f6b8b..bcbe790fd0 100644 --- a/src/core/NEON/kernels/NECannyEdgeKernel.cpp +++ b/src/core/NEON/kernels/NECannyEdgeKernel.cpp @@ -1677,8 +1677,9 @@ void NEGradientKernel::configure(const ITensor *gx, const ITensor *gy, ITensor * INEKernel::configure(win); } -void NEGradientKernel::run(const Window &window) +void NEGradientKernel::run(const Window &window, const ThreadInfo &info) { + ARM_COMPUTE_UNUSED(info); ARM_COMPUTE_ERROR_ON_UNCONFIGURED_KERNEL(this); ARM_COMPUTE_ERROR_ON_INVALID_SUBWINDOW(INEKernel::window(), window); ARM_COMPUTE_ERROR_ON(_func == nullptr); @@ -1758,8 +1759,9 @@ void NEEdgeNonMaxSuppressionKernel::configure(const ITensor *magnitude, const IT INEKernel::configure(win); } -void NEEdgeNonMaxSuppressionKernel::run(const Window &window) +void NEEdgeNonMaxSuppressionKernel::run(const Window &window, const ThreadInfo &info) { + ARM_COMPUTE_UNUSED(info); ARM_COMPUTE_ERROR_ON_UNCONFIGURED_KERNEL(this); ARM_COMPUTE_ERROR_ON_INVALID_SUBWINDOW(INEKernel::window(), window); ARM_COMPUTE_ERROR_ON(_func == nullptr); @@ -1838,8 +1840,9 @@ void NEEdgeTraceKernel::configure(ITensor *input, ITensor *output) INEKernel::configure(win); } -void NEEdgeTraceKernel::run(const Window &window) +void NEEdgeTraceKernel::run(const Window &window, const ThreadInfo &info) { + ARM_COMPUTE_UNUSED(info); ARM_COMPUTE_ERROR_ON_UNCONFIGURED_KERNEL(this); ARM_COMPUTE_ERROR_ON_INVALID_SUBWINDOW(INEKernel::window(), window); Iterator input(_input, window); diff --git a/src/core/NEON/kernels/NEChannelCombineKernel.cpp b/src/core/NEON/kernels/NEChannelCombineKernel.cpp index 3147a698ad..a2b24de0b4 100644 --- a/src/core/NEON/kernels/NEChannelCombineKernel.cpp +++ b/src/core/NEON/kernels/NEChannelCombineKernel.cpp @@ -284,8 +284,9 @@ bool NEChannelCombineKernel::is_parallelisable() const return _is_parallelizable; } -void NEChannelCombineKernel::run(const Window &window) +void NEChannelCombineKernel::run(const Window &window, const ThreadInfo &info) { + ARM_COMPUTE_UNUSED(info); ARM_COMPUTE_ERROR_ON_UNCONFIGURED_KERNEL(this); ARM_COMPUTE_ERROR_ON_INVALID_SUBWINDOW(INEKernel::window(), window); ARM_COMPUTE_ERROR_ON(_func == nullptr); diff --git a/src/core/NEON/kernels/NEChannelExtractKernel.cpp b/src/core/NEON/kernels/NEChannelExtractKernel.cpp index dc31685240..bac24718ba 100644 --- a/src/core/NEON/kernels/NEChannelExtractKernel.cpp +++ b/src/core/NEON/kernels/NEChannelExtractKernel.cpp @@ -264,8 +264,9 @@ void NEChannelExtractKernel::configure(const IMultiImage *input, Channel channel INEKernel::configure(win); } -void NEChannelExtractKernel::run(const Window &window) +void NEChannelExtractKernel::run(const Window &window, const ThreadInfo &info) { + ARM_COMPUTE_UNUSED(info); ARM_COMPUTE_ERROR_ON_UNCONFIGURED_KERNEL(this); ARM_COMPUTE_ERROR_ON_INVALID_SUBWINDOW(INESimpleKernel::window(), window); ARM_COMPUTE_ERROR_ON(_func == nullptr); diff --git a/src/core/NEON/kernels/NECol2ImKernel.cpp b/src/core/NEON/kernels/NECol2ImKernel.cpp index 95a9364082..460d37e85d 100644 --- a/src/core/NEON/kernels/NECol2ImKernel.cpp +++ b/src/core/NEON/kernels/NECol2ImKernel.cpp @@ -116,8 +116,9 @@ void NECol2ImKernel::configure(const ITensor *input, ITensor *output, std::pair< INEKernel::configure(win); } -void NECol2ImKernel::run(const Window &window) +void NECol2ImKernel::run(const Window &window, const ThreadInfo &info) { + ARM_COMPUTE_UNUSED(info); ARM_COMPUTE_ERROR_ON_UNCONFIGURED_KERNEL(this); ARM_COMPUTE_ERROR_ON_INVALID_SUBWINDOW(INEKernel::window(), window); diff --git a/src/core/NEON/kernels/NEColorConvertKernel.cpp b/src/core/NEON/kernels/NEColorConvertKernel.cpp index cb5152e2b3..347aeaede6 100644 --- a/src/core/NEON/kernels/NEColorConvertKernel.cpp +++ b/src/core/NEON/kernels/NEColorConvertKernel.cpp @@ -572,8 +572,9 @@ void NEColorConvertKernel::configure(const IMultiImage *input, IMultiImage *outp INEKernel::configure(win); } -void NEColorConvertKernel::run(const Window &window) +void NEColorConvertKernel::run(const Window &window, const ThreadInfo &info) { + ARM_COMPUTE_UNUSED(info); ARM_COMPUTE_ERROR_ON_UNCONFIGURED_KERNEL(this); ARM_COMPUTE_ERROR_ON_INVALID_SUBWINDOW(INEKernel::window(), window); ARM_COMPUTE_ERROR_ON(_func == nullptr); diff --git a/src/core/NEON/kernels/NEConvolutionKernel.cpp b/src/core/NEON/kernels/NEConvolutionKernel.cpp index 30e91ef253..263fbe058a 100644 --- a/src/core/NEON/kernels/NEConvolutionKernel.cpp +++ b/src/core/NEON/kernels/NEConvolutionKernel.cpp @@ -621,8 +621,9 @@ void NEConvolutionKernel<9>::convolution(const Window &win) } template -void NEConvolutionKernel::run(const Window &window) +void NEConvolutionKernel::run(const Window &window, const ThreadInfo &info) { + ARM_COMPUTE_UNUSED(info); ARM_COMPUTE_ERROR_ON_UNCONFIGURED_KERNEL(this); ARM_COMPUTE_ERROR_ON_INVALID_SUBWINDOW(INEKernel::window(), window); @@ -694,8 +695,9 @@ void NESeparableConvolutionHorKernel::configure(const ITensor *inpu } template -void NESeparableConvolutionHorKernel::run(const Window &window) +void NESeparableConvolutionHorKernel::run(const Window &window, const ThreadInfo &info) { + ARM_COMPUTE_UNUSED(info); ARM_COMPUTE_ERROR_ON_UNCONFIGURED_KERNEL(this); ARM_COMPUTE_ERROR_ON_INVALID_SUBWINDOW(INEKernel::window(), window); switch(_output->info()->data_type()) @@ -1131,8 +1133,9 @@ void NESeparableConvolutionVertKernel::configure(const ITensor *inp } template -void NESeparableConvolutionVertKernel::run(const Window &window) +void NESeparableConvolutionVertKernel::run(const Window &window, const ThreadInfo &info) { + ARM_COMPUTE_UNUSED(info); ARM_COMPUTE_ERROR_ON_UNCONFIGURED_KERNEL(this); ARM_COMPUTE_ERROR_ON_INVALID_SUBWINDOW(INEKernel::window(), window); @@ -1464,8 +1467,9 @@ void NEConvolutionRectangleKernel::configure(const ITensor *input, ITensor *outp INEKernel::configure(win); } -void NEConvolutionRectangleKernel::run(const Window &window) +void NEConvolutionRectangleKernel::run(const Window &window, const ThreadInfo &info) { + ARM_COMPUTE_UNUSED(info); ARM_COMPUTE_ERROR_ON_UNCONFIGURED_KERNEL(this); ARM_COMPUTE_ERROR_ON_INVALID_SUBWINDOW(INEKernel::window(), window); diff --git a/src/core/NEON/kernels/NECumulativeDistributionKernel.cpp b/src/core/NEON/kernels/NECumulativeDistributionKernel.cpp index 32789cbe33..b65f3ba9e8 100644 --- a/src/core/NEON/kernels/NECumulativeDistributionKernel.cpp +++ b/src/core/NEON/kernels/NECumulativeDistributionKernel.cpp @@ -67,8 +67,9 @@ void NECumulativeDistributionKernel::configure(const IImage *input, const IDistr INEKernel::configure(calculate_max_window(*input->info())); } -void NECumulativeDistributionKernel::run(const Window &window) +void NECumulativeDistributionKernel::run(const Window &window, const ThreadInfo &info) { + ARM_COMPUTE_UNUSED(info); ARM_COMPUTE_ERROR_ON_UNCONFIGURED_KERNEL(this); ARM_COMPUTE_ERROR_ON_INVALID_SUBWINDOW(INEKernel::window(), window); ARM_COMPUTE_ERROR_ON(_distribution->buffer() == nullptr); diff --git a/src/core/NEON/kernels/NEDepthConcatenateKernel.cpp b/src/core/NEON/kernels/NEDepthConcatenateKernel.cpp index d58e4e0aa5..7a62b0cb03 100644 --- a/src/core/NEON/kernels/NEDepthConcatenateKernel.cpp +++ b/src/core/NEON/kernels/NEDepthConcatenateKernel.cpp @@ -159,8 +159,9 @@ void NEDepthConcatenateKernel::configure(const ITensor *input, unsigned int dept INEKernel::configure(win); } -void NEDepthConcatenateKernel::run(const Window &window) +void NEDepthConcatenateKernel::run(const Window &window, const ThreadInfo &info) { + ARM_COMPUTE_UNUSED(info); ARM_COMPUTE_ERROR_ON_UNCONFIGURED_KERNEL(this); ARM_COMPUTE_ERROR_ON_INVALID_SUBWINDOW(INEKernel::window(), window); ARM_COMPUTE_ERROR_ON(_func == nullptr); diff --git a/src/core/NEON/kernels/NEDepthConvertKernel.cpp b/src/core/NEON/kernels/NEDepthConvertKernel.cpp index f7203701e7..d97a20be65 100644 --- a/src/core/NEON/kernels/NEDepthConvertKernel.cpp +++ b/src/core/NEON/kernels/NEDepthConvertKernel.cpp @@ -120,8 +120,9 @@ void NEDepthConvertKernel::configure(ITensor *input, ITensor *output, ConvertPol ICPPKernel::configure(win); } -void NEDepthConvertKernel::run(const Window &window) +void NEDepthConvertKernel::run(const Window &window, const ThreadInfo &info) { + ARM_COMPUTE_UNUSED(info); ARM_COMPUTE_ERROR_ON_UNCONFIGURED_KERNEL(this); ARM_COMPUTE_ERROR_ON_INVALID_SUBWINDOW(IKernel::window(), window); ARM_COMPUTE_ERROR_ON(nullptr == _input); diff --git a/src/core/NEON/kernels/NEDequantizationLayerKernel.cpp b/src/core/NEON/kernels/NEDequantizationLayerKernel.cpp index 70685c92c5..3bf2b35a09 100644 --- a/src/core/NEON/kernels/NEDequantizationLayerKernel.cpp +++ b/src/core/NEON/kernels/NEDequantizationLayerKernel.cpp @@ -68,8 +68,9 @@ void NEDequantizationLayerKernel::configure(const ITensor *input, ITensor *outpu INEKernel::configure(win); } -void NEDequantizationLayerKernel::run(const Window &window) +void NEDequantizationLayerKernel::run(const Window &window, const ThreadInfo &info) { + ARM_COMPUTE_UNUSED(info); ARM_COMPUTE_ERROR_ON_UNCONFIGURED_KERNEL(this); ARM_COMPUTE_ERROR_ON_INVALID_SUBWINDOW(INEKernel::window(), window); diff --git a/src/core/NEON/kernels/NEDerivativeKernel.cpp b/src/core/NEON/kernels/NEDerivativeKernel.cpp index bf7e0972d5..a5680ebbf9 100644 --- a/src/core/NEON/kernels/NEDerivativeKernel.cpp +++ b/src/core/NEON/kernels/NEDerivativeKernel.cpp @@ -214,8 +214,9 @@ void NEDerivativeKernel::derivative_xy(const Window &window) in, out_x, out_y); } -void NEDerivativeKernel::run(const Window &window) +void NEDerivativeKernel::run(const Window &window, const ThreadInfo &info) { + ARM_COMPUTE_UNUSED(info); ARM_COMPUTE_ERROR_ON_UNCONFIGURED_KERNEL(this); ARM_COMPUTE_ERROR_ON_INVALID_SUBWINDOW(INEKernel::window(), window); ARM_COMPUTE_ERROR_ON(_func == nullptr); diff --git a/src/core/NEON/kernels/NEDilateKernel.cpp b/src/core/NEON/kernels/NEDilateKernel.cpp index 867cf77c49..3ee00a47d3 100644 --- a/src/core/NEON/kernels/NEDilateKernel.cpp +++ b/src/core/NEON/kernels/NEDilateKernel.cpp @@ -67,8 +67,9 @@ void NEDilateKernel::configure(const ITensor *input, ITensor *output, bool borde INEKernel::configure(win); } -void NEDilateKernel::run(const Window &window) +void NEDilateKernel::run(const Window &window, const ThreadInfo &info) { + ARM_COMPUTE_UNUSED(info); ARM_COMPUTE_ERROR_ON_UNCONFIGURED_KERNEL(this); ARM_COMPUTE_ERROR_ON_INVALID_SUBWINDOW(INESimpleKernel::window(), window); diff --git a/src/core/NEON/kernels/NEDirectConvolutionLayerBiasAccumulateKernel.cpp b/src/core/NEON/kernels/NEDirectConvolutionLayerBiasAccumulateKernel.cpp index 12ef064803..6631359341 100644 --- a/src/core/NEON/kernels/NEDirectConvolutionLayerBiasAccumulateKernel.cpp +++ b/src/core/NEON/kernels/NEDirectConvolutionLayerBiasAccumulateKernel.cpp @@ -266,8 +266,9 @@ void NEDirectConvolutionLayerBiasAccumulateKernel::configure(ITensor *input, con } } -void NEDirectConvolutionLayerBiasAccumulateKernel::run(const Window &window) +void NEDirectConvolutionLayerBiasAccumulateKernel::run(const Window &window, const ThreadInfo &info) { + ARM_COMPUTE_UNUSED(info); ARM_COMPUTE_ERROR_ON_UNCONFIGURED_KERNEL(this); ARM_COMPUTE_ERROR_ON_INVALID_SUBWINDOW(INEKernel::window(), window); ARM_COMPUTE_ERROR_ON(_func == nullptr); diff --git a/src/core/NEON/kernels/NEDirectConvolutionLayerKernel.cpp b/src/core/NEON/kernels/NEDirectConvolutionLayerKernel.cpp index 3dd07fcdbe..d4171c5a67 100644 --- a/src/core/NEON/kernels/NEDirectConvolutionLayerKernel.cpp +++ b/src/core/NEON/kernels/NEDirectConvolutionLayerKernel.cpp @@ -1378,8 +1378,9 @@ void NEDirectConvolutionLayerKernel::configure(const ITensor *input, const ITens INEKernel::configure(win); } -void NEDirectConvolutionLayerKernel::run(const Window &window) +void NEDirectConvolutionLayerKernel::run(const Window &window, const ThreadInfo &info) { + ARM_COMPUTE_UNUSED(info); ARM_COMPUTE_ERROR_ON_UNCONFIGURED_KERNEL(this); ARM_COMPUTE_ERROR_ON_INVALID_SUBWINDOW(INEKernel::window(), window); ARM_COMPUTE_ERROR_ON(_input->buffer() == nullptr); diff --git a/src/core/NEON/kernels/NEErodeKernel.cpp b/src/core/NEON/kernels/NEErodeKernel.cpp index 398503627c..88c20f8174 100644 --- a/src/core/NEON/kernels/NEErodeKernel.cpp +++ b/src/core/NEON/kernels/NEErodeKernel.cpp @@ -67,8 +67,9 @@ void NEErodeKernel::configure(const ITensor *input, ITensor *output, bool border INEKernel::configure(win); } -void NEErodeKernel::run(const Window &window) +void NEErodeKernel::run(const Window &window, const ThreadInfo &info) { + ARM_COMPUTE_UNUSED(info); ARM_COMPUTE_ERROR_ON_UNCONFIGURED_KERNEL(this); ARM_COMPUTE_ERROR_ON_INVALID_SUBWINDOW(INESimpleKernel::window(), window); diff --git a/src/core/NEON/kernels/NEFastCornersKernel.cpp b/src/core/NEON/kernels/NEFastCornersKernel.cpp index 9e8b5526a1..919efd2ae2 100644 --- a/src/core/NEON/kernels/NEFastCornersKernel.cpp +++ b/src/core/NEON/kernels/NEFastCornersKernel.cpp @@ -388,8 +388,9 @@ void NEFastCornersKernel::configure(const IImage *input, IImage *output, uint8_t INEKernel::configure(win); } -void NEFastCornersKernel::run(const Window &window) +void NEFastCornersKernel::run(const Window &window, const ThreadInfo &info) { + ARM_COMPUTE_UNUSED(info); ARM_COMPUTE_ERROR_ON_UNCONFIGURED_KERNEL(this); ARM_COMPUTE_ERROR_ON_INVALID_SUBWINDOW(INEKernel::window(), window); diff --git a/src/core/NEON/kernels/NEFillArrayKernel.cpp b/src/core/NEON/kernels/NEFillArrayKernel.cpp index 7e7e1c2501..5a2e1a0aa4 100644 --- a/src/core/NEON/kernels/NEFillArrayKernel.cpp +++ b/src/core/NEON/kernels/NEFillArrayKernel.cpp @@ -62,8 +62,9 @@ bool NEFillArrayKernel::is_parallelisable() const return false; } -void NEFillArrayKernel::run(const Window &window) +void NEFillArrayKernel::run(const Window &window, const ThreadInfo &info) { + ARM_COMPUTE_UNUSED(info); ARM_COMPUTE_ERROR_ON_UNCONFIGURED_KERNEL(this); ARM_COMPUTE_ERROR_ON_INVALID_SUBWINDOW(INEKernel::window(), window); diff --git a/src/core/NEON/kernels/NEFillBorderKernel.cpp b/src/core/NEON/kernels/NEFillBorderKernel.cpp index 7d191c18b0..65d5388c4b 100644 --- a/src/core/NEON/kernels/NEFillBorderKernel.cpp +++ b/src/core/NEON/kernels/NEFillBorderKernel.cpp @@ -124,8 +124,10 @@ void NEFillBorderKernel::configure(ITensor *tensor, BorderSize border_size, Bord INEKernel::configure(win); } -void NEFillBorderKernel::run(const Window &window) +void NEFillBorderKernel::run(const Window &window, const ThreadInfo &info) { + ARM_COMPUTE_UNUSED(info); + // If there is no border: early exit if(_border_size.empty()) { diff --git a/src/core/NEON/kernels/NEFillInnerBorderKernel.cpp b/src/core/NEON/kernels/NEFillInnerBorderKernel.cpp index 699a5d9299..5323733fd3 100644 --- a/src/core/NEON/kernels/NEFillInnerBorderKernel.cpp +++ b/src/core/NEON/kernels/NEFillInnerBorderKernel.cpp @@ -61,8 +61,9 @@ void NEFillInnerBorderKernel::configure(ITensor *input, BorderSize border_size, INEKernel::configure(win); } -void NEFillInnerBorderKernel::run(const Window &window) +void NEFillInnerBorderKernel::run(const Window &window, const ThreadInfo &info) { + ARM_COMPUTE_UNUSED(info); ARM_COMPUTE_ERROR_ON_UNCONFIGURED_KERNEL(this); ARM_COMPUTE_ERROR_ON_INVALID_SUBWINDOW(INEKernel::window(), window); diff --git a/src/core/NEON/kernels/NEFloorKernel.cpp b/src/core/NEON/kernels/NEFloorKernel.cpp index 1dc376f738..dd85ac1fd6 100644 --- a/src/core/NEON/kernels/NEFloorKernel.cpp +++ b/src/core/NEON/kernels/NEFloorKernel.cpp @@ -64,8 +64,9 @@ void NEFloorKernel::configure(const ITensor *input, ITensor *output) INEKernel::configure(win); } -void NEFloorKernel::run(const Window &window) +void NEFloorKernel::run(const Window &window, const ThreadInfo &info) { + ARM_COMPUTE_UNUSED(info); ARM_COMPUTE_ERROR_ON_UNCONFIGURED_KERNEL(this); ARM_COMPUTE_ERROR_ON_INVALID_SUBWINDOW(INEKernel::window(), window); diff --git a/src/core/NEON/kernels/NEGEMMInterleave4x4Kernel.cpp b/src/core/NEON/kernels/NEGEMMInterleave4x4Kernel.cpp index 40ece9faab..c76c39aa4b 100644 --- a/src/core/NEON/kernels/NEGEMMInterleave4x4Kernel.cpp +++ b/src/core/NEON/kernels/NEGEMMInterleave4x4Kernel.cpp @@ -182,8 +182,9 @@ void NEGEMMInterleave4x4Kernel::configure(const ITensor *input, ITensor *output) INEKernel::configure(win); } -void NEGEMMInterleave4x4Kernel::run(const Window &window) +void NEGEMMInterleave4x4Kernel::run(const Window &window, const ThreadInfo &info) { + ARM_COMPUTE_UNUSED(info); ARM_COMPUTE_ERROR_ON_UNCONFIGURED_KERNEL(this); ARM_COMPUTE_ERROR_ON_INVALID_SUBWINDOW(INEKernel::window(), window); ARM_COMPUTE_ERROR_ON(_func == nullptr); diff --git a/src/core/NEON/kernels/NEGEMMLowpMatrixMultiplyKernel.cpp b/src/core/NEON/kernels/NEGEMMLowpMatrixMultiplyKernel.cpp index 3558c686b1..cbba4461a2 100644 --- a/src/core/NEON/kernels/NEGEMMLowpMatrixMultiplyKernel.cpp +++ b/src/core/NEON/kernels/NEGEMMLowpMatrixMultiplyKernel.cpp @@ -81,8 +81,9 @@ void NEGEMMLowpMatrixMultiplyKernel::configure(const ITensor *input0, const ITen INEKernel::configure(win); } -void NEGEMMLowpMatrixMultiplyKernel::run(const Window &window) +void NEGEMMLowpMatrixMultiplyKernel::run(const Window &window, const ThreadInfo &info) { + ARM_COMPUTE_UNUSED(info); ARM_COMPUTE_ERROR_ON_UNCONFIGURED_KERNEL(this); ARM_COMPUTE_ERROR_ON_INVALID_SUBWINDOW(INEKernel::window(), window); diff --git a/src/core/NEON/kernels/NEGEMMMatrixAccumulateBiasesKernel.cpp b/src/core/NEON/kernels/NEGEMMMatrixAccumulateBiasesKernel.cpp index 6ed3791ce5..fb07cb0333 100644 --- a/src/core/NEON/kernels/NEGEMMMatrixAccumulateBiasesKernel.cpp +++ b/src/core/NEON/kernels/NEGEMMMatrixAccumulateBiasesKernel.cpp @@ -72,8 +72,9 @@ void NEGEMMMatrixAccumulateBiasesKernel::configure(ITensor *accum, const ITensor INEKernel::configure(win); } -void NEGEMMMatrixAccumulateBiasesKernel::run(const Window &window) +void NEGEMMMatrixAccumulateBiasesKernel::run(const Window &window, const ThreadInfo &info) { + ARM_COMPUTE_UNUSED(info); ARM_COMPUTE_ERROR_ON_UNCONFIGURED_KERNEL(this); ARM_COMPUTE_ERROR_ON_INVALID_SUBWINDOW(INEKernel::window(), window); diff --git a/src/core/NEON/kernels/NEGEMMMatrixAdditionKernel.cpp b/src/core/NEON/kernels/NEGEMMMatrixAdditionKernel.cpp index f2cd18d827..9dbce1de2f 100644 --- a/src/core/NEON/kernels/NEGEMMMatrixAdditionKernel.cpp +++ b/src/core/NEON/kernels/NEGEMMMatrixAdditionKernel.cpp @@ -183,8 +183,9 @@ void NEGEMMMatrixAdditionKernel::configure(const ITensor *input, ITensor *output _beta = beta; } -void NEGEMMMatrixAdditionKernel::run(const Window &window) +void NEGEMMMatrixAdditionKernel::run(const Window &window, const ThreadInfo &info) { + ARM_COMPUTE_UNUSED(info); ARM_COMPUTE_ERROR_ON_UNCONFIGURED_KERNEL(this); ARM_COMPUTE_ERROR_ON_INVALID_SUBWINDOW(INESimpleKernel::window(), window); diff --git a/src/core/NEON/kernels/NEGEMMMatrixMultiplyKernel.cpp b/src/core/NEON/kernels/NEGEMMMatrixMultiplyKernel.cpp index 8a2a481bde..b872bab928 100644 --- a/src/core/NEON/kernels/NEGEMMMatrixMultiplyKernel.cpp +++ b/src/core/NEON/kernels/NEGEMMMatrixMultiplyKernel.cpp @@ -51,7 +51,7 @@ class Coordinates; namespace { template -void vector_matrix_multiply_f16(const ITensor *input0, const ITensor *input1, ITensor *output, const Window &window, float alpha) +void vector_matrix_multiply_f16(const ITensor *input0, const ITensor *input1, ITensor *output, const Window &window, const ThreadInfo &info, float alpha) { #ifdef ARM_COMPUTE_ENABLE_FP16 const auto width_matrix_b = static_cast(output->info()->dimension(0)); @@ -59,8 +59,8 @@ void vector_matrix_multiply_f16(const ITensor *input0, const ITensor *input1, IT const auto num_elems_vec_a = static_cast(input0->info()->dimension(0)); // The implementation computes 32 elements per iteration - const int window_start_x = 32 * window.thread_id(); - const int window_step_x = 32 * window.num_threads(); + const int window_start_x = 32 * info.thread_id; + const int window_step_x = 32 * info.num_threads; const int window_end_x = ceil_to_multiple(width_matrix_b - window_start_x, window_step_x) + window_start_x; ARM_COMPUTE_ERROR_ON_MSG((window_end_x - window_start_x) % window_step_x, " (window_end_x - window_start_x) must be multiple of window_step_x"); @@ -192,15 +192,15 @@ void vector_matrix_multiply_f16(const ITensor *input0, const ITensor *input1, IT } template -void vector_matrix_multiply_f32(const ITensor *input0, const ITensor *input1, ITensor *output, const Window &window, float alpha) +void vector_matrix_multiply_f32(const ITensor *input0, const ITensor *input1, ITensor *output, const Window &window, const ThreadInfo &info, float alpha) { const auto width_matrix_b = static_cast(output->info()->dimension(0)); const auto in_b_stride = static_cast(input1->info()->strides_in_bytes()[1] / data_size_from_type(input1->info()->data_type())); const auto num_elems_vec_a = static_cast(input0->info()->dimension(0)); // The implementation computes 16 elements per iteration - const int window_start_x = 16 * window.thread_id(); - const int window_step_x = 16 * window.num_threads(); + const int window_start_x = 16 * info.thread_id; + const int window_step_x = 16 * info.num_threads; // Make sure (window_end_x - window_start_x) is a multiple of window_step_x const int window_end_x = ceil_to_multiple(width_matrix_b - window_start_x, window_step_x) + window_start_x; @@ -348,7 +348,7 @@ void vector_matrix_multiply_f32(const ITensor *input0, const ITensor *input1, IT } template -void vector_matrix_multiply_qs8(const ITensor *input0, const ITensor *input1, ITensor *output, const Window &window, float alpha) +void vector_matrix_multiply_qs8(const ITensor *input0, const ITensor *input1, ITensor *output, const Window &window, const ThreadInfo &info, float alpha) { const auto width_matrix_b = static_cast(output->info()->dimension(0)); const auto in_b_stride = static_cast(input1->info()->strides_in_bytes()[1] / data_size_from_type(input1->info()->data_type())); @@ -356,8 +356,8 @@ void vector_matrix_multiply_qs8(const ITensor *input0, const ITensor *input1, IT const int fixed_point_position = input0->info()->fixed_point_position(); // The implementation computes 32 elements per iteration - const int window_start_x = 32 * window.thread_id(); - const int window_step_x = 32 * window.num_threads(); + const int window_start_x = 32 * info.thread_id; + const int window_step_x = 32 * info.num_threads; // Make sure (window_end_x - window_start_x) is a multiple of window_step_x const int window_end_x = ceil_to_multiple(width_matrix_b - window_start_x, window_step_x) + window_start_x; @@ -476,7 +476,7 @@ void vector_matrix_multiply_qs8(const ITensor *input0, const ITensor *input1, IT } template -void vector_matrix_multiply_qs16(const ITensor *input0, const ITensor *input1, ITensor *output, const Window &window, float alpha) +void vector_matrix_multiply_qs16(const ITensor *input0, const ITensor *input1, ITensor *output, const Window &window, const ThreadInfo &info, float alpha) { const auto width_matrix_b = static_cast(output->info()->dimension(0)); const auto in_b_stride = static_cast(input1->info()->strides_in_bytes()[1] / data_size_from_type(input1->info()->data_type())); @@ -484,8 +484,8 @@ void vector_matrix_multiply_qs16(const ITensor *input0, const ITensor *input1, I const int fixed_point_position = input0->info()->fixed_point_position(); // The implementation computes 16 elements per iteration - const int window_start_x = 16 * window.thread_id(); - const int window_step_x = 16 * window.num_threads(); + const int window_start_x = 16 * info.thread_id; + const int window_step_x = 16 * info.num_threads; // Make sure (window_end_x - window_start_x) is a multiple of window_step_x const int window_end_x = ceil_to_multiple(width_matrix_b - window_start_x, window_step_x) + window_start_x; ARM_COMPUTE_ERROR_ON_MSG((window_end_x - window_start_x) % window_step_x, " (window_end_x - window_start_x) must be multiple of window_step_x"); @@ -1522,7 +1522,7 @@ void NEGEMMMatrixMultiplyKernel::configure(const ITensor *input0, const ITensor } } -void NEGEMMMatrixMultiplyKernel::run(const Window &window) +void NEGEMMMatrixMultiplyKernel::run(const Window &window, const ThreadInfo &info) { ARM_COMPUTE_ERROR_ON_UNCONFIGURED_KERNEL(this); ARM_COMPUTE_ERROR_ON_INVALID_SUBWINDOW(INEKernel::window(), window); @@ -1536,27 +1536,27 @@ void NEGEMMMatrixMultiplyKernel::run(const Window &window) { case DataType::F32: { - multiply_alpha ? vector_matrix_multiply_f32(_input0, _input1, _output, window, _alpha) : - vector_matrix_multiply_f32(_input0, _input1, _output, window, _alpha); + multiply_alpha ? vector_matrix_multiply_f32(_input0, _input1, _output, window, info, _alpha) : + vector_matrix_multiply_f32(_input0, _input1, _output, window, info, _alpha); break; } case DataType::QS8: { - multiply_alpha ? vector_matrix_multiply_qs8(_input0, _input1, _output, window, _alpha) : - vector_matrix_multiply_qs8(_input0, _input1, _output, window, _alpha); + multiply_alpha ? vector_matrix_multiply_qs8(_input0, _input1, _output, window, info, _alpha) : + vector_matrix_multiply_qs8(_input0, _input1, _output, window, info, _alpha); break; } case DataType::QS16: { - multiply_alpha ? vector_matrix_multiply_qs16(_input0, _input1, _output, window, _alpha) : - vector_matrix_multiply_qs16(_input0, _input1, _output, window, _alpha); + multiply_alpha ? vector_matrix_multiply_qs16(_input0, _input1, _output, window, info, _alpha) : + vector_matrix_multiply_qs16(_input0, _input1, _output, window, info, _alpha); break; } #ifdef ARM_COMPUTE_ENABLE_FP16 case DataType::F16: { - multiply_alpha ? vector_matrix_multiply_f16(_input0, _input1, _output, window, _alpha) : - vector_matrix_multiply_f16(_input0, _input1, _output, window, _alpha); + multiply_alpha ? vector_matrix_multiply_f16(_input0, _input1, _output, window, info, _alpha) : + vector_matrix_multiply_f16(_input0, _input1, _output, window, info, _alpha); break; } #endif /* ARM_COMPUTE_ENABLE_FP16 */ diff --git a/src/core/NEON/kernels/NEGEMMTranspose1xWKernel.cpp b/src/core/NEON/kernels/NEGEMMTranspose1xWKernel.cpp index 95063a7875..7f4ee1ec49 100644 --- a/src/core/NEON/kernels/NEGEMMTranspose1xWKernel.cpp +++ b/src/core/NEON/kernels/NEGEMMTranspose1xWKernel.cpp @@ -81,8 +81,9 @@ void NEGEMMTranspose1xWKernel::configure(const ITensor *input, ITensor *output) INEKernel::configure(win); } -void NEGEMMTranspose1xWKernel::run(const Window &window) +void NEGEMMTranspose1xWKernel::run(const Window &window, const ThreadInfo &info) { + ARM_COMPUTE_UNUSED(info); ARM_COMPUTE_ERROR_ON_UNCONFIGURED_KERNEL(this); ARM_COMPUTE_ERROR_ON_INVALID_SUBWINDOW(INESimpleKernel::window(), window); diff --git a/src/core/NEON/kernels/NEGaussian3x3Kernel.cpp b/src/core/NEON/kernels/NEGaussian3x3Kernel.cpp index 419f4825ef..048c22933c 100644 --- a/src/core/NEON/kernels/NEGaussian3x3Kernel.cpp +++ b/src/core/NEON/kernels/NEGaussian3x3Kernel.cpp @@ -64,8 +64,9 @@ void NEGaussian3x3Kernel::configure(const ITensor *input, ITensor *output, bool INEKernel::configure(win); } -void NEGaussian3x3Kernel::run(const Window &window) +void NEGaussian3x3Kernel::run(const Window &window, const ThreadInfo &info) { + ARM_COMPUTE_UNUSED(info); ARM_COMPUTE_ERROR_ON_UNCONFIGURED_KERNEL(this); ARM_COMPUTE_ERROR_ON_INVALID_SUBWINDOW(INESimpleKernel::window(), window); diff --git a/src/core/NEON/kernels/NEGaussian5x5Kernel.cpp b/src/core/NEON/kernels/NEGaussian5x5Kernel.cpp index 4e1880d968..b62e2816c0 100644 --- a/src/core/NEON/kernels/NEGaussian5x5Kernel.cpp +++ b/src/core/NEON/kernels/NEGaussian5x5Kernel.cpp @@ -73,8 +73,9 @@ void NEGaussian5x5HorKernel::configure(const ITensor *input, ITensor *output, bo INEKernel::configure(win); } -void NEGaussian5x5HorKernel::run(const Window &window) +void NEGaussian5x5HorKernel::run(const Window &window, const ThreadInfo &info) { + ARM_COMPUTE_UNUSED(info); ARM_COMPUTE_ERROR_ON_UNCONFIGURED_KERNEL(this); ARM_COMPUTE_ERROR_ON_INVALID_SUBWINDOW(INEKernel::window(), window); @@ -140,8 +141,9 @@ void NEGaussian5x5VertKernel::configure(const ITensor *input, ITensor *output, b INEKernel::configure(win); } -void NEGaussian5x5VertKernel::run(const Window &window) +void NEGaussian5x5VertKernel::run(const Window &window, const ThreadInfo &info) { + ARM_COMPUTE_UNUSED(info); ARM_COMPUTE_ERROR_ON_UNCONFIGURED_KERNEL(this); ARM_COMPUTE_ERROR_ON_INVALID_SUBWINDOW(INESimpleKernel::window(), window); diff --git a/src/core/NEON/kernels/NEGaussianPyramidKernel.cpp b/src/core/NEON/kernels/NEGaussianPyramidKernel.cpp index 52d1fbf028..d6cb1b6444 100644 --- a/src/core/NEON/kernels/NEGaussianPyramidKernel.cpp +++ b/src/core/NEON/kernels/NEGaussianPyramidKernel.cpp @@ -110,8 +110,9 @@ void NEGaussianPyramidHorKernel::configure(const ITensor *input, ITensor *output INEKernel::configure(win); } -void NEGaussianPyramidHorKernel::run(const Window &window) +void NEGaussianPyramidHorKernel::run(const Window &window, const ThreadInfo &info) { + ARM_COMPUTE_UNUSED(info); ARM_COMPUTE_ERROR_ON_UNCONFIGURED_KERNEL(this); ARM_COMPUTE_ERROR_ON_INVALID_SUBWINDOW(INEKernel::window(), window); ARM_COMPUTE_ERROR_ON(window.x().step() % 2); @@ -215,8 +216,9 @@ void NEGaussianPyramidVertKernel::configure(const ITensor *input, ITensor *outpu INEKernel::configure(win); } -void NEGaussianPyramidVertKernel::run(const Window &window) +void NEGaussianPyramidVertKernel::run(const Window &window, const ThreadInfo &info) { + ARM_COMPUTE_UNUSED(info); ARM_COMPUTE_ERROR_ON_UNCONFIGURED_KERNEL(this); ARM_COMPUTE_ERROR_ON_INVALID_SUBWINDOW(INEKernel::window(), window); ARM_COMPUTE_ERROR_ON(window.x().step() != 16); diff --git a/src/core/NEON/kernels/NEHOGDescriptorKernel.cpp b/src/core/NEON/kernels/NEHOGDescriptorKernel.cpp index 404ad8a388..3fd81bed1c 100644 --- a/src/core/NEON/kernels/NEHOGDescriptorKernel.cpp +++ b/src/core/NEON/kernels/NEHOGDescriptorKernel.cpp @@ -675,8 +675,9 @@ void NEHOGOrientationBinningKernel::configure(const ITensor *input_magnitude, co INEKernel::configure(win); } -void NEHOGOrientationBinningKernel::run(const Window &window) +void NEHOGOrientationBinningKernel::run(const Window &window, const ThreadInfo &info) { + ARM_COMPUTE_UNUSED(info); ARM_COMPUTE_ERROR_ON_UNCONFIGURED_KERNEL(this); ARM_COMPUTE_ERROR_ON_INVALID_SUBWINDOW(IKernel::window(), window); ARM_COMPUTE_ERROR_ON(_func == nullptr); @@ -768,8 +769,9 @@ void NEHOGBlockNormalizationKernel::configure(const ITensor *input, ITensor *out INEKernel::configure(win); } -void NEHOGBlockNormalizationKernel::run(const Window &window) +void NEHOGBlockNormalizationKernel::run(const Window &window, const ThreadInfo &info) { + ARM_COMPUTE_UNUSED(info); ARM_COMPUTE_ERROR_ON_UNCONFIGURED_KERNEL(this); ARM_COMPUTE_ERROR_ON(_func == nullptr); ARM_COMPUTE_ERROR_ON_INVALID_SUBWINDOW(IKernel::window(), window); diff --git a/src/core/NEON/kernels/NEHOGDetectorKernel.cpp b/src/core/NEON/kernels/NEHOGDetectorKernel.cpp index 9dd50ca294..343b0517b0 100644 --- a/src/core/NEON/kernels/NEHOGDetectorKernel.cpp +++ b/src/core/NEON/kernels/NEHOGDetectorKernel.cpp @@ -92,8 +92,9 @@ void NEHOGDetectorKernel::configure(const ITensor *input, const IHOG *hog, IDete INEKernel::configure(win); } -void NEHOGDetectorKernel::run(const Window &window) +void NEHOGDetectorKernel::run(const Window &window, const ThreadInfo &info) { + ARM_COMPUTE_UNUSED(info); ARM_COMPUTE_ERROR_ON_UNCONFIGURED_KERNEL(this); ARM_COMPUTE_ERROR_ON_INVALID_SUBWINDOW(IKernel::window(), window); ARM_COMPUTE_ERROR_ON(_hog_descriptor == nullptr); diff --git a/src/core/NEON/kernels/NEHarrisCornersKernel.cpp b/src/core/NEON/kernels/NEHarrisCornersKernel.cpp index d44f4ce3b8..233b2baabe 100644 --- a/src/core/NEON/kernels/NEHarrisCornersKernel.cpp +++ b/src/core/NEON/kernels/NEHarrisCornersKernel.cpp @@ -287,8 +287,9 @@ NEHarrisScoreFP16Kernel::NEHarrisScoreFP16Kernel() } template -void NEHarrisScoreFP16Kernel::run(const Window &window) +void NEHarrisScoreFP16Kernel::run(const Window &window, const ThreadInfo &info) { + ARM_COMPUTE_UNUSED(info); ARM_COMPUTE_ERROR_ON_UNCONFIGURED_KERNEL(this); ARM_COMPUTE_ERROR_ON_INVALID_SUBWINDOW(INEKernel::window(), window); ARM_COMPUTE_ERROR_ON(_func == nullptr); @@ -1029,8 +1030,9 @@ NEHarrisScoreKernel::NEHarrisScoreKernel() } template -void NEHarrisScoreKernel::run(const Window &window) +void NEHarrisScoreKernel::run(const Window &window, const ThreadInfo &info) { + ARM_COMPUTE_UNUSED(info); ARM_COMPUTE_ERROR_ON_UNCONFIGURED_KERNEL(this); ARM_COMPUTE_ERROR_ON_INVALID_SUBWINDOW(INEKernel::window(), window); ARM_COMPUTE_ERROR_ON(_func == nullptr); diff --git a/src/core/NEON/kernels/NEHistogramKernel.cpp b/src/core/NEON/kernels/NEHistogramKernel.cpp index 2018651083..6e402ae604 100644 --- a/src/core/NEON/kernels/NEHistogramKernel.cpp +++ b/src/core/NEON/kernels/NEHistogramKernel.cpp @@ -66,7 +66,7 @@ NEHistogramKernel::NEHistogramKernel() { } -void NEHistogramKernel::histogram_U8(Window win) +void NEHistogramKernel::histogram_U8(Window win, const ThreadInfo &info) { ARM_COMPUTE_ERROR_ON(_output->buffer() == nullptr); @@ -74,7 +74,7 @@ void NEHistogramKernel::histogram_U8(Window win) const int32_t offset = _output->offset(); const uint32_t offrange = offset + _output->range(); const uint32_t *const w_lut = _window_lut; - uint32_t *const local_hist = _local_hist + win.thread_id() * bins; + uint32_t *const local_hist = _local_hist + info.thread_id * bins; // Clear local_histogram std::fill_n(local_hist, bins, 0); @@ -129,8 +129,9 @@ void NEHistogramKernel::histogram_U8(Window win) merge_histogram(_output->buffer(), local_hist, bins); } -void NEHistogramKernel::histogram_fixed_U8(Window win) +void NEHistogramKernel::histogram_fixed_U8(Window win, const ThreadInfo &info) { + ARM_COMPUTE_UNUSED(info); ARM_COMPUTE_ERROR_ON(_output->buffer() == nullptr); std::array local_hist{ { 0 } }; @@ -242,11 +243,11 @@ void NEHistogramKernel::configure(const IImage *input, IDistribution1D *output) INEKernel::configure(win); } -void NEHistogramKernel::run(const Window &window) +void NEHistogramKernel::run(const Window &window, const ThreadInfo &info) { ARM_COMPUTE_ERROR_ON_UNCONFIGURED_KERNEL(this); ARM_COMPUTE_ERROR_ON_INVALID_SUBWINDOW(INEKernel::window(), window); ARM_COMPUTE_ERROR_ON(_func == nullptr); - (this->*_func)(window); + (this->*_func)(window, info); } diff --git a/src/core/NEON/kernels/NEIm2ColKernel.cpp b/src/core/NEON/kernels/NEIm2ColKernel.cpp index 6e15f82b6d..3e50277cdf 100644 --- a/src/core/NEON/kernels/NEIm2ColKernel.cpp +++ b/src/core/NEON/kernels/NEIm2ColKernel.cpp @@ -362,8 +362,9 @@ void NEIm2ColKernel::configure(const ITensor *input, ITensor *output, const Size IKernel::configure(window); } -void NEIm2ColKernel::run(const Window &window) +void NEIm2ColKernel::run(const Window &window, const ThreadInfo &info) { + ARM_COMPUTE_UNUSED(info); ARM_COMPUTE_ERROR_ON_UNCONFIGURED_KERNEL(this); ARM_COMPUTE_ERROR_ON_INVALID_SUBWINDOW(INEKernel::window(), window); diff --git a/src/core/NEON/kernels/NEIntegralImageKernel.cpp b/src/core/NEON/kernels/NEIntegralImageKernel.cpp index 3b09a1bdbb..16a3cf7f07 100644 --- a/src/core/NEON/kernels/NEIntegralImageKernel.cpp +++ b/src/core/NEON/kernels/NEIntegralImageKernel.cpp @@ -71,8 +71,9 @@ bool NEIntegralImageKernel::is_parallelisable() const return false; } -void NEIntegralImageKernel::run(const Window &window) +void NEIntegralImageKernel::run(const Window &window, const ThreadInfo &info) { + ARM_COMPUTE_UNUSED(info); ARM_COMPUTE_ERROR_ON_UNCONFIGURED_KERNEL(this); ARM_COMPUTE_ERROR_ON_INVALID_SUBWINDOW(INESimpleKernel::window(), window); diff --git a/src/core/NEON/kernels/NEL2NormalizeKernel.cpp b/src/core/NEON/kernels/NEL2NormalizeKernel.cpp index f3f58b6eb3..12c532afd5 100644 --- a/src/core/NEON/kernels/NEL2NormalizeKernel.cpp +++ b/src/core/NEON/kernels/NEL2NormalizeKernel.cpp @@ -109,8 +109,9 @@ void NEL2NormalizeKernel::configure(const ITensor *input, const ITensor *sum, IT INEKernel::configure(win); } -void NEL2NormalizeKernel::run(const Window &window) +void NEL2NormalizeKernel::run(const Window &window, const ThreadInfo &info) { + ARM_COMPUTE_UNUSED(info); ARM_COMPUTE_ERROR_ON_UNCONFIGURED_KERNEL(this); ARM_COMPUTE_ERROR_ON_INVALID_SUBWINDOW(INEKernel::window(), window); diff --git a/src/core/NEON/kernels/NELKTrackerKernel.cpp b/src/core/NEON/kernels/NELKTrackerKernel.cpp index 3d2bfb204e..6fac7975df 100644 --- a/src/core/NEON/kernels/NELKTrackerKernel.cpp +++ b/src/core/NEON/kernels/NELKTrackerKernel.cpp @@ -385,8 +385,9 @@ void NELKTrackerKernel::configure(const ITensor *input_old, const ITensor *input INEKernel::configure(window); } -void NELKTrackerKernel::run(const Window &window) +void NELKTrackerKernel::run(const Window &window, const ThreadInfo &info) { + ARM_COMPUTE_UNUSED(info); ARM_COMPUTE_ERROR_ON_UNCONFIGURED_KERNEL(this); ARM_COMPUTE_ERROR_ON_INVALID_SUBWINDOW(INEKernel::window(), window); diff --git a/src/core/NEON/kernels/NELocallyConnectedMatrixMultiplyKernel.cpp b/src/core/NEON/kernels/NELocallyConnectedMatrixMultiplyKernel.cpp index 2b7b391c43..a02ebf61ee 100644 --- a/src/core/NEON/kernels/NELocallyConnectedMatrixMultiplyKernel.cpp +++ b/src/core/NEON/kernels/NELocallyConnectedMatrixMultiplyKernel.cpp @@ -49,7 +49,7 @@ class Coordinates; namespace { -void vector_matrix_multiply_f16(const ITensor *input0, const ITensor *input1, ITensor *output, const Window &window) +void vector_matrix_multiply_f16(const ITensor *input0, const ITensor *input1, ITensor *output, const Window &window, const ThreadInfo &info) { #ifdef ARM_COMPUTE_ENABLE_FP16 const auto width_matrix_b = static_cast(output->info()->dimension(0)); @@ -57,8 +57,8 @@ void vector_matrix_multiply_f16(const ITensor *input0, const ITensor *input1, IT const auto num_elems_vec_a = static_cast(input0->info()->dimension(0)); // The implementation computes 16 elements per iteration - const int window_start_x = 16 * window.thread_id(); - const int window_step_x = 16 * window.num_threads(); + const int window_start_x = 16 * info.thread_id; + const int window_step_x = 16 * info.num_threads; // Make sure (window_end_x - window_start_x) is a multiple of window_step_x const int window_end_x = ceil_to_multiple(width_matrix_b - window_start_x, window_step_x) + window_start_x; @@ -169,15 +169,15 @@ void vector_matrix_multiply_f16(const ITensor *input0, const ITensor *input1, IT #endif /* ARM_COMPUTE_ENABLE_FP16 */ } -void vector_matrix_multiply_f32(const ITensor *input0, const ITensor *input1, ITensor *output, const Window &window) +void vector_matrix_multiply_f32(const ITensor *input0, const ITensor *input1, ITensor *output, const Window &window, const ThreadInfo &info) { const auto width_matrix_b = static_cast(output->info()->dimension(0)); const auto in_b_stride = static_cast(input1->info()->strides_in_bytes()[1] / data_size_from_type(input1->info()->data_type())); const auto num_elems_vec_a = static_cast(input0->info()->dimension(0)); // The implementation computes 16 elements per iteration - const int window_start_x = 16 * window.thread_id(); - const int window_step_x = 16 * window.num_threads(); + const int window_start_x = 16 * info.thread_id; + const int window_step_x = 16 * info.num_threads; // Make sure (window_end_x - window_start_x) is a multiple of window_step_x const int window_end_x = ceil_to_multiple(width_matrix_b - window_start_x, window_step_x) + window_start_x; @@ -337,7 +337,7 @@ void NELocallyConnectedMatrixMultiplyKernel::configure(const ITensor *input0, co INEKernel::configure(win); } -void NELocallyConnectedMatrixMultiplyKernel::run(const Window &window) +void NELocallyConnectedMatrixMultiplyKernel::run(const Window &window, const ThreadInfo &info) { ARM_COMPUTE_ERROR_ON_UNCONFIGURED_KERNEL(this); ARM_COMPUTE_ERROR_ON_INVALID_SUBWINDOW(INEKernel::window(), window); @@ -346,12 +346,12 @@ void NELocallyConnectedMatrixMultiplyKernel::run(const Window &window) { case DataType::F16: { - vector_matrix_multiply_f16(_input0, _input1, _output, window); + vector_matrix_multiply_f16(_input0, _input1, _output, window, info); break; } case DataType::F32: { - vector_matrix_multiply_f32(_input0, _input1, _output, window); + vector_matrix_multiply_f32(_input0, _input1, _output, window, info); break; } default: diff --git a/src/core/NEON/kernels/NEMagnitudePhaseKernel.cpp b/src/core/NEON/kernels/NEMagnitudePhaseKernel.cpp index 599dad6c70..433985f6fa 100644 --- a/src/core/NEON/kernels/NEMagnitudePhaseKernel.cpp +++ b/src/core/NEON/kernels/NEMagnitudePhaseKernel.cpp @@ -415,8 +415,9 @@ void NEMagnitudePhaseFP16Kernel::magnitude_phase(const Win } template -void NEMagnitudePhaseFP16Kernel::run(const Window &window) +void NEMagnitudePhaseFP16Kernel::run(const Window &window, const ThreadInfo &info) { + ARM_COMPUTE_UNUSED(info); ARM_COMPUTE_ERROR_ON_UNCONFIGURED_KERNEL(this); ARM_COMPUTE_ERROR_ON_INVALID_SUBWINDOW(INEKernel::window(), window); ARM_COMPUTE_ERROR_ON(_func == nullptr); @@ -854,8 +855,9 @@ void NEMagnitudePhaseKernel::magnitude_phase(const Window } template -void NEMagnitudePhaseKernel::run(const Window &window) +void NEMagnitudePhaseKernel::run(const Window &window, const ThreadInfo &info) { + ARM_COMPUTE_UNUSED(info); ARM_COMPUTE_ERROR_ON_UNCONFIGURED_KERNEL(this); ARM_COMPUTE_ERROR_ON_INVALID_SUBWINDOW(INEKernel::window(), window); ARM_COMPUTE_ERROR_ON(_func == nullptr); diff --git a/src/core/NEON/kernels/NEMeanStdDevKernel.cpp b/src/core/NEON/kernels/NEMeanStdDevKernel.cpp index cb32a3b45b..7895b009d6 100644 --- a/src/core/NEON/kernels/NEMeanStdDevKernel.cpp +++ b/src/core/NEON/kernels/NEMeanStdDevKernel.cpp @@ -120,8 +120,9 @@ void NEMeanStdDevKernel::configure(const IImage *input, float *mean, uint64_t *g INEKernel::configure(win); } -void NEMeanStdDevKernel::run(const Window &window) +void NEMeanStdDevKernel::run(const Window &window, const ThreadInfo &info) { + ARM_COMPUTE_UNUSED(info); ARM_COMPUTE_ERROR_ON_UNCONFIGURED_KERNEL(this); ARM_COMPUTE_ERROR_ON_INVALID_SUBWINDOW(INEKernel::window(), window); Iterator input(_input, window); diff --git a/src/core/NEON/kernels/NEMedian3x3Kernel.cpp b/src/core/NEON/kernels/NEMedian3x3Kernel.cpp index 601a0e109f..54ef33ec36 100644 --- a/src/core/NEON/kernels/NEMedian3x3Kernel.cpp +++ b/src/core/NEON/kernels/NEMedian3x3Kernel.cpp @@ -75,8 +75,9 @@ void NEMedian3x3Kernel::configure(const ITensor *input, ITensor *output, bool bo INEKernel::configure(win); } -void NEMedian3x3Kernel::run(const Window &window) +void NEMedian3x3Kernel::run(const Window &window, const ThreadInfo &info) { + ARM_COMPUTE_UNUSED(info); ARM_COMPUTE_ERROR_ON_UNCONFIGURED_KERNEL(this); ARM_COMPUTE_ERROR_ON_INVALID_SUBWINDOW(INESimpleKernel::window(), window); diff --git a/src/core/NEON/kernels/NEMinMaxLocationKernel.cpp b/src/core/NEON/kernels/NEMinMaxLocationKernel.cpp index 24c7af7af7..c7dc03c8c8 100644 --- a/src/core/NEON/kernels/NEMinMaxLocationKernel.cpp +++ b/src/core/NEON/kernels/NEMinMaxLocationKernel.cpp @@ -80,8 +80,9 @@ void NEMinMaxKernel::configure(const IImage *input, void *min, void *max) INEKernel::configure(win); } -void NEMinMaxKernel::run(const Window &window) +void NEMinMaxKernel::run(const Window &window, const ThreadInfo &info) { + ARM_COMPUTE_UNUSED(info); ARM_COMPUTE_ERROR_ON_UNCONFIGURED_KERNEL(this); ARM_COMPUTE_ERROR_ON_INVALID_SUBWINDOW(INEKernel::window(), window); ARM_COMPUTE_ERROR_ON(_func == nullptr); @@ -400,8 +401,9 @@ void NEMinMaxLocationKernel::configure(const IImage *input, void *min, void *max INEKernel::configure(win); } -void NEMinMaxLocationKernel::run(const Window &window) +void NEMinMaxLocationKernel::run(const Window &window, const ThreadInfo &info) { + ARM_COMPUTE_UNUSED(info); ARM_COMPUTE_ERROR_ON_UNCONFIGURED_KERNEL(this); ARM_COMPUTE_ERROR_ON_INVALID_SUBWINDOW(INEKernel::window(), window); ARM_COMPUTE_ERROR_ON(_func == nullptr); diff --git a/src/core/NEON/kernels/NENonLinearFilterKernel.cpp b/src/core/NEON/kernels/NENonLinearFilterKernel.cpp index 03d1409be1..ba68de638b 100644 --- a/src/core/NEON/kernels/NENonLinearFilterKernel.cpp +++ b/src/core/NEON/kernels/NENonLinearFilterKernel.cpp @@ -930,8 +930,9 @@ void NENonLinearFilterKernel::non_linear_filter_generic(const Window &win) input, output); } -void NENonLinearFilterKernel::run(const Window &window) +void NENonLinearFilterKernel::run(const Window &window, const ThreadInfo &info) { + ARM_COMPUTE_UNUSED(info); ARM_COMPUTE_ERROR_ON_UNCONFIGURED_KERNEL(this); ARM_COMPUTE_ERROR_ON_INVALID_SUBWINDOW(INEKernel::window(), window); diff --git a/src/core/NEON/kernels/NENonMaximaSuppression3x3Kernel.cpp b/src/core/NEON/kernels/NENonMaximaSuppression3x3Kernel.cpp index ece7b9a10f..b7dfb59252 100644 --- a/src/core/NEON/kernels/NENonMaximaSuppression3x3Kernel.cpp +++ b/src/core/NEON/kernels/NENonMaximaSuppression3x3Kernel.cpp @@ -495,8 +495,9 @@ void NENonMaximaSuppression3x3Kernel::configure(const ITensor *input, ITensor *o INEKernel::configure(win); } -void NENonMaximaSuppression3x3Kernel::run(const Window &window) +void NENonMaximaSuppression3x3Kernel::run(const Window &window, const ThreadInfo &info) { + ARM_COMPUTE_UNUSED(info); ARM_COMPUTE_ERROR_ON_UNCONFIGURED_KERNEL(this); ARM_COMPUTE_ERROR_ON_INVALID_SUBWINDOW(INEKernel::window(), window); ARM_COMPUTE_ERROR_ON(_func == nullptr); diff --git a/src/core/NEON/kernels/NENormalizationLayerKernel.cpp b/src/core/NEON/kernels/NENormalizationLayerKernel.cpp index 0e15244f0e..b444c9d4df 100644 --- a/src/core/NEON/kernels/NENormalizationLayerKernel.cpp +++ b/src/core/NEON/kernels/NENormalizationLayerKernel.cpp @@ -373,8 +373,9 @@ void NENormalizationLayerKernel::normalize_fixed_point(const Window &window) } } -void NENormalizationLayerKernel::run(const Window &window) +void NENormalizationLayerKernel::run(const Window &window, const ThreadInfo &info) { + ARM_COMPUTE_UNUSED(info); ARM_COMPUTE_ERROR_ON_UNCONFIGURED_KERNEL(this); ARM_COMPUTE_ERROR_ON_INVALID_SUBWINDOW(INEKernel::window(), window); ARM_COMPUTE_ERROR_ON(_func == nullptr); diff --git a/src/core/NEON/kernels/NEPixelWiseMultiplicationKernel.cpp b/src/core/NEON/kernels/NEPixelWiseMultiplicationKernel.cpp index 33663eb57d..40dcc710de 100644 --- a/src/core/NEON/kernels/NEPixelWiseMultiplicationKernel.cpp +++ b/src/core/NEON/kernels/NEPixelWiseMultiplicationKernel.cpp @@ -639,8 +639,9 @@ void NEPixelWiseMultiplicationKernel::configure(const ITensor *input1, const ITe INEKernel::configure(win); } -void NEPixelWiseMultiplicationKernel::run(const Window &window) +void NEPixelWiseMultiplicationKernel::run(const Window &window, const ThreadInfo &info) { + ARM_COMPUTE_UNUSED(info); ARM_COMPUTE_ERROR_ON_UNCONFIGURED_KERNEL(this); ARM_COMPUTE_ERROR_ON_INVALID_SUBWINDOW(INEKernel::window(), window); diff --git a/src/core/NEON/kernels/NEPoolingLayerKernel.cpp b/src/core/NEON/kernels/NEPoolingLayerKernel.cpp index 63c7c8ea47..fdcbd5a898 100644 --- a/src/core/NEON/kernels/NEPoolingLayerKernel.cpp +++ b/src/core/NEON/kernels/NEPoolingLayerKernel.cpp @@ -805,8 +805,9 @@ void NEPoolingLayerKernel::pooling7_f32(const Window &window_input, const Window input, output); } -void NEPoolingLayerKernel::run(const Window &window) +void NEPoolingLayerKernel::run(const Window &window, const ThreadInfo &info) { + ARM_COMPUTE_UNUSED(info); ARM_COMPUTE_ERROR_ON_UNCONFIGURED_KERNEL(this); ARM_COMPUTE_ERROR_ON_INVALID_SUBWINDOW(INEKernel::window(), window); ARM_COMPUTE_ERROR_ON(_func == nullptr); diff --git a/src/core/NEON/kernels/NEQuantizationLayerKernel.cpp b/src/core/NEON/kernels/NEQuantizationLayerKernel.cpp index fbf7e1ba87..a596d835cb 100644 --- a/src/core/NEON/kernels/NEQuantizationLayerKernel.cpp +++ b/src/core/NEON/kernels/NEQuantizationLayerKernel.cpp @@ -66,8 +66,9 @@ void NEQuantizationLayerKernel::configure(const ITensor *input, ITensor *output, INEKernel::configure(win); } -void NEQuantizationLayerKernel::run(const Window &window) +void NEQuantizationLayerKernel::run(const Window &window, const ThreadInfo &info) { + ARM_COMPUTE_UNUSED(info); ARM_COMPUTE_ERROR_ON_UNCONFIGURED_KERNEL(this); ARM_COMPUTE_ERROR_ON_INVALID_SUBWINDOW(INEKernel::window(), window); diff --git a/src/core/NEON/kernels/NEROIPoolingLayerKernel.cpp b/src/core/NEON/kernels/NEROIPoolingLayerKernel.cpp index fd6210021c..83ab611b67 100644 --- a/src/core/NEON/kernels/NEROIPoolingLayerKernel.cpp +++ b/src/core/NEON/kernels/NEROIPoolingLayerKernel.cpp @@ -79,8 +79,9 @@ void NEROIPoolingLayerKernel::configure(const ITensor *input, const IROIArray *r INEKernel::configure(window); } -void NEROIPoolingLayerKernel::run(const Window &window) +void NEROIPoolingLayerKernel::run(const Window &window, const ThreadInfo &info) { + ARM_COMPUTE_UNUSED(info); ARM_COMPUTE_ERROR_ON_UNCONFIGURED_KERNEL(this); ARM_COMPUTE_ERROR_ON_INVALID_SUBWINDOW(INEKernel::window(), window); diff --git a/src/core/NEON/kernels/NEReductionOperationKernel.cpp b/src/core/NEON/kernels/NEReductionOperationKernel.cpp index 5c8954609b..1a50ed8bfc 100644 --- a/src/core/NEON/kernels/NEReductionOperationKernel.cpp +++ b/src/core/NEON/kernels/NEReductionOperationKernel.cpp @@ -141,8 +141,9 @@ void NEReductionOperationKernel::configure(const ITensor *input, ITensor *output INEKernel::configure(win); } -void NEReductionOperationKernel::run(const Window &window) +void NEReductionOperationKernel::run(const Window &window, const ThreadInfo &info) { + ARM_COMPUTE_UNUSED(info); ARM_COMPUTE_ERROR_ON_UNCONFIGURED_KERNEL(this); ARM_COMPUTE_ERROR_ON_INVALID_SUBWINDOW(INEKernel::window(), window); diff --git a/src/core/NEON/kernels/NERemapKernel.cpp b/src/core/NEON/kernels/NERemapKernel.cpp index c3c44a5f32..2dbabca2e3 100644 --- a/src/core/NEON/kernels/NERemapKernel.cpp +++ b/src/core/NEON/kernels/NERemapKernel.cpp @@ -216,8 +216,9 @@ void NERemapKernel::remap_bilinear(const Window &window) in, out, mapx, mapy); } -void NERemapKernel::run(const Window &window) +void NERemapKernel::run(const Window &window, const ThreadInfo &info) { + ARM_COMPUTE_UNUSED(info); ARM_COMPUTE_ERROR_ON_UNCONFIGURED_KERNEL(this); ARM_COMPUTE_ERROR_ON_INVALID_SUBWINDOW(INEKernel::window(), window); ARM_COMPUTE_ERROR_ON(_func == nullptr); diff --git a/src/core/NEON/kernels/NEScaleKernel.cpp b/src/core/NEON/kernels/NEScaleKernel.cpp index ae164eb979..7ec4212227 100644 --- a/src/core/NEON/kernels/NEScaleKernel.cpp +++ b/src/core/NEON/kernels/NEScaleKernel.cpp @@ -363,8 +363,9 @@ void NEScaleKernel::scale_area(const Window &window) in, out); } -void NEScaleKernel::run(const Window &window) +void NEScaleKernel::run(const Window &window, const ThreadInfo &info) { + ARM_COMPUTE_UNUSED(info); ARM_COMPUTE_ERROR_ON_UNCONFIGURED_KERNEL(this); ARM_COMPUTE_ERROR_ON_INVALID_SUBWINDOW(INEKernel::window(), window); ARM_COMPUTE_ERROR_ON(_func == nullptr); diff --git a/src/core/NEON/kernels/NEScharr3x3Kernel.cpp b/src/core/NEON/kernels/NEScharr3x3Kernel.cpp index 183df1efcb..f23c31bc0a 100644 --- a/src/core/NEON/kernels/NEScharr3x3Kernel.cpp +++ b/src/core/NEON/kernels/NEScharr3x3Kernel.cpp @@ -135,8 +135,9 @@ BorderSize NEScharr3x3Kernel::border_size() const return BorderSize(1); } -void NEScharr3x3Kernel::run(const Window &window) +void NEScharr3x3Kernel::run(const Window &window, const ThreadInfo &info) { + ARM_COMPUTE_UNUSED(info); ARM_COMPUTE_ERROR_ON_UNCONFIGURED_KERNEL(this); ARM_COMPUTE_ERROR_ON_INVALID_SUBWINDOW(INEKernel::window(), window); diff --git a/src/core/NEON/kernels/NESobel3x3Kernel.cpp b/src/core/NEON/kernels/NESobel3x3Kernel.cpp index ab08a1cfeb..5a80630a76 100644 --- a/src/core/NEON/kernels/NESobel3x3Kernel.cpp +++ b/src/core/NEON/kernels/NESobel3x3Kernel.cpp @@ -88,8 +88,9 @@ void NESobel3x3Kernel::configure(const ITensor *input, ITensor *output_x, ITenso INEKernel::configure(win); } -void NESobel3x3Kernel::run(const Window &window) +void NESobel3x3Kernel::run(const Window &window, const ThreadInfo &info) { + ARM_COMPUTE_UNUSED(info); ARM_COMPUTE_ERROR_ON_UNCONFIGURED_KERNEL(this); ARM_COMPUTE_ERROR_ON_INVALID_SUBWINDOW(INEKernel::window(), window); diff --git a/src/core/NEON/kernels/NESobel5x5Kernel.cpp b/src/core/NEON/kernels/NESobel5x5Kernel.cpp index 488eee1176..30e7817aa4 100644 --- a/src/core/NEON/kernels/NESobel5x5Kernel.cpp +++ b/src/core/NEON/kernels/NESobel5x5Kernel.cpp @@ -90,8 +90,9 @@ void NESobel5x5HorKernel::configure(const ITensor *input, ITensor *output_x, ITe INEKernel::configure(win); } -void NESobel5x5HorKernel::run(const Window &window) +void NESobel5x5HorKernel::run(const Window &window, const ThreadInfo &info) { + ARM_COMPUTE_UNUSED(info); ARM_COMPUTE_ERROR_ON_UNCONFIGURED_KERNEL(this); ARM_COMPUTE_ERROR_ON_INVALID_SUBWINDOW(INEKernel::window(), window); @@ -261,8 +262,9 @@ void NESobel5x5VertKernel::configure(ITensor *input_x, ITensor *input_y, ITensor INEKernel::configure(win); } -void NESobel5x5VertKernel::run(const Window &window) +void NESobel5x5VertKernel::run(const Window &window, const ThreadInfo &info) { + ARM_COMPUTE_UNUSED(info); ARM_COMPUTE_ERROR_ON_UNCONFIGURED_KERNEL(this); ARM_COMPUTE_ERROR_ON_INVALID_SUBWINDOW(INEKernel::window(), window); diff --git a/src/core/NEON/kernels/NESobel7x7Kernel.cpp b/src/core/NEON/kernels/NESobel7x7Kernel.cpp index 9761942c69..4cc80f8e2e 100644 --- a/src/core/NEON/kernels/NESobel7x7Kernel.cpp +++ b/src/core/NEON/kernels/NESobel7x7Kernel.cpp @@ -193,8 +193,9 @@ void NESobel7x7HorKernel::configure(const ITensor *input, ITensor *output_x, ITe INEKernel::configure(win); } -void NESobel7x7HorKernel::run(const Window &window) +void NESobel7x7HorKernel::run(const Window &window, const ThreadInfo &info) { + ARM_COMPUTE_UNUSED(info); ARM_COMPUTE_ERROR_ON_UNCONFIGURED_KERNEL(this); ARM_COMPUTE_ERROR_ON_INVALID_SUBWINDOW(INEKernel::window(), window); @@ -351,8 +352,9 @@ void NESobel7x7VertKernel::configure(const ITensor *input_x, const ITensor *inpu INEKernel::configure(win); } -void NESobel7x7VertKernel::run(const Window &window) +void NESobel7x7VertKernel::run(const Window &window, const ThreadInfo &info) { + ARM_COMPUTE_UNUSED(info); ARM_COMPUTE_ERROR_ON_UNCONFIGURED_KERNEL(this); ARM_COMPUTE_ERROR_ON_INVALID_SUBWINDOW(INEKernel::window(), window); diff --git a/src/core/NEON/kernels/NESoftmaxLayerKernel.cpp b/src/core/NEON/kernels/NESoftmaxLayerKernel.cpp index 4fed16b5fa..648dac46c0 100644 --- a/src/core/NEON/kernels/NESoftmaxLayerKernel.cpp +++ b/src/core/NEON/kernels/NESoftmaxLayerKernel.cpp @@ -239,8 +239,9 @@ void NELogits1DMaxKernel::configure(const ITensor *input, ITensor *output) INEKernel::configure(win); } -void NELogits1DMaxKernel::run(const Window &window) +void NELogits1DMaxKernel::run(const Window &window, const ThreadInfo &info) { + ARM_COMPUTE_UNUSED(info); ARM_COMPUTE_ERROR_ON_UNCONFIGURED_KERNEL(this); ARM_COMPUTE_ERROR_ON_INVALID_SUBWINDOW(INEKernel::window(), window); ARM_COMPUTE_ERROR_ON(_func == nullptr); @@ -560,8 +561,9 @@ void NELogits1DShiftExpSumKernel::configure(const ITensor *input, const ITensor INEKernel::configure(win); } -void NELogits1DShiftExpSumKernel::run(const Window &window) +void NELogits1DShiftExpSumKernel::run(const Window &window, const ThreadInfo &info) { + ARM_COMPUTE_UNUSED(info); ARM_COMPUTE_ERROR_ON_UNCONFIGURED_KERNEL(this); ARM_COMPUTE_ERROR_ON_INVALID_SUBWINDOW(INEKernel::window(), window); ARM_COMPUTE_ERROR_ON(_func == nullptr); @@ -758,8 +760,9 @@ void NELogits1DNormKernel::configure(const ITensor *input, const ITensor *sum, I INEKernel::configure(win); } -void NELogits1DNormKernel::run(const Window &window) +void NELogits1DNormKernel::run(const Window &window, const ThreadInfo &info) { + ARM_COMPUTE_UNUSED(info); ARM_COMPUTE_ERROR_ON_UNCONFIGURED_KERNEL(this); ARM_COMPUTE_ERROR_ON_INVALID_SUBWINDOW(INEKernel::window(), window); ARM_COMPUTE_ERROR_ON(_func == nullptr); diff --git a/src/core/NEON/kernels/NETableLookupKernel.cpp b/src/core/NEON/kernels/NETableLookupKernel.cpp index f0b58d82f6..958f4a9cfb 100644 --- a/src/core/NEON/kernels/NETableLookupKernel.cpp +++ b/src/core/NEON/kernels/NETableLookupKernel.cpp @@ -133,8 +133,9 @@ void NETableLookupKernel::configure(const ITensor *input, const ILut *lut, ITens INESimpleKernel::configure(input, output, num_num_elems_processed_per_iteration); } -void NETableLookupKernel::run(const Window &window) +void NETableLookupKernel::run(const Window &window, const ThreadInfo &info) { + ARM_COMPUTE_UNUSED(info); ARM_COMPUTE_ERROR_ON_UNCONFIGURED_KERNEL(this); ARM_COMPUTE_ERROR_ON_INVALID_SUBWINDOW(INESimpleKernel::window(), window); ARM_COMPUTE_ERROR_ON(_func == nullptr); diff --git a/src/core/NEON/kernels/NEThresholdKernel.cpp b/src/core/NEON/kernels/NEThresholdKernel.cpp index 72031195d9..5ef06931cc 100644 --- a/src/core/NEON/kernels/NEThresholdKernel.cpp +++ b/src/core/NEON/kernels/NEThresholdKernel.cpp @@ -119,8 +119,9 @@ inline void NEThresholdKernel::run_range(const Window &window) input, output); } -void NEThresholdKernel::run(const Window &window) +void NEThresholdKernel::run(const Window &window, const ThreadInfo &info) { + ARM_COMPUTE_UNUSED(info); ARM_COMPUTE_ERROR_ON_UNCONFIGURED_KERNEL(this); ARM_COMPUTE_ERROR_ON_INVALID_SUBWINDOW(INEKernel::window(), window); ARM_COMPUTE_ERROR_ON(_func == nullptr); diff --git a/src/core/NEON/kernels/NETransposeKernel.cpp b/src/core/NEON/kernels/NETransposeKernel.cpp index 732a0ef4f6..1cfaafe93a 100644 --- a/src/core/NEON/kernels/NETransposeKernel.cpp +++ b/src/core/NEON/kernels/NETransposeKernel.cpp @@ -233,8 +233,9 @@ void NETransposeKernel::configure(const ITensor *input, ITensor *output) INEKernel::configure(win); } -void NETransposeKernel::run(const Window &window) +void NETransposeKernel::run(const Window &window, const ThreadInfo &info) { + ARM_COMPUTE_UNUSED(info); ARM_COMPUTE_ERROR_ON_UNCONFIGURED_KERNEL(this); ARM_COMPUTE_ERROR_ON_INVALID_SUBWINDOW(INEKernel::window(), window); ARM_COMPUTE_ERROR_ON(_func == nullptr); diff --git a/src/core/NEON/kernels/NEWarpKernel.cpp b/src/core/NEON/kernels/NEWarpKernel.cpp index a1ec1a0b51..b13e99e800 100644 --- a/src/core/NEON/kernels/NEWarpKernel.cpp +++ b/src/core/NEON/kernels/NEWarpKernel.cpp @@ -54,8 +54,9 @@ BorderSize INEWarpKernel::border_size() const return BorderSize(1); } -void INEWarpKernel::run(const Window &window) +void INEWarpKernel::run(const Window &window, const ThreadInfo &info) { + ARM_COMPUTE_UNUSED(info); ARM_COMPUTE_ERROR_ON_UNCONFIGURED_KERNEL(this); ARM_COMPUTE_ERROR_ON_INVALID_SUBWINDOW(INEKernel::window(), window); ARM_COMPUTE_ERROR_ON(_func == nullptr); diff --git a/src/core/NEON/kernels/NEWeightsReshapeKernel.cpp b/src/core/NEON/kernels/NEWeightsReshapeKernel.cpp index d685ec7962..d52e88c37a 100644 --- a/src/core/NEON/kernels/NEWeightsReshapeKernel.cpp +++ b/src/core/NEON/kernels/NEWeightsReshapeKernel.cpp @@ -165,8 +165,9 @@ void NEWeightsReshapeKernel::configure(const ITensor *input, const ITensor *bias INEKernel::configure(window); } -void NEWeightsReshapeKernel::run(const Window &window) +void NEWeightsReshapeKernel::run(const Window &window, const ThreadInfo &info) { + ARM_COMPUTE_UNUSED(info); ARM_COMPUTE_ERROR_ON_UNCONFIGURED_KERNEL(this); ARM_COMPUTE_ERROR_ON_INVALID_SUBWINDOW(INEKernel::window(), window); diff --git a/src/runtime/CL/functions/CLHOGMultiDetection.cpp b/src/runtime/CL/functions/CLHOGMultiDetection.cpp index 6def2dedc9..9eed355710 100644 --- a/src/runtime/CL/functions/CLHOGMultiDetection.cpp +++ b/src/runtime/CL/functions/CLHOGMultiDetection.cpp @@ -29,6 +29,7 @@ #include "arm_compute/runtime/CL/CLArray.h" #include "arm_compute/runtime/CL/CLScheduler.h" #include "arm_compute/runtime/CL/CLTensor.h" +#include "arm_compute/runtime/Scheduler.h" #include "support/ToolchainSupport.h" using namespace arm_compute; @@ -246,7 +247,7 @@ void CLHOGMultiDetection::run() { // Map detection windows array before computing non maxima suppression _detection_windows->map(CLScheduler::get().queue(), true); - _non_maxima_kernel->run(_non_maxima_kernel->window()); + Scheduler::get().schedule(_non_maxima_kernel.get(), Window::DimY); _detection_windows->unmap(CLScheduler::get().queue()); } } diff --git a/src/runtime/CL/functions/CLHarrisCorners.cpp b/src/runtime/CL/functions/CLHarrisCorners.cpp index 8f9fcdc58f..2140240753 100644 --- a/src/runtime/CL/functions/CLHarrisCorners.cpp +++ b/src/runtime/CL/functions/CLHarrisCorners.cpp @@ -165,6 +165,6 @@ void CLHarrisCorners::run() _nonmax.unmap(); _corners->map(CLScheduler::get().queue(), true); - _sort_euclidean.run(_sort_euclidean.window()); + Scheduler::get().schedule(&_sort_euclidean, Window::DimY); _corners->unmap(CLScheduler::get().queue()); } diff --git a/src/runtime/CPP/CPPScheduler.cpp b/src/runtime/CPP/CPPScheduler.cpp index 2a321a1101..9cc3f033c2 100644 --- a/src/runtime/CPP/CPPScheduler.cpp +++ b/src/runtime/CPP/CPPScheduler.cpp @@ -52,7 +52,7 @@ public: * This function will return as soon as the kernel has been sent to the worker thread. * wait() needs to be called to ensure the execution is complete. */ - void start(ICPPKernel *kernel, const Window &window); + void start(ICPPKernel *kernel, const Window &window, const ThreadInfo &info); /** Wait for the current kernel execution to complete */ void wait(); @@ -64,13 +64,14 @@ private: std::thread _thread; ICPPKernel *_kernel{ nullptr }; Window _window; + ThreadInfo _info; sem_t _wait_for_work; sem_t _job_complete; std::exception_ptr _current_exception; }; Thread::Thread() - : _thread(), _window(), _wait_for_work(), _job_complete(), _current_exception(nullptr) + : _thread(), _window(), _info(), _wait_for_work(), _job_complete(), _current_exception(nullptr) { int ret = sem_init(&_wait_for_work, 0, 0); ARM_COMPUTE_ERROR_ON(ret < 0); @@ -87,7 +88,7 @@ Thread::~Thread() { ARM_COMPUTE_ERROR_ON(!_thread.joinable()); - start(nullptr, Window()); + start(nullptr, Window(), ThreadInfo()); _thread.join(); int ret = sem_destroy(&_wait_for_work); @@ -99,10 +100,11 @@ Thread::~Thread() ARM_COMPUTE_UNUSED(ret); } -void Thread::start(ICPPKernel *kernel, const Window &window) +void Thread::start(ICPPKernel *kernel, const Window &window, const ThreadInfo &info) { _kernel = kernel; _window = window; + _info = info; int ret = sem_post(&_wait_for_work); ARM_COMPUTE_UNUSED(ret); ARM_COMPUTE_ERROR_ON(ret < 0); @@ -133,7 +135,7 @@ void Thread::worker_thread() try { _window.validate(); - _kernel->run(_window); + _kernel->run(_window, _info); } catch(...) { @@ -163,8 +165,7 @@ CPPScheduler &CPPScheduler::get() CPPScheduler::CPPScheduler() : _num_threads(std::thread::hardware_concurrency()), - _threads(std::unique_ptr(new Thread[std::thread::hardware_concurrency() - 1], delete_threads)), - _target(CPUTarget::INTRINSICS) + _threads(std::unique_ptr(new Thread[std::thread::hardware_concurrency() - 1], delete_threads)) { } @@ -179,50 +180,42 @@ unsigned int CPPScheduler::num_threads() const return _num_threads; } -void CPPScheduler::set_target(CPUTarget target) -{ - _target = target; -} - -CPUTarget CPPScheduler::target() const -{ - return _target; -} - void CPPScheduler::schedule(ICPPKernel *kernel, unsigned int split_dimension) { ARM_COMPUTE_ERROR_ON_MSG(!kernel, "The child class didn't set the kernel"); /** [Scheduler example] */ + ThreadInfo info; + info.cpu = _target; + const Window &max_window = kernel->window(); const unsigned int num_iterations = max_window.num_iterations(split_dimension); - const unsigned int num_threads = std::min(num_iterations, _num_threads); + info.num_threads = std::min(num_iterations, _num_threads); - if(!kernel->is_parallelisable() || 1 == num_threads) + if(!kernel->is_parallelisable() || info.num_threads == 1) { - kernel->run(max_window); + kernel->run(max_window, info); } else { - for(unsigned int t = 0; t < num_threads; ++t) + for(int t = 0; t < info.num_threads; ++t) { - Window win = max_window.split_window(split_dimension, t, num_threads); - win.set_thread_id(t); - win.set_num_threads(num_threads); + Window win = max_window.split_window(split_dimension, t, info.num_threads); + info.thread_id = t; - if(t != num_threads - 1) + if(t != info.num_threads - 1) { - _threads[t].start(kernel, win); + _threads[t].start(kernel, win, info); } else { - kernel->run(win); + kernel->run(win, info); } } try { - for(unsigned int t = 1; t < num_threads; ++t) + for(int t = 1; t < info.num_threads; ++t) { _threads[t - 1].wait(); } diff --git a/src/runtime/CPP/SingleThreadScheduler.cpp b/src/runtime/CPP/SingleThreadScheduler.cpp index f086813e91..4e46a59fd0 100644 --- a/src/runtime/CPP/SingleThreadScheduler.cpp +++ b/src/runtime/CPP/SingleThreadScheduler.cpp @@ -38,12 +38,15 @@ SingleThreadScheduler &SingleThreadScheduler::get() void SingleThreadScheduler::set_num_threads(unsigned int num_threads) { ARM_COMPUTE_UNUSED(num_threads); + ARM_COMPUTE_ERROR_ON(num_threads != 1); } void SingleThreadScheduler::schedule(ICPPKernel *kernel, unsigned int split_dimension) { ARM_COMPUTE_UNUSED(split_dimension); - kernel->run(kernel->window()); + ThreadInfo info; + info.cpu = _target; + kernel->run(kernel->window(), info); } unsigned int SingleThreadScheduler::num_threads() const diff --git a/src/runtime/NEON/INESimpleFunction.cpp b/src/runtime/NEON/INESimpleFunction.cpp index a748a1e4ad..23d9872294 100644 --- a/src/runtime/NEON/INESimpleFunction.cpp +++ b/src/runtime/NEON/INESimpleFunction.cpp @@ -35,6 +35,6 @@ INESimpleFunction::INESimpleFunction() // NOLINT void INESimpleFunction::run() { - _border_handler.run(_border_handler.window()); + NEScheduler::get().schedule(&_border_handler, Window::DimZ); NEScheduler::get().schedule(_kernel.get(), Window::DimY); } diff --git a/src/runtime/NEON/functions/NECannyEdge.cpp b/src/runtime/NEON/functions/NECannyEdge.cpp index ca8877e2fc..318cea2342 100644 --- a/src/runtime/NEON/functions/NECannyEdge.cpp +++ b/src/runtime/NEON/functions/NECannyEdge.cpp @@ -161,7 +161,7 @@ void NECannyEdge::run() _sobel->run(); // Fill border before non-maxima suppression. Nop for border mode undefined. - _border_mag_gradient.run(_border_mag_gradient.window()); + NEScheduler::get().schedule(&_border_mag_gradient, Window::DimZ); // Run gradient NEScheduler::get().schedule(_gradient.get(), Window::DimY); @@ -173,8 +173,8 @@ void NECannyEdge::run() memset(_output->buffer(), 0, _output->info()->total_size()); // Fill border before edge trace - _border_edge_trace.run(_border_edge_trace.window()); + NEScheduler::get().schedule(&_border_edge_trace, Window::DimZ); // Run edge tracing - _edge_trace.run(_edge_trace.window()); + NEScheduler::get().schedule(&_edge_trace, Window::DimY); } diff --git a/src/runtime/NEON/functions/NEConvolution.cpp b/src/runtime/NEON/functions/NEConvolution.cpp index 4ad6450c67..249274ba32 100644 --- a/src/runtime/NEON/functions/NEConvolution.cpp +++ b/src/runtime/NEON/functions/NEConvolution.cpp @@ -94,7 +94,7 @@ void NEConvolutionSquare::configure(ITensor *input, ITensor *output template void NEConvolutionSquare::run() { - _border_handler.run(_border_handler.window()); + NEScheduler::get().schedule(&_border_handler, Window::DimZ); if(_is_separable) { diff --git a/src/runtime/NEON/functions/NEDerivative.cpp b/src/runtime/NEON/functions/NEDerivative.cpp index c50db14746..81180307f6 100644 --- a/src/runtime/NEON/functions/NEDerivative.cpp +++ b/src/runtime/NEON/functions/NEDerivative.cpp @@ -47,6 +47,6 @@ void NEDerivative::configure(ITensor *input, ITensor *output_x, ITensor *output_ void NEDerivative::run() { - _border_handler.run(_border_handler.window()); + NEScheduler::get().schedule(&_border_handler, Window::DimZ); NEScheduler::get().schedule(&_kernel, Window::DimY); } diff --git a/src/runtime/NEON/functions/NEDirectConvolutionLayer.cpp b/src/runtime/NEON/functions/NEDirectConvolutionLayer.cpp index 2e3a6835dc..810efe539f 100644 --- a/src/runtime/NEON/functions/NEDirectConvolutionLayer.cpp +++ b/src/runtime/NEON/functions/NEDirectConvolutionLayer.cpp @@ -85,7 +85,7 @@ void NEDirectConvolutionLayer::configure(ITensor *input, const ITensor *weights, void NEDirectConvolutionLayer::run() { - _input_border_handler.run(_input_border_handler.window()); + NEScheduler::get().schedule(&_input_border_handler, Window::DimZ); NEScheduler::get().schedule(&_conv_kernel, Window::DimZ); NEScheduler::get().schedule(&_accumulate_bias_kernel, Window::DimY); diff --git a/src/runtime/NEON/functions/NEEqualizeHistogram.cpp b/src/runtime/NEON/functions/NEEqualizeHistogram.cpp index f6ec677e44..70b93cae9e 100644 --- a/src/runtime/NEON/functions/NEEqualizeHistogram.cpp +++ b/src/runtime/NEON/functions/NEEqualizeHistogram.cpp @@ -55,7 +55,7 @@ void NEEqualizeHistogram::run() NEScheduler::get().schedule(&_histogram_kernel, Window::DimY); // Calculate cumulative distribution of histogram and create LUT. - _cd_histogram_kernel.run(_cd_histogram_kernel.window()); + NEScheduler::get().schedule(&_cd_histogram_kernel, Window::DimY); // Map input to output using created LUT. NEScheduler::get().schedule(&_map_histogram_kernel, Window::DimY); diff --git a/src/runtime/NEON/functions/NEFastCorners.cpp b/src/runtime/NEON/functions/NEFastCorners.cpp index 33a58f1904..265041fc42 100644 --- a/src/runtime/NEON/functions/NEFastCorners.cpp +++ b/src/runtime/NEON/functions/NEFastCorners.cpp @@ -88,7 +88,7 @@ void NEFastCorners::configure(IImage *input, float threshold, bool nonmax_suppre void NEFastCorners::run() { - _border_handler.run(_border_handler.window()); + NEScheduler::get().schedule(&_border_handler, Window::DimZ); NEScheduler::get().schedule(&_fast_corners_kernel, Window::DimY); diff --git a/src/runtime/NEON/functions/NEGaussian5x5.cpp b/src/runtime/NEON/functions/NEGaussian5x5.cpp index 69639d0d43..a1ce985633 100644 --- a/src/runtime/NEON/functions/NEGaussian5x5.cpp +++ b/src/runtime/NEON/functions/NEGaussian5x5.cpp @@ -54,7 +54,7 @@ void NEGaussian5x5::configure(ITensor *input, ITensor *output, BorderMode border void NEGaussian5x5::run() { - _border_handler.run(_border_handler.window()); + NEScheduler::get().schedule(&_border_handler, Window::DimZ); NEScheduler::get().schedule(&_kernel_hor, Window::DimY); NEScheduler::get().schedule(&_kernel_vert, Window::DimY); } diff --git a/src/runtime/NEON/functions/NEGaussianPyramid.cpp b/src/runtime/NEON/functions/NEGaussianPyramid.cpp index e857aabd3b..90bd5842eb 100644 --- a/src/runtime/NEON/functions/NEGaussianPyramid.cpp +++ b/src/runtime/NEON/functions/NEGaussianPyramid.cpp @@ -109,7 +109,7 @@ void NEGaussianPyramidHalf::run() for(unsigned int i = 0; i < num_levels - 1; ++i) { - _border_handler[i].run(_border_handler[i].window()); + NEScheduler::get().schedule(_border_handler.get() + i, Window::DimZ); NEScheduler::get().schedule(_horizontal_reduction.get() + i, Window::DimY); NEScheduler::get().schedule(_vertical_reduction.get() + i, Window::DimY); } diff --git a/src/runtime/NEON/functions/NEHOGMultiDetection.cpp b/src/runtime/NEON/functions/NEHOGMultiDetection.cpp index 8b3d01423c..1a038a2f62 100644 --- a/src/runtime/NEON/functions/NEHOGMultiDetection.cpp +++ b/src/runtime/NEON/functions/NEHOGMultiDetection.cpp @@ -239,6 +239,6 @@ void NEHOGMultiDetection::run() // Run non-maxima suppression kernel if enabled if(_non_maxima_suppression) { - _non_maxima_kernel->run(_non_maxima_kernel->window()); + NEScheduler::get().schedule(_non_maxima_kernel.get(), Window::DimY); } } diff --git a/src/runtime/NEON/functions/NEHarrisCorners.cpp b/src/runtime/NEON/functions/NEHarrisCorners.cpp index 24b2bcb5b3..7ec681dce9 100644 --- a/src/runtime/NEON/functions/NEHarrisCorners.cpp +++ b/src/runtime/NEON/functions/NEHarrisCorners.cpp @@ -207,8 +207,8 @@ void NEHarrisCorners::run() _sobel->run(); // Fill border before harris score kernel - _border_gx.run(_border_gx.window()); - _border_gy.run(_border_gy.window()); + NEScheduler::get().schedule(&_border_gx, Window::DimZ); + NEScheduler::get().schedule(&_border_gy, Window::DimZ); // Run harris score kernel NEScheduler::get().schedule(_harris_score.get(), Window::DimY); @@ -220,5 +220,5 @@ void NEHarrisCorners::run() NEScheduler::get().schedule(&_candidates, Window::DimY); // Run sort & euclidean distance - _sort_euclidean.run(_sort_euclidean.window()); + NEScheduler::get().schedule(&_sort_euclidean, Window::DimY); } diff --git a/src/runtime/NEON/functions/NEMeanStdDev.cpp b/src/runtime/NEON/functions/NEMeanStdDev.cpp index ab8e72bf1d..2304bc80d7 100644 --- a/src/runtime/NEON/functions/NEMeanStdDev.cpp +++ b/src/runtime/NEON/functions/NEMeanStdDev.cpp @@ -43,6 +43,6 @@ void NEMeanStdDev::run() _global_sum = 0; _global_sum_squared = 0; - _fill_border_kernel.run(_fill_border_kernel.window()); + NEScheduler::get().schedule(&_fill_border_kernel, Window::DimZ); NEScheduler::get().schedule(&_mean_stddev_kernel, Window::DimY); } diff --git a/src/runtime/NEON/functions/NESobel5x5.cpp b/src/runtime/NEON/functions/NESobel5x5.cpp index 8967a22ba1..305d21122e 100644 --- a/src/runtime/NEON/functions/NESobel5x5.cpp +++ b/src/runtime/NEON/functions/NESobel5x5.cpp @@ -75,7 +75,7 @@ void NESobel5x5::configure(ITensor *input, ITensor *output_x, ITensor *output_y, void NESobel5x5::run() { - _border_handler.run(_border_handler.window()); + NEScheduler::get().schedule(&_border_handler, Window::DimZ); NEScheduler::get().schedule(&_sobel_hor, Window::DimY); NEScheduler::get().schedule(&_sobel_vert, Window::DimY); } diff --git a/src/runtime/NEON/functions/NESobel7x7.cpp b/src/runtime/NEON/functions/NESobel7x7.cpp index f628da9709..57fe028567 100644 --- a/src/runtime/NEON/functions/NESobel7x7.cpp +++ b/src/runtime/NEON/functions/NESobel7x7.cpp @@ -75,7 +75,7 @@ void NESobel7x7::configure(ITensor *input, ITensor *output_x, ITensor *output_y, void NESobel7x7::run() { - _border_handler.run(_border_handler.window()); + NEScheduler::get().schedule(&_border_handler, Window::DimZ); NEScheduler::get().schedule(&_sobel_hor, Window::DimY); NEScheduler::get().schedule(&_sobel_vert, Window::DimY); } -- cgit v1.2.1