From e8a4983c7bc00ad105389876a8eddd89ed4ef056 Mon Sep 17 00:00:00 2001 From: Anthony Barbier Date: Thu, 18 Jan 2018 10:04:05 +0000 Subject: COMPMID-798 Add instrumentation to NEON kernels Change-Id: I9dbb090cac731d68bd98a7d1c8ab0e1cb0a5c911 Reviewed-on: https://eu-gerrit-1.euhpc.arm.com/116746 Reviewed-by: Georgios Pinitas Reviewed-by: Pablo Tello Tested-by: Anthony Barbier --- arm_compute/core/CPP/ICPPKernel.h | 8 +- .../core/CPP/kernels/CPPCornerCandidatesKernel.h | 6 +- .../CPPDetectionWindowNonMaximaSuppressionKernel.h | 6 +- arm_compute/core/CPP/kernels/CPPPermuteKernel.h | 6 +- .../CPP/kernels/CPPSortEuclideanDistanceKernel.h | 6 +- .../core/NEON/kernels/NEAbsoluteDifferenceKernel.h | 6 +- arm_compute/core/NEON/kernels/NEAccumulateKernel.h | 18 +++- .../core/NEON/kernels/NEActivationLayerKernel.h | 6 +- .../core/NEON/kernels/NEArithmeticAdditionKernel.h | 6 +- .../NEON/kernels/NEArithmeticSubtractionKernel.h | 6 +- .../NEON/kernels/NEBatchNormalizationLayerKernel.h | 6 +- arm_compute/core/NEON/kernels/NEBitwiseAndKernel.h | 6 +- arm_compute/core/NEON/kernels/NEBitwiseNotKernel.h | 6 +- arm_compute/core/NEON/kernels/NEBitwiseOrKernel.h | 6 +- arm_compute/core/NEON/kernels/NEBitwiseXorKernel.h | 6 +- arm_compute/core/NEON/kernels/NEBox3x3Kernel.h | 10 +- arm_compute/core/NEON/kernels/NECannyEdgeKernel.h | 18 +++- .../core/NEON/kernels/NEChannelCombineKernel.h | 6 +- .../core/NEON/kernels/NEChannelExtractKernel.h | 6 +- arm_compute/core/NEON/kernels/NECol2ImKernel.h | 6 +- .../core/NEON/kernels/NEColorConvertKernel.h | 6 +- .../core/NEON/kernels/NEConvolutionKernel.h | 18 +++- .../NEON/kernels/NECumulativeDistributionKernel.h | 6 +- .../NEON/kernels/NEDepthConcatenateLayerKernel.h | 6 +- .../core/NEON/kernels/NEDepthConvertLayerKernel.h | 6 +- .../kernels/NEDepthwiseConvolutionLayer3x3Kernel.h | 6 +- .../core/NEON/kernels/NEDepthwiseIm2ColKernel.h | 6 +- .../NEON/kernels/NEDepthwiseVectorToTensorKernel.h | 6 +- .../NEON/kernels/NEDepthwiseWeightsReshapeKernel.h | 6 +- .../NEON/kernels/NEDequantizationLayerKernel.h | 6 +- arm_compute/core/NEON/kernels/NEDerivativeKernel.h | 6 +- arm_compute/core/NEON/kernels/NEDilateKernel.h | 6 +- .../NEON/kernels/NEDirectConvolutionLayerKernel.h | 6 +- .../NEDirectConvolutionLayerOutputStageKernel.h | 4 + arm_compute/core/NEON/kernels/NEErodeKernel.h | 6 +- .../core/NEON/kernels/NEFastCornersKernel.h | 6 +- arm_compute/core/NEON/kernels/NEFillArrayKernel.h | 6 +- arm_compute/core/NEON/kernels/NEFillBorderKernel.h | 4 + .../core/NEON/kernels/NEFillInnerBorderKernel.h | 6 +- arm_compute/core/NEON/kernels/NEFloorKernel.h | 6 +- .../core/NEON/kernels/NEGEMMAssemblyBaseKernel.h | 6 +- .../core/NEON/kernels/NEGEMMInterleave4x4Kernel.h | 6 +- .../NEON/kernels/NEGEMMInterleaveBlockedKernel.h | 6 +- .../NEON/kernels/NEGEMMLowpMatrixMultiplyKernel.h | 6 +- .../kernels/NEGEMMLowpOffsetContributionKernel.h | 6 +- ...antizeDownInt32ToUint8ScaleByFixedPointKernel.h | 6 +- ...NEGEMMLowpQuantizeDownInt32ToUint8ScaleKernel.h | 6 +- .../core/NEON/kernels/NEGEMMLowpReductionKernel.h | 10 +- .../kernels/NEGEMMMatrixAccumulateBiasesKernel.h | 6 +- .../core/NEON/kernels/NEGEMMMatrixAdditionKernel.h | 6 +- .../core/NEON/kernels/NEGEMMMatrixMultiplyKernel.h | 6 +- .../kernels/NEGEMMMatrixVectorMultiplyKernel.h | 6 +- .../core/NEON/kernels/NEGEMMTranspose1xWKernel.h | 6 +- .../core/NEON/kernels/NEGaussian3x3Kernel.h | 6 +- .../core/NEON/kernels/NEGaussian5x5Kernel.h | 10 +- .../core/NEON/kernels/NEGaussianPyramidKernel.h | 10 +- .../core/NEON/kernels/NEHOGDescriptorKernel.h | 10 +- .../core/NEON/kernels/NEHOGDetectorKernel.h | 6 +- .../core/NEON/kernels/NEHarrisCornersKernel.h | 10 +- arm_compute/core/NEON/kernels/NEHistogramKernel.h | 6 +- arm_compute/core/NEON/kernels/NEIm2ColKernel.h | 6 +- .../core/NEON/kernels/NEIntegralImageKernel.h | 6 +- .../core/NEON/kernels/NEL2NormalizeLayerKernel.h | 6 +- arm_compute/core/NEON/kernels/NELKTrackerKernel.h | 6 +- .../NELocallyConnectedMatrixMultiplyKernel.h | 6 +- .../core/NEON/kernels/NEMagnitudePhaseKernel.h | 10 +- arm_compute/core/NEON/kernels/NEMeanStdDevKernel.h | 6 +- arm_compute/core/NEON/kernels/NEMedian3x3Kernel.h | 6 +- .../core/NEON/kernels/NEMinMaxLayerKernel.h | 6 +- .../core/NEON/kernels/NEMinMaxLocationKernel.h | 10 +- .../core/NEON/kernels/NENonLinearFilterKernel.h | 6 +- .../NEON/kernels/NENonMaximaSuppression3x3Kernel.h | 10 +- .../core/NEON/kernels/NENormalizationLayerKernel.h | 6 +- .../NEON/kernels/NEPixelWiseMultiplicationKernel.h | 6 +- .../core/NEON/kernels/NEPoolingLayerKernel.h | 4 + .../core/NEON/kernels/NEQuantizationLayerKernel.h | 6 +- .../core/NEON/kernels/NEROIPoolingLayerKernel.h | 6 +- .../core/NEON/kernels/NEReductionOperationKernel.h | 6 +- arm_compute/core/NEON/kernels/NERemapKernel.h | 6 +- .../core/NEON/kernels/NEReshapeLayerKernel.h | 6 +- arm_compute/core/NEON/kernels/NEScaleKernel.h | 6 +- arm_compute/core/NEON/kernels/NEScharr3x3Kernel.h | 6 +- arm_compute/core/NEON/kernels/NESobel3x3Kernel.h | 6 +- arm_compute/core/NEON/kernels/NESobel5x5Kernel.h | 10 +- arm_compute/core/NEON/kernels/NESobel7x7Kernel.h | 10 +- .../core/NEON/kernels/NESoftmaxLayerKernel.h | 14 ++- .../core/NEON/kernels/NETableLookupKernel.h | 6 +- arm_compute/core/NEON/kernels/NEThresholdKernel.h | 6 +- arm_compute/core/NEON/kernels/NETransposeKernel.h | 6 +- arm_compute/core/NEON/kernels/NEWarpKernel.h | 10 +- .../core/NEON/kernels/NEWeightsReshapeKernel.h | 6 +- .../core/NEON/kernels/NEWinogradLayerKernel.h | 4 + .../core/NEON/kernels/arm32/NEGEMMAArch32Kernel.h | 6 +- .../core/NEON/kernels/arm64/NEGEMMAArch64Kernel.h | 6 +- .../kernels/arm64/NEGEMMLowpAArch64A53Kernel.h | 6 +- .../NEON/kernels/arm64/NEGEMMLowpAArch64Kernel.h | 6 +- .../kernels/arm64/NEGEMMLowpAArch64V8P4Kernel.h | 6 +- .../NEON/kernels/arm64/NEHGEMMAArch64FP16Kernel.h | 6 +- arm_compute/runtime/Scheduler.h | 4 +- src/runtime/Scheduler.cpp | 6 +- tests/SConscript | 4 +- tests/framework/Framework.cpp | 5 +- tests/framework/instruments/Instruments.cpp | 5 +- tests/framework/instruments/Instruments.h | 20 +++- tests/framework/instruments/SchedulerTimer.cpp | 116 +++++++++++++++++++++ tests/framework/instruments/SchedulerTimer.h | 63 +++++++++++ 106 files changed, 794 insertions(+), 103 deletions(-) create mode 100644 tests/framework/instruments/SchedulerTimer.cpp create mode 100644 tests/framework/instruments/SchedulerTimer.h diff --git a/arm_compute/core/CPP/ICPPKernel.h b/arm_compute/core/CPP/ICPPKernel.h index 54717caf80..17f263264b 100644 --- a/arm_compute/core/CPP/ICPPKernel.h +++ b/arm_compute/core/CPP/ICPPKernel.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, 2017 ARM Limited. + * Copyright (c) 2016-2018 ARM Limited. * * SPDX-License-Identifier: MIT * @@ -50,6 +50,12 @@ public: * @param[in] info Info about executing thread and CPU. */ virtual void run(const Window &window, const ThreadInfo &info) = 0; + + /** Name of the kernel + * + * @return Kernel name + */ + virtual const char *name() const = 0; }; } // namespace arm_compute #endif /*__ARM_COMPUTE_ICPPKERNEL_H__ */ diff --git a/arm_compute/core/CPP/kernels/CPPCornerCandidatesKernel.h b/arm_compute/core/CPP/kernels/CPPCornerCandidatesKernel.h index 580264ec90..b89816ef15 100644 --- a/arm_compute/core/CPP/kernels/CPPCornerCandidatesKernel.h +++ b/arm_compute/core/CPP/kernels/CPPCornerCandidatesKernel.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017 ARM Limited. + * Copyright (c) 2017-2018 ARM Limited. * * SPDX-License-Identifier: MIT * @@ -40,6 +40,10 @@ using IImage = ITensor; class CPPCornerCandidatesKernel : public INEKernel { public: + const char *name() const override + { + return "CPPCornerCandidatesKernel"; + } /** Default constructor */ CPPCornerCandidatesKernel(); /** Prevent instances of this class from being copied (As this class contains pointers) */ diff --git a/arm_compute/core/CPP/kernels/CPPDetectionWindowNonMaximaSuppressionKernel.h b/arm_compute/core/CPP/kernels/CPPDetectionWindowNonMaximaSuppressionKernel.h index 9ca7c64a13..87766a7a56 100644 --- a/arm_compute/core/CPP/kernels/CPPDetectionWindowNonMaximaSuppressionKernel.h +++ b/arm_compute/core/CPP/kernels/CPPDetectionWindowNonMaximaSuppressionKernel.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017 ARM Limited. + * Copyright (c) 2017-2018 ARM Limited. * * SPDX-License-Identifier: MIT * @@ -39,6 +39,10 @@ namespace arm_compute class CPPDetectionWindowNonMaximaSuppressionKernel : public ICPPKernel { public: + const char *name() const override + { + return "CPPDetectionWindowNonMaximaSuppressionKernel"; + } /** Default constructor */ CPPDetectionWindowNonMaximaSuppressionKernel(); /** Prevent instances of this class from being copied (As this class contains pointers) */ diff --git a/arm_compute/core/CPP/kernels/CPPPermuteKernel.h b/arm_compute/core/CPP/kernels/CPPPermuteKernel.h index 0e7c93877e..3d6b43641e 100644 --- a/arm_compute/core/CPP/kernels/CPPPermuteKernel.h +++ b/arm_compute/core/CPP/kernels/CPPPermuteKernel.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017 ARM Limited. + * Copyright (c) 2017-2018 ARM Limited. * * SPDX-License-Identifier: MIT * @@ -37,6 +37,10 @@ class ITensor; class CPPPermuteKernel : public ICPPKernel { public: + const char *name() const override + { + return "CPPPermuteKernel"; + } /** Default constructor */ CPPPermuteKernel(); /** Prevent instances of this class from being copied (As this class contains pointers) */ diff --git a/arm_compute/core/CPP/kernels/CPPSortEuclideanDistanceKernel.h b/arm_compute/core/CPP/kernels/CPPSortEuclideanDistanceKernel.h index fddd4254bf..1f16177b3b 100644 --- a/arm_compute/core/CPP/kernels/CPPSortEuclideanDistanceKernel.h +++ b/arm_compute/core/CPP/kernels/CPPSortEuclideanDistanceKernel.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017 ARM Limited. + * Copyright (c) 2017-2018 ARM Limited. * * SPDX-License-Identifier: MIT * @@ -36,6 +36,10 @@ namespace arm_compute class CPPSortEuclideanDistanceKernel : public ICPPKernel { public: + const char *name() const override + { + return "CPPSortEuclideanDistanceKernel"; + } /** Default constructor */ CPPSortEuclideanDistanceKernel(); /** Prevent instances of this class from being copied (As this class contains pointers) */ diff --git a/arm_compute/core/NEON/kernels/NEAbsoluteDifferenceKernel.h b/arm_compute/core/NEON/kernels/NEAbsoluteDifferenceKernel.h index c3cbedf55d..a8592022a3 100644 --- a/arm_compute/core/NEON/kernels/NEAbsoluteDifferenceKernel.h +++ b/arm_compute/core/NEON/kernels/NEAbsoluteDifferenceKernel.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, 2017 ARM Limited. + * Copyright (c) 2016-2018 ARM Limited. * * SPDX-License-Identifier: MIT * @@ -38,6 +38,10 @@ class ITensor; class NEAbsoluteDifferenceKernel : public INEKernel { public: + const char *name() const override + { + return "NEAbsoluteDifferenceKernel"; + } /** Default constructor */ NEAbsoluteDifferenceKernel(); /** Prevent instances of this class from being copied (As this class contains pointers) */ diff --git a/arm_compute/core/NEON/kernels/NEAccumulateKernel.h b/arm_compute/core/NEON/kernels/NEAccumulateKernel.h index fa8a3be92f..ad5a16c9f3 100644 --- a/arm_compute/core/NEON/kernels/NEAccumulateKernel.h +++ b/arm_compute/core/NEON/kernels/NEAccumulateKernel.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, 2017 ARM Limited. + * Copyright (c) 2016-2018 ARM Limited. * * SPDX-License-Identifier: MIT * @@ -40,6 +40,10 @@ class ITensor; class NEAccumulateKernel : public INESimpleKernel { public: + const char *name() const override + { + return "NEAccumulateKernel"; + } /** Set the input and accumulation tensors * * @param[in] input Source tensor. Data type supported: U8. @@ -63,6 +67,10 @@ public: class NEAccumulateWeightedKernel : public INESimpleKernel { public: + const char *name() const override + { + return "NEAccumulateWeightedKernel"; + } /** Default constructor */ NEAccumulateWeightedKernel(); /** Set the input and accumulation tensors, and the scale value @@ -85,6 +93,10 @@ protected: class NEAccumulateWeightedFP16Kernel : public NEAccumulateWeightedKernel { public: + const char *name() const override + { + return "NEAccumulateWeightedFP16Kernel"; + } // Inherited methods overridden: void run(const Window &window, const ThreadInfo &info) override; }; @@ -102,6 +114,10 @@ using NEAccumulateWeightedFP16Kernel = NEAccumulateWeightedKernel; class NEAccumulateSquaredKernel : public INESimpleKernel { public: + const char *name() const override + { + return "NEAccumulateSquaredKernel"; + } /** Default constructor */ NEAccumulateSquaredKernel(); /** Set the input and accumulation tensors and the shift value. diff --git a/arm_compute/core/NEON/kernels/NEActivationLayerKernel.h b/arm_compute/core/NEON/kernels/NEActivationLayerKernel.h index 1edda843de..d3c5382ffb 100644 --- a/arm_compute/core/NEON/kernels/NEActivationLayerKernel.h +++ b/arm_compute/core/NEON/kernels/NEActivationLayerKernel.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017 ARM Limited. + * Copyright (c) 2017-2018 ARM Limited. * * SPDX-License-Identifier: MIT * @@ -40,6 +40,10 @@ class ITensor; class NEActivationLayerKernel : public INEKernel { public: + const char *name() const override + { + return "NEActivationLayerKernel"; + } /** Constructor */ NEActivationLayerKernel(); /** Prevent instances of this class from being copied (As this class contains pointers) */ diff --git a/arm_compute/core/NEON/kernels/NEArithmeticAdditionKernel.h b/arm_compute/core/NEON/kernels/NEArithmeticAdditionKernel.h index b830e022d7..eedecfb524 100644 --- a/arm_compute/core/NEON/kernels/NEArithmeticAdditionKernel.h +++ b/arm_compute/core/NEON/kernels/NEArithmeticAdditionKernel.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, 2017 ARM Limited. + * Copyright (c) 2016-2018 ARM Limited. * * SPDX-License-Identifier: MIT * @@ -35,6 +35,10 @@ class ITensor; class NEArithmeticAdditionKernel : public INEKernel { public: + const char *name() const override + { + return "NEArithmeticAdditionKernel"; + } /** Default constructor */ NEArithmeticAdditionKernel(); /** Prevent instances of this class from being copied (As this class contains pointers) */ diff --git a/arm_compute/core/NEON/kernels/NEArithmeticSubtractionKernel.h b/arm_compute/core/NEON/kernels/NEArithmeticSubtractionKernel.h index af81d396bb..73ecfcfeb5 100644 --- a/arm_compute/core/NEON/kernels/NEArithmeticSubtractionKernel.h +++ b/arm_compute/core/NEON/kernels/NEArithmeticSubtractionKernel.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, 2017 ARM Limited. + * Copyright (c) 2016-2018 ARM Limited. * * SPDX-License-Identifier: MIT * @@ -35,6 +35,10 @@ class ITensor; class NEArithmeticSubtractionKernel : public INEKernel { public: + const char *name() const override + { + return "NEArithmeticSubtractionKernel"; + } /** Default constructor */ NEArithmeticSubtractionKernel(); /** Prevent instances of this class from being copied (As this class contains pointers) */ diff --git a/arm_compute/core/NEON/kernels/NEBatchNormalizationLayerKernel.h b/arm_compute/core/NEON/kernels/NEBatchNormalizationLayerKernel.h index f3c5574e76..f748830b81 100644 --- a/arm_compute/core/NEON/kernels/NEBatchNormalizationLayerKernel.h +++ b/arm_compute/core/NEON/kernels/NEBatchNormalizationLayerKernel.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017 ARM Limited. + * Copyright (c) 2017-2018 ARM Limited. * * SPDX-License-Identifier: MIT * @@ -35,6 +35,10 @@ class ITensor; class NEBatchNormalizationLayerKernel : public INEKernel { public: + const char *name() const override + { + return "NEBatchNormalizationLayerKernel"; + } /** Default constructor */ NEBatchNormalizationLayerKernel(); /** Prevent instances of this class from being copied (As this class contains pointers) */ diff --git a/arm_compute/core/NEON/kernels/NEBitwiseAndKernel.h b/arm_compute/core/NEON/kernels/NEBitwiseAndKernel.h index 983dbd3f1c..2c5a9e644c 100644 --- a/arm_compute/core/NEON/kernels/NEBitwiseAndKernel.h +++ b/arm_compute/core/NEON/kernels/NEBitwiseAndKernel.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, 2017 ARM Limited. + * Copyright (c) 2016-2018 ARM Limited. * * SPDX-License-Identifier: MIT * @@ -38,6 +38,10 @@ class ITensor; class NEBitwiseAndKernel : public INEKernel { public: + const char *name() const override + { + return "NEBitwiseAndKernel"; + } /** Default constructor */ NEBitwiseAndKernel(); /** Prevent instances of this class from being copied (As this class contains pointers) */ diff --git a/arm_compute/core/NEON/kernels/NEBitwiseNotKernel.h b/arm_compute/core/NEON/kernels/NEBitwiseNotKernel.h index f57d0408cb..ddba225c21 100644 --- a/arm_compute/core/NEON/kernels/NEBitwiseNotKernel.h +++ b/arm_compute/core/NEON/kernels/NEBitwiseNotKernel.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, 2017 ARM Limited. + * Copyright (c) 2016-2018 ARM Limited. * * SPDX-License-Identifier: MIT * @@ -38,6 +38,10 @@ class ITensor; class NEBitwiseNotKernel : public INEKernel { public: + const char *name() const override + { + return "NEBitwiseNotKernel"; + } /** Default constructor */ NEBitwiseNotKernel(); /** Prevent instances of this class from being copied (As this class contains pointers) */ diff --git a/arm_compute/core/NEON/kernels/NEBitwiseOrKernel.h b/arm_compute/core/NEON/kernels/NEBitwiseOrKernel.h index f405b73270..0cb974a94d 100644 --- a/arm_compute/core/NEON/kernels/NEBitwiseOrKernel.h +++ b/arm_compute/core/NEON/kernels/NEBitwiseOrKernel.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, 2017 ARM Limited. + * Copyright (c) 2016-2018 ARM Limited. * * SPDX-License-Identifier: MIT * @@ -38,6 +38,10 @@ class ITensor; class NEBitwiseOrKernel : public INEKernel { public: + const char *name() const override + { + return "NEBitwiseOrKernel"; + } /** Default constructor */ NEBitwiseOrKernel(); /** Prevent instances of this class from being copied (As this class contains pointers) */ diff --git a/arm_compute/core/NEON/kernels/NEBitwiseXorKernel.h b/arm_compute/core/NEON/kernels/NEBitwiseXorKernel.h index 321416ea46..d464e39aa4 100644 --- a/arm_compute/core/NEON/kernels/NEBitwiseXorKernel.h +++ b/arm_compute/core/NEON/kernels/NEBitwiseXorKernel.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, 2017 ARM Limited. + * Copyright (c) 2016-2018 ARM Limited. * * SPDX-License-Identifier: MIT * @@ -38,6 +38,10 @@ class ITensor; class NEBitwiseXorKernel : public INEKernel { public: + const char *name() const override + { + return "NEBitwiseXorKernel"; + } /** Default constructor */ NEBitwiseXorKernel(); /** Prevent instances of this class from being copied (As this class contains pointers) */ diff --git a/arm_compute/core/NEON/kernels/NEBox3x3Kernel.h b/arm_compute/core/NEON/kernels/NEBox3x3Kernel.h index 29248f6538..9c139551cb 100644 --- a/arm_compute/core/NEON/kernels/NEBox3x3Kernel.h +++ b/arm_compute/core/NEON/kernels/NEBox3x3Kernel.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, 2017 ARM Limited. + * Copyright (c) 2016-2018 ARM Limited. * * SPDX-License-Identifier: MIT * @@ -34,6 +34,10 @@ class ITensor; class NEBox3x3Kernel : public INESimpleKernel { public: + const char *name() const override + { + return "NEBox3x3Kernel"; + } /** Set the source, destination and border mode of the kernel * * @param[in] input Source tensor. Data type supported: U8. @@ -52,6 +56,10 @@ public: class NEBox3x3FP16Kernel : public NEBox3x3Kernel { public: + const char *name() const override + { + return "NEBox3x3FP16Kernel"; + } // Inherited methods overridden: void run(const Window &window, const ThreadInfo &info) override; }; diff --git a/arm_compute/core/NEON/kernels/NECannyEdgeKernel.h b/arm_compute/core/NEON/kernels/NECannyEdgeKernel.h index a57c3894b1..401b9e47af 100644 --- a/arm_compute/core/NEON/kernels/NECannyEdgeKernel.h +++ b/arm_compute/core/NEON/kernels/NECannyEdgeKernel.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, 2017 ARM Limited. + * Copyright (c) 2016-2018 ARM Limited. * * SPDX-License-Identifier: MIT * @@ -36,6 +36,10 @@ class ITensor; class NEGradientKernel : public INEKernel { public: + const char *name() const override + { + return "NEGradientKernel"; + } /** Default constructor */ NEGradientKernel(); /** Prevent instances of this class from being copied (As this class contains pointers) */ @@ -87,6 +91,10 @@ protected: class NEGradientFP16Kernel : public NEGradientKernel { public: + const char *name() const override + { + return "NEGradientFP16Kernel"; + } // Inherited methods overriden: void configure(const ITensor *gx, const ITensor *gy, ITensor *magnitude, ITensor *phase, int32_t norm_type) override; }; @@ -104,6 +112,10 @@ using NEGradientFP16Kernel = NEGradientKernel; class NEEdgeNonMaxSuppressionKernel : public INEKernel { public: + const char *name() const override + { + return "NEEdgeNonMaxSuppressionKernel"; + } /** Default constructor */ NEEdgeNonMaxSuppressionKernel(); /** Prevent instances of this class from being copied (As this class contains pointers) */ @@ -157,6 +169,10 @@ private: class NEEdgeTraceKernel : public INEKernel { public: + const char *name() const override + { + return "NEEdgeTraceKernel"; + } /** Default constructor */ NEEdgeTraceKernel(); /** Prevent instances of this class from being copied (As this class contains pointers) */ diff --git a/arm_compute/core/NEON/kernels/NEChannelCombineKernel.h b/arm_compute/core/NEON/kernels/NEChannelCombineKernel.h index 4ae5f80bf2..1a88714ace 100644 --- a/arm_compute/core/NEON/kernels/NEChannelCombineKernel.h +++ b/arm_compute/core/NEON/kernels/NEChannelCombineKernel.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, 2017 ARM Limited. + * Copyright (c) 2016-2018 ARM Limited. * * SPDX-License-Identifier: MIT * @@ -39,6 +39,10 @@ using IImage = ITensor; class NEChannelCombineKernel : public INEKernel { public: + const char *name() const override + { + return "NEChannelCombineKernel"; + } /** Default constructor */ NEChannelCombineKernel(); /** Prevent instances of this class from being copied (As this class contains pointers) */ diff --git a/arm_compute/core/NEON/kernels/NEChannelExtractKernel.h b/arm_compute/core/NEON/kernels/NEChannelExtractKernel.h index 8c6977c09d..e57a3a65b8 100644 --- a/arm_compute/core/NEON/kernels/NEChannelExtractKernel.h +++ b/arm_compute/core/NEON/kernels/NEChannelExtractKernel.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, 2017 ARM Limited. + * Copyright (c) 2016-2018 ARM Limited. * * SPDX-License-Identifier: MIT * @@ -39,6 +39,10 @@ using IImage = ITensor; class NEChannelExtractKernel : public INESimpleKernel { public: + const char *name() const override + { + return "NEChannelExtractKernel"; + } /** Default constructor */ NEChannelExtractKernel(); /** Prevent instances of this class from being copied (As this class contains pointers) */ diff --git a/arm_compute/core/NEON/kernels/NECol2ImKernel.h b/arm_compute/core/NEON/kernels/NECol2ImKernel.h index 243cc77a4b..9fb493cc4f 100644 --- a/arm_compute/core/NEON/kernels/NECol2ImKernel.h +++ b/arm_compute/core/NEON/kernels/NECol2ImKernel.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017 ARM Limited. + * Copyright (c) 2017-2018 ARM Limited. * * SPDX-License-Identifier: MIT * @@ -53,6 +53,10 @@ class ITensor; class NECol2ImKernel : public INEKernel { public: + const char *name() const override + { + return "NECol2ImKernel"; + } /** Default constructor */ NECol2ImKernel(); /** Prevent instances of this class from being copied (As this class contains pointers) */ diff --git a/arm_compute/core/NEON/kernels/NEColorConvertKernel.h b/arm_compute/core/NEON/kernels/NEColorConvertKernel.h index 1c8799fa8e..608172ccde 100644 --- a/arm_compute/core/NEON/kernels/NEColorConvertKernel.h +++ b/arm_compute/core/NEON/kernels/NEColorConvertKernel.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, 2017 ARM Limited. + * Copyright (c) 2016-2018 ARM Limited. * * SPDX-License-Identifier: MIT * @@ -36,6 +36,10 @@ using IImage = ITensor; class NEColorConvertKernel : public INEKernel { public: + const char *name() const override + { + return "NEColorConvertKernel"; + } /** Default constructor */ NEColorConvertKernel(); /** Prevent instances of this class from being copied (As this class contains pointers) */ diff --git a/arm_compute/core/NEON/kernels/NEConvolutionKernel.h b/arm_compute/core/NEON/kernels/NEConvolutionKernel.h index 690c17abf3..534e0b03c2 100644 --- a/arm_compute/core/NEON/kernels/NEConvolutionKernel.h +++ b/arm_compute/core/NEON/kernels/NEConvolutionKernel.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, 2017 ARM Limited. + * Copyright (c) 2016-2018 ARM Limited. * * SPDX-License-Identifier: MIT * @@ -55,6 +55,10 @@ template class NEConvolutionKernel : public INESimpleKernel { public: + const char *name() const override + { + return "NEConvolutionKernel"; + } /** Default constructor */ NEConvolutionKernel(); /** Initialise the kernel's input, output and border mode. @@ -98,6 +102,10 @@ template class NESeparableConvolutionHorKernel : public INESimpleKernel { public: + const char *name() const override + { + return "NESeparableConvolutionHorKernel"; + } /** Default constructor */ NESeparableConvolutionHorKernel(); @@ -138,6 +146,10 @@ template class NESeparableConvolutionVertKernel : public INESimpleKernel { public: + const char *name() const override + { + return "NESeparableConvolutionVertKernel"; + } /** Default constructor */ NESeparableConvolutionVertKernel(); @@ -200,6 +212,10 @@ using NESeparableConvolution9x9VertKernel = NESeparableConvolutionVertKernel<9>; class NEConvolutionRectangleKernel : public INEKernel { public: + const char *name() const override + { + return "NEConvolutionRectangleKernel"; + } /** Default constructor */ NEConvolutionRectangleKernel(); /** Prevent instances of this class from being copied (As this class contains pointers) */ diff --git a/arm_compute/core/NEON/kernels/NECumulativeDistributionKernel.h b/arm_compute/core/NEON/kernels/NECumulativeDistributionKernel.h index e4446792d8..ada07b1a56 100644 --- a/arm_compute/core/NEON/kernels/NECumulativeDistributionKernel.h +++ b/arm_compute/core/NEON/kernels/NECumulativeDistributionKernel.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, 2017 ARM Limited. + * Copyright (c) 2016-2018 ARM Limited. * * SPDX-License-Identifier: MIT * @@ -44,6 +44,10 @@ using IImage = ITensor; class NECumulativeDistributionKernel : public INEKernel { public: + const char *name() const override + { + return "NECumulativeDistributionKernel"; + } /** Default constructor */ NECumulativeDistributionKernel(); /** Prevent instances of this class from being copied (As this class contains pointers) */ diff --git a/arm_compute/core/NEON/kernels/NEDepthConcatenateLayerKernel.h b/arm_compute/core/NEON/kernels/NEDepthConcatenateLayerKernel.h index 6029873f22..67ef5293b7 100644 --- a/arm_compute/core/NEON/kernels/NEDepthConcatenateLayerKernel.h +++ b/arm_compute/core/NEON/kernels/NEDepthConcatenateLayerKernel.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017 ARM Limited. + * Copyright (c) 2017-2018 ARM Limited. * * SPDX-License-Identifier: MIT * @@ -37,6 +37,10 @@ class ITensor; class NEDepthConcatenateLayerKernel : public INEKernel { public: + const char *name() const override + { + return "NEDepthConcatenateLayerKernel"; + } /** Default constructor */ NEDepthConcatenateLayerKernel(); /** Prevent instances of this class from being copied (As this class contains pointers) */ diff --git a/arm_compute/core/NEON/kernels/NEDepthConvertLayerKernel.h b/arm_compute/core/NEON/kernels/NEDepthConvertLayerKernel.h index af51ded87a..50536f2b47 100644 --- a/arm_compute/core/NEON/kernels/NEDepthConvertLayerKernel.h +++ b/arm_compute/core/NEON/kernels/NEDepthConvertLayerKernel.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, 2017 ARM Limited. + * Copyright (c) 2016-2018 ARM Limited. * * SPDX-License-Identifier: MIT * @@ -37,6 +37,10 @@ class ITensor; class NEDepthConvertLayerKernel : public INEKernel { public: + const char *name() const override + { + return "NEDepthConvertLayerKernel"; + } /** Default constructor*/ NEDepthConvertLayerKernel(); /** Prevent instances of this class from being copied (As this class contains pointers) */ diff --git a/arm_compute/core/NEON/kernels/NEDepthwiseConvolutionLayer3x3Kernel.h b/arm_compute/core/NEON/kernels/NEDepthwiseConvolutionLayer3x3Kernel.h index 38e2a5ddfd..a441fb44b3 100644 --- a/arm_compute/core/NEON/kernels/NEDepthwiseConvolutionLayer3x3Kernel.h +++ b/arm_compute/core/NEON/kernels/NEDepthwiseConvolutionLayer3x3Kernel.h @@ -35,6 +35,10 @@ class ITensor; class NEDepthwiseConvolutionLayer3x3Kernel : public INEKernel { public: + const char *name() const override + { + return "NEDepthwiseConvolutionLayer3x3Kernel"; + } /** Default constructor */ NEDepthwiseConvolutionLayer3x3Kernel(); /** Prevent instances of this class from being copied (As this class contains pointers) */ @@ -67,4 +71,4 @@ private: unsigned int _num_elems_written_per_iteration; }; } // namespace arm_compute -#endif /* __ARM_COMPUTE_NEDEPTHWISECONVOLUTIONKERNEL3x3_H__ */ \ No newline at end of file +#endif /* __ARM_COMPUTE_NEDEPTHWISECONVOLUTIONKERNEL3x3_H__ */ diff --git a/arm_compute/core/NEON/kernels/NEDepthwiseIm2ColKernel.h b/arm_compute/core/NEON/kernels/NEDepthwiseIm2ColKernel.h index fde474d1f5..8d59ba3248 100644 --- a/arm_compute/core/NEON/kernels/NEDepthwiseIm2ColKernel.h +++ b/arm_compute/core/NEON/kernels/NEDepthwiseIm2ColKernel.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017 ARM Limited. + * Copyright (c) 2017-2018 ARM Limited. * * SPDX-License-Identifier: MIT * @@ -38,6 +38,10 @@ class ITensor; class NEDepthwiseIm2ColKernel : public INEKernel { public: + const char *name() const override + { + return "NEDepthwiseIm2ColKernel"; + } /** Default constructor */ NEDepthwiseIm2ColKernel(); /** Prevent instances of this class from being copied (As this class contains pointers) */ diff --git a/arm_compute/core/NEON/kernels/NEDepthwiseVectorToTensorKernel.h b/arm_compute/core/NEON/kernels/NEDepthwiseVectorToTensorKernel.h index 8b33fae6f3..19000905b0 100644 --- a/arm_compute/core/NEON/kernels/NEDepthwiseVectorToTensorKernel.h +++ b/arm_compute/core/NEON/kernels/NEDepthwiseVectorToTensorKernel.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017 ARM Limited. + * Copyright (c) 2017-2018 ARM Limited. * * SPDX-License-Identifier: MIT * @@ -40,6 +40,10 @@ class ITensor; class NEDepthwiseVectorToTensorKernel : public INEKernel { public: + const char *name() const override + { + return "NEDepthwiseVectorToTensorKernel"; + } /** Default constructor */ NEDepthwiseVectorToTensorKernel(); /** Prevent instances of this class from being copied (As this class contains pointers) */ diff --git a/arm_compute/core/NEON/kernels/NEDepthwiseWeightsReshapeKernel.h b/arm_compute/core/NEON/kernels/NEDepthwiseWeightsReshapeKernel.h index 2e986117df..4d23b8bd65 100644 --- a/arm_compute/core/NEON/kernels/NEDepthwiseWeightsReshapeKernel.h +++ b/arm_compute/core/NEON/kernels/NEDepthwiseWeightsReshapeKernel.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017 ARM Limited. + * Copyright (c) 2017-2018 ARM Limited. * * SPDX-License-Identifier: MIT * @@ -37,6 +37,10 @@ class ITensor; class NEDepthwiseWeightsReshapeKernel : public INEKernel { public: + const char *name() const override + { + return "NEDepthwiseWeightsReshapeKernel"; + } /** Default constructor */ NEDepthwiseWeightsReshapeKernel(); /** Prevent instances of this class from being copied (As this class contains pointers) */ diff --git a/arm_compute/core/NEON/kernels/NEDequantizationLayerKernel.h b/arm_compute/core/NEON/kernels/NEDequantizationLayerKernel.h index 51c75f8353..25383aa7dc 100644 --- a/arm_compute/core/NEON/kernels/NEDequantizationLayerKernel.h +++ b/arm_compute/core/NEON/kernels/NEDequantizationLayerKernel.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017 ARM Limited. + * Copyright (c) 2017-2018 ARM Limited. * * SPDX-License-Identifier: MIT * @@ -38,6 +38,10 @@ class ITensor; class NEDequantizationLayerKernel : public INEKernel { public: + const char *name() const override + { + return "NEDequantizationLayerKernel"; + } /** Default constructor */ NEDequantizationLayerKernel(); /** Prevent instances of this class from being copied (As this class contains pointers) */ diff --git a/arm_compute/core/NEON/kernels/NEDerivativeKernel.h b/arm_compute/core/NEON/kernels/NEDerivativeKernel.h index 5d46516f68..233c4236c6 100644 --- a/arm_compute/core/NEON/kernels/NEDerivativeKernel.h +++ b/arm_compute/core/NEON/kernels/NEDerivativeKernel.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, 2017 ARM Limited. + * Copyright (c) 2016-2018 ARM Limited. * * SPDX-License-Identifier: MIT * @@ -36,6 +36,10 @@ class ITensor; class NEDerivativeKernel : public INEKernel { public: + const char *name() const override + { + return "NEDerivativeKernel"; + } /** Default constructor */ NEDerivativeKernel(); /** Prevent instances of this class from being copied (As this class contains pointers) */ diff --git a/arm_compute/core/NEON/kernels/NEDilateKernel.h b/arm_compute/core/NEON/kernels/NEDilateKernel.h index b05c3addb5..ad15c62b08 100644 --- a/arm_compute/core/NEON/kernels/NEDilateKernel.h +++ b/arm_compute/core/NEON/kernels/NEDilateKernel.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, 2017 ARM Limited. + * Copyright (c) 2016-2018 ARM Limited. * * SPDX-License-Identifier: MIT * @@ -34,6 +34,10 @@ class ITensor; class NEDilateKernel : public INESimpleKernel { public: + const char *name() const override + { + return "NEDilateKernel"; + } /** Set the source, destination and border mode of the kernel * * @param[in] input Source tensor. Data type supported: U8 diff --git a/arm_compute/core/NEON/kernels/NEDirectConvolutionLayerKernel.h b/arm_compute/core/NEON/kernels/NEDirectConvolutionLayerKernel.h index cd482ddbdf..f859f97dae 100644 --- a/arm_compute/core/NEON/kernels/NEDirectConvolutionLayerKernel.h +++ b/arm_compute/core/NEON/kernels/NEDirectConvolutionLayerKernel.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017 ARM Limited. + * Copyright (c) 2017-2018 ARM Limited. * * SPDX-License-Identifier: MIT * @@ -34,6 +34,10 @@ class ITensor; class NEDirectConvolutionLayerKernel : public INEKernel { public: + const char *name() const override + { + return "NEDirectConvolutionLayerKernel"; + } /** Default constructor */ NEDirectConvolutionLayerKernel(); /** Prevent instances of this class from being copied (As this class contains pointers) */ diff --git a/arm_compute/core/NEON/kernels/NEDirectConvolutionLayerOutputStageKernel.h b/arm_compute/core/NEON/kernels/NEDirectConvolutionLayerOutputStageKernel.h index c42e5c43b5..77711d7ecd 100644 --- a/arm_compute/core/NEON/kernels/NEDirectConvolutionLayerOutputStageKernel.h +++ b/arm_compute/core/NEON/kernels/NEDirectConvolutionLayerOutputStageKernel.h @@ -36,6 +36,10 @@ class ITensor; class NEDirectConvolutionLayerOutputStageKernel : public INEKernel { public: + const char *name() const override + { + return "NEDirectConvolutionLayerOutputStageKernel"; + } /** Default constructor */ NEDirectConvolutionLayerOutputStageKernel(); /** Prevent instances of this class from being copied (As this class contains pointers) */ diff --git a/arm_compute/core/NEON/kernels/NEErodeKernel.h b/arm_compute/core/NEON/kernels/NEErodeKernel.h index 4d60d642c5..b1b236cd5a 100644 --- a/arm_compute/core/NEON/kernels/NEErodeKernel.h +++ b/arm_compute/core/NEON/kernels/NEErodeKernel.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, 2017 ARM Limited. + * Copyright (c) 2016-2018 ARM Limited. * * SPDX-License-Identifier: MIT * @@ -34,6 +34,10 @@ class ITensor; class NEErodeKernel : public INESimpleKernel { public: + const char *name() const override + { + return "NEErodeKernel"; + } /** Set the source, destination and border mode of the kernel * * @param[in] input Source tensor. Data type supported: U8 diff --git a/arm_compute/core/NEON/kernels/NEFastCornersKernel.h b/arm_compute/core/NEON/kernels/NEFastCornersKernel.h index dba5e888ce..1b645c4c66 100644 --- a/arm_compute/core/NEON/kernels/NEFastCornersKernel.h +++ b/arm_compute/core/NEON/kernels/NEFastCornersKernel.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, 2017 ARM Limited. + * Copyright (c) 2016-2018 ARM Limited. * * SPDX-License-Identifier: MIT * @@ -38,6 +38,10 @@ using IImage = ITensor; class NEFastCornersKernel : public INEKernel { public: + const char *name() const override + { + return "NEFastCornersKernel"; + } /** Constructor */ NEFastCornersKernel(); /** Prevent instances of this class from being copied (As this class contains pointers) */ diff --git a/arm_compute/core/NEON/kernels/NEFillArrayKernel.h b/arm_compute/core/NEON/kernels/NEFillArrayKernel.h index 6b92a8b438..62d537d331 100644 --- a/arm_compute/core/NEON/kernels/NEFillArrayKernel.h +++ b/arm_compute/core/NEON/kernels/NEFillArrayKernel.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, 2017 ARM Limited. + * Copyright (c) 2016-2018 ARM Limited. * * SPDX-License-Identifier: MIT * @@ -39,6 +39,10 @@ using IImage = ITensor; class NEFillArrayKernel : public INEKernel { public: + const char *name() const override + { + return "NEFillArrayKernel"; + } /** Default contructor */ NEFillArrayKernel(); /** Prevent instances of this class from being copied (As this class contains pointers) */ diff --git a/arm_compute/core/NEON/kernels/NEFillBorderKernel.h b/arm_compute/core/NEON/kernels/NEFillBorderKernel.h index 164158bb79..dd19b8f35a 100644 --- a/arm_compute/core/NEON/kernels/NEFillBorderKernel.h +++ b/arm_compute/core/NEON/kernels/NEFillBorderKernel.h @@ -36,6 +36,10 @@ class ITensor; class NEFillBorderKernel : public INEKernel { public: + const char *name() const override + { + return "NEFillBorderKernel"; + } /** Default Constructor */ NEFillBorderKernel(); /** Prevent instances of this class from being copied (As this class contains pointers) */ diff --git a/arm_compute/core/NEON/kernels/NEFillInnerBorderKernel.h b/arm_compute/core/NEON/kernels/NEFillInnerBorderKernel.h index b264bb77dd..545a265dc2 100644 --- a/arm_compute/core/NEON/kernels/NEFillInnerBorderKernel.h +++ b/arm_compute/core/NEON/kernels/NEFillInnerBorderKernel.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, 2017 ARM Limited. + * Copyright (c) 2016-2018 ARM Limited. * * SPDX-License-Identifier: MIT * @@ -36,6 +36,10 @@ class ITensor; class NEFillInnerBorderKernel : public INEKernel { public: + const char *name() const override + { + return "NEFillInnerBorderKernel"; + } /** Default constructor */ NEFillInnerBorderKernel(); /** Prevent instances of this class from being copied (As this class contains pointers) */ diff --git a/arm_compute/core/NEON/kernels/NEFloorKernel.h b/arm_compute/core/NEON/kernels/NEFloorKernel.h index a9221d0757..b72d0527cc 100644 --- a/arm_compute/core/NEON/kernels/NEFloorKernel.h +++ b/arm_compute/core/NEON/kernels/NEFloorKernel.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017 ARM Limited. + * Copyright (c) 2017-2018 ARM Limited. * * SPDX-License-Identifier: MIT * @@ -34,6 +34,10 @@ class ITensor; class NEFloorKernel : public INESimpleKernel { public: + const char *name() const override + { + return "NEFloorKernel"; + } /** Set the source, destination of the kernel * * @param[in] input Source tensor. Data type supported: F32. diff --git a/arm_compute/core/NEON/kernels/NEGEMMAssemblyBaseKernel.h b/arm_compute/core/NEON/kernels/NEGEMMAssemblyBaseKernel.h index 1090dd5b0a..579e8ed200 100644 --- a/arm_compute/core/NEON/kernels/NEGEMMAssemblyBaseKernel.h +++ b/arm_compute/core/NEON/kernels/NEGEMMAssemblyBaseKernel.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017 ARM Limited. + * Copyright (c) 2017-2018 ARM Limited. * * SPDX-License-Identifier: MIT * @@ -34,6 +34,10 @@ class ITensor; class NEGEMMAssemblyBaseKernel : public INEKernel { public: + const char *name() const override + { + return "NEGEMMAssemblyBaseKernel"; + } /** Constructor */ NEGEMMAssemblyBaseKernel() : _input0(nullptr), _input1(nullptr), _output(nullptr), _workspace(nullptr), _alpha(1.f), _beta(0.f), _is_transposed_0(false), _is_transposed_1(false) diff --git a/arm_compute/core/NEON/kernels/NEGEMMInterleave4x4Kernel.h b/arm_compute/core/NEON/kernels/NEGEMMInterleave4x4Kernel.h index fd93def0cb..79504fd4da 100644 --- a/arm_compute/core/NEON/kernels/NEGEMMInterleave4x4Kernel.h +++ b/arm_compute/core/NEON/kernels/NEGEMMInterleave4x4Kernel.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, 2017 ARM Limited. + * Copyright (c) 2016-2018 ARM Limited. * * SPDX-License-Identifier: MIT * @@ -52,6 +52,10 @@ class ITensor; class NEGEMMInterleave4x4Kernel : public INESimpleKernel { public: + const char *name() const override + { + return "NEGEMMInterleave4x4Kernel"; + } /* Constructor */ NEGEMMInterleave4x4Kernel(); /** Initialise the kernel's input and output. diff --git a/arm_compute/core/NEON/kernels/NEGEMMInterleaveBlockedKernel.h b/arm_compute/core/NEON/kernels/NEGEMMInterleaveBlockedKernel.h index b9bb18d2b5..f5a1121b04 100644 --- a/arm_compute/core/NEON/kernels/NEGEMMInterleaveBlockedKernel.h +++ b/arm_compute/core/NEON/kernels/NEGEMMInterleaveBlockedKernel.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017 ARM Limited. + * Copyright (c) 2017-2018 ARM Limited. * * SPDX-License-Identifier: MIT * @@ -39,6 +39,10 @@ class ITensor; class NEGEMMInterleaveBlockedKernel : public INESimpleKernel { public: + const char *name() const override + { + return "NEGEMMInterleaveBlockedKernel"; + } /* Constructor */ NEGEMMInterleaveBlockedKernel(); /** Initialise the kernel's input and output. diff --git a/arm_compute/core/NEON/kernels/NEGEMMLowpMatrixMultiplyKernel.h b/arm_compute/core/NEON/kernels/NEGEMMLowpMatrixMultiplyKernel.h index 7435994b8a..354ae21e29 100644 --- a/arm_compute/core/NEON/kernels/NEGEMMLowpMatrixMultiplyKernel.h +++ b/arm_compute/core/NEON/kernels/NEGEMMLowpMatrixMultiplyKernel.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017 ARM Limited. + * Copyright (c) 2017-2018 ARM Limited. * * SPDX-License-Identifier: MIT * @@ -43,6 +43,10 @@ class ITensor; class NEGEMMLowpMatrixMultiplyKernel : public INEKernel { public: + const char *name() const override + { + return "NEGEMMLowpMatrixMultiplyKernel"; + } /** Constructor */ NEGEMMLowpMatrixMultiplyKernel(); /** Prevent instances of this class from being copied (As this class contains pointers)*/ diff --git a/arm_compute/core/NEON/kernels/NEGEMMLowpOffsetContributionKernel.h b/arm_compute/core/NEON/kernels/NEGEMMLowpOffsetContributionKernel.h index 531968304f..7186320ce8 100644 --- a/arm_compute/core/NEON/kernels/NEGEMMLowpOffsetContributionKernel.h +++ b/arm_compute/core/NEON/kernels/NEGEMMLowpOffsetContributionKernel.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017 ARM Limited. + * Copyright (c) 2017-2018 ARM Limited. * * SPDX-License-Identifier: MIT * @@ -46,6 +46,10 @@ class ITensor; class NEGEMMLowpOffsetContributionKernel : public INEKernel { public: + const char *name() const override + { + return "NEGEMMLowpOffsetContributionKernel"; + } /** Constructor */ NEGEMMLowpOffsetContributionKernel(); /** Prevent instances of this class from being copied (As this class contains pointers)*/ diff --git a/arm_compute/core/NEON/kernels/NEGEMMLowpQuantizeDownInt32ToUint8ScaleByFixedPointKernel.h b/arm_compute/core/NEON/kernels/NEGEMMLowpQuantizeDownInt32ToUint8ScaleByFixedPointKernel.h index b1dd1fb2d5..030a0c766b 100644 --- a/arm_compute/core/NEON/kernels/NEGEMMLowpQuantizeDownInt32ToUint8ScaleByFixedPointKernel.h +++ b/arm_compute/core/NEON/kernels/NEGEMMLowpQuantizeDownInt32ToUint8ScaleByFixedPointKernel.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017 ARM Limited. + * Copyright (c) 2017-2018 ARM Limited. * * SPDX-License-Identifier: MIT * @@ -46,6 +46,10 @@ class ITensor; class NEGEMMLowpQuantizeDownInt32ToUint8ScaleByFixedPointKernel : public INEKernel { public: + const char *name() const override + { + return "NEGEMMLowpQuantizeDownInt32ToUint8ScaleByFixedPointKernel"; + } /** Constructor */ NEGEMMLowpQuantizeDownInt32ToUint8ScaleByFixedPointKernel(); /** Prevent instances of this class from being copied (As this class contains pointers)*/ diff --git a/arm_compute/core/NEON/kernels/NEGEMMLowpQuantizeDownInt32ToUint8ScaleKernel.h b/arm_compute/core/NEON/kernels/NEGEMMLowpQuantizeDownInt32ToUint8ScaleKernel.h index 10b333032e..84f45b0699 100644 --- a/arm_compute/core/NEON/kernels/NEGEMMLowpQuantizeDownInt32ToUint8ScaleKernel.h +++ b/arm_compute/core/NEON/kernels/NEGEMMLowpQuantizeDownInt32ToUint8ScaleKernel.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017 ARM Limited. + * Copyright (c) 2017-2018 ARM Limited. * * SPDX-License-Identifier: MIT * @@ -46,6 +46,10 @@ class ITensor; class NEGEMMLowpQuantizeDownInt32ToUint8ScaleKernel : public INEKernel { public: + const char *name() const override + { + return "NEGEMMLowpQuantizeDownInt32ToUint8ScaleKernel"; + } /** Constructor */ NEGEMMLowpQuantizeDownInt32ToUint8ScaleKernel(); /** Prevent instances of this class from being copied (As this class contains pointers)*/ diff --git a/arm_compute/core/NEON/kernels/NEGEMMLowpReductionKernel.h b/arm_compute/core/NEON/kernels/NEGEMMLowpReductionKernel.h index 38c353e293..4eab86d00a 100644 --- a/arm_compute/core/NEON/kernels/NEGEMMLowpReductionKernel.h +++ b/arm_compute/core/NEON/kernels/NEGEMMLowpReductionKernel.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017 ARM Limited. + * Copyright (c) 2017-2018 ARM Limited. * * SPDX-License-Identifier: MIT * @@ -69,6 +69,10 @@ protected: class NEGEMMLowpMatrixAReductionKernel : public INEGEMMLowpReductionKernel { public: + const char *name() const override + { + return "NEGEMMLowpMatrixAReductionKernel"; + } /** Initialise the kernel's input and output. * * @param[in] mtx_a Input tensor. Data type supported: QASYMM8 @@ -100,6 +104,10 @@ public: class NEGEMMLowpMatrixBReductionKernel : public INEGEMMLowpReductionKernel { public: + const char *name() const override + { + return "NEGEMMLowpMatrixBReductionKernel"; + } /** Initialise the kernel's input and output. * * @param[in] mtx_b Input tensor. Data type supported: Data type supported: QASYMM8 diff --git a/arm_compute/core/NEON/kernels/NEGEMMMatrixAccumulateBiasesKernel.h b/arm_compute/core/NEON/kernels/NEGEMMMatrixAccumulateBiasesKernel.h index d5fb675106..051b8b7d4f 100644 --- a/arm_compute/core/NEON/kernels/NEGEMMMatrixAccumulateBiasesKernel.h +++ b/arm_compute/core/NEON/kernels/NEGEMMMatrixAccumulateBiasesKernel.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017 ARM Limited. + * Copyright (c) 2017-2018 ARM Limited. * * SPDX-License-Identifier: MIT * @@ -33,6 +33,10 @@ class ITensor; class NEGEMMMatrixAccumulateBiasesKernel : public INEKernel { public: + const char *name() const override + { + return "NEGEMMMatrixAccumulateBiasesKernel"; + } /** Default constructor */ NEGEMMMatrixAccumulateBiasesKernel(); /** Prevent instances of this class from being copied (As this class contains pointers) */ diff --git a/arm_compute/core/NEON/kernels/NEGEMMMatrixAdditionKernel.h b/arm_compute/core/NEON/kernels/NEGEMMMatrixAdditionKernel.h index 9d5adb678a..5e4f8b72ff 100644 --- a/arm_compute/core/NEON/kernels/NEGEMMMatrixAdditionKernel.h +++ b/arm_compute/core/NEON/kernels/NEGEMMMatrixAdditionKernel.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, 2017 ARM Limited. + * Copyright (c) 2016-2018 ARM Limited. * * SPDX-License-Identifier: MIT * @@ -41,6 +41,10 @@ class ITensor; class NEGEMMMatrixAdditionKernel : public INESimpleKernel { public: + const char *name() const override + { + return "NEGEMMMatrixAdditionKernel"; + } /** Constructor */ NEGEMMMatrixAdditionKernel(); /** Prevent instances of this class from being copied */ diff --git a/arm_compute/core/NEON/kernels/NEGEMMMatrixMultiplyKernel.h b/arm_compute/core/NEON/kernels/NEGEMMMatrixMultiplyKernel.h index 9923c31018..4598e15b8e 100644 --- a/arm_compute/core/NEON/kernels/NEGEMMMatrixMultiplyKernel.h +++ b/arm_compute/core/NEON/kernels/NEGEMMMatrixMultiplyKernel.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017 ARM Limited. + * Copyright (c) 2017-2018 ARM Limited. * * SPDX-License-Identifier: MIT * @@ -39,6 +39,10 @@ class ITensor; class NEGEMMMatrixMultiplyKernel : public INEKernel { public: + const char *name() const override + { + return "NEGEMMMatrixMultiplyKernel"; + } /** Constructor */ NEGEMMMatrixMultiplyKernel(); /** Prevent instances of this class from being copied (As this class contains pointers) */ diff --git a/arm_compute/core/NEON/kernels/NEGEMMMatrixVectorMultiplyKernel.h b/arm_compute/core/NEON/kernels/NEGEMMMatrixVectorMultiplyKernel.h index d844af5d54..5ea83901f4 100644 --- a/arm_compute/core/NEON/kernels/NEGEMMMatrixVectorMultiplyKernel.h +++ b/arm_compute/core/NEON/kernels/NEGEMMMatrixVectorMultiplyKernel.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, 2017 ARM Limited. + * Copyright (c) 2016-2018 ARM Limited. * * SPDX-License-Identifier: MIT * @@ -33,6 +33,10 @@ class ITensor; class NEGEMMMatrixVectorMultiplyKernel : public INESimpleKernel { public: + const char *name() const override + { + return "NEGEMMMatrixVectorMultiplyKernel"; + } /** Default constructor */ NEGEMMMatrixVectorMultiplyKernel(); /** Prevent instances of this class from being copied (As this class contains pointers) */ diff --git a/arm_compute/core/NEON/kernels/NEGEMMTranspose1xWKernel.h b/arm_compute/core/NEON/kernels/NEGEMMTranspose1xWKernel.h index 451dce2cfc..fcdd8dd93c 100644 --- a/arm_compute/core/NEON/kernels/NEGEMMTranspose1xWKernel.h +++ b/arm_compute/core/NEON/kernels/NEGEMMTranspose1xWKernel.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, 2018 ARM Limited. + * Copyright (c) 2016-2018 ARM Limited. * * SPDX-License-Identifier: MIT * @@ -68,6 +68,10 @@ class ITensor; class NEGEMMTranspose1xWKernel : public INESimpleKernel { public: + const char *name() const override + { + return "NEGEMMTranspose1xWKernel"; + } /** Initialise the kernel's input and output. * * @param[in] input Input tensor. Data types supported: U8/S8/QS8/QASYMM8/U16/S16/QS16/F16/U32/S32/F32 diff --git a/arm_compute/core/NEON/kernels/NEGaussian3x3Kernel.h b/arm_compute/core/NEON/kernels/NEGaussian3x3Kernel.h index 962948c04b..404f5ddcc0 100644 --- a/arm_compute/core/NEON/kernels/NEGaussian3x3Kernel.h +++ b/arm_compute/core/NEON/kernels/NEGaussian3x3Kernel.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, 2017 ARM Limited. + * Copyright (c) 2016-2018 ARM Limited. * * SPDX-License-Identifier: MIT * @@ -34,6 +34,10 @@ class ITensor; class NEGaussian3x3Kernel : public INESimpleKernel { public: + const char *name() const override + { + return "NEGaussian3x3Kernel"; + } /** Set the source, destination and border mode of the kernel * * @param[in] input Source tensor. Data type supported: U8 diff --git a/arm_compute/core/NEON/kernels/NEGaussian5x5Kernel.h b/arm_compute/core/NEON/kernels/NEGaussian5x5Kernel.h index 95d1f4b1c3..a06326cae4 100644 --- a/arm_compute/core/NEON/kernels/NEGaussian5x5Kernel.h +++ b/arm_compute/core/NEON/kernels/NEGaussian5x5Kernel.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, 2017 ARM Limited. + * Copyright (c) 2016-2018 ARM Limited. * * SPDX-License-Identifier: MIT * @@ -34,6 +34,10 @@ class ITensor; class NEGaussian5x5HorKernel : public INESimpleKernel { public: + const char *name() const override + { + return "NEGaussian5x5HorKernel"; + } /** Default constructor */ NEGaussian5x5HorKernel(); @@ -57,6 +61,10 @@ private: class NEGaussian5x5VertKernel : public INESimpleKernel { public: + const char *name() const override + { + return "NEGaussian5x5VertKernel"; + } /** Initialise the kernel's source, destination and border mode. * * @param[in] input Source tensor. Data type supported: S16. diff --git a/arm_compute/core/NEON/kernels/NEGaussianPyramidKernel.h b/arm_compute/core/NEON/kernels/NEGaussianPyramidKernel.h index d28501107d..ac22934786 100644 --- a/arm_compute/core/NEON/kernels/NEGaussianPyramidKernel.h +++ b/arm_compute/core/NEON/kernels/NEGaussianPyramidKernel.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, 2017 ARM Limited. + * Copyright (c) 2016-2018 ARM Limited. * * SPDX-License-Identifier: MIT * @@ -34,6 +34,10 @@ class ITensor; class NEGaussianPyramidHorKernel : public INESimpleKernel { public: + const char *name() const override + { + return "NEGaussianPyramidHorKernel"; + } /** Default constructor */ NEGaussianPyramidHorKernel(); /** Prevent instances of this class from being copied (As this class contains pointers) */ @@ -66,6 +70,10 @@ private: class NEGaussianPyramidVertKernel : public INESimpleKernel { public: + const char *name() const override + { + return "NEGaussianPyramidVertKernel"; + } /** Default constructor */ NEGaussianPyramidVertKernel(); /** Prevent instances of this class from being copied (As this class contains pointers) */ diff --git a/arm_compute/core/NEON/kernels/NEHOGDescriptorKernel.h b/arm_compute/core/NEON/kernels/NEHOGDescriptorKernel.h index 0eae9eb788..37d0419838 100644 --- a/arm_compute/core/NEON/kernels/NEHOGDescriptorKernel.h +++ b/arm_compute/core/NEON/kernels/NEHOGDescriptorKernel.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, 2017 ARM Limited. + * Copyright (c) 2016-2018 ARM Limited. * * SPDX-License-Identifier: MIT * @@ -36,6 +36,10 @@ class ITensor; class NEHOGOrientationBinningKernel : public INEKernel { public: + const char *name() const override + { + return "NEHOGOrientationBinningKernel"; + } /** Default constructor */ NEHOGOrientationBinningKernel(); /** Prevent instances of this class from being copied (As this class contains pointers) */ @@ -91,6 +95,10 @@ private: class NEHOGBlockNormalizationKernel : public INEKernel { public: + const char *name() const override + { + return "NEHOGBlockNormalizationKernel"; + } /** Default constructor */ NEHOGBlockNormalizationKernel(); /** Prevent instances of this class from being copied (As this class contains pointers) */ diff --git a/arm_compute/core/NEON/kernels/NEHOGDetectorKernel.h b/arm_compute/core/NEON/kernels/NEHOGDetectorKernel.h index 838b914e96..0db1a40f1e 100644 --- a/arm_compute/core/NEON/kernels/NEHOGDetectorKernel.h +++ b/arm_compute/core/NEON/kernels/NEHOGDetectorKernel.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, 2017 ARM Limited. + * Copyright (c) 2016-2018 ARM Limited. * * SPDX-License-Identifier: MIT * @@ -37,6 +37,10 @@ class ITensor; class NEHOGDetectorKernel : public INEKernel { public: + const char *name() const override + { + return "NEHOGDetectorKernel"; + } /** Default constructor */ NEHOGDetectorKernel(); /** Prevent instances of this class from being copied (As this class contains pointers) */ diff --git a/arm_compute/core/NEON/kernels/NEHarrisCornersKernel.h b/arm_compute/core/NEON/kernels/NEHarrisCornersKernel.h index c3c37e4d24..8037e41695 100644 --- a/arm_compute/core/NEON/kernels/NEHarrisCornersKernel.h +++ b/arm_compute/core/NEON/kernels/NEHarrisCornersKernel.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, 2017 ARM Limited. + * Copyright (c) 2016-2018 ARM Limited. * * SPDX-License-Identifier: MIT * @@ -84,6 +84,10 @@ template class NEHarrisScoreKernel : public INEHarrisScoreKernel { public: + const char *name() const override + { + return "NEHarrisScoreKernel"; + } /** Default constructor */ NEHarrisScoreKernel(); // Inherited methods overridden: @@ -105,6 +109,10 @@ template class NEHarrisScoreFP16Kernel : public INEHarrisScoreKernel { public: + const char *name() const override + { + return "NEHarrisScoreFP16Kernel"; + } /** Default constructor */ NEHarrisScoreFP16Kernel(); // Inherited methods overridden: diff --git a/arm_compute/core/NEON/kernels/NEHistogramKernel.h b/arm_compute/core/NEON/kernels/NEHistogramKernel.h index 672472e082..086353bee2 100644 --- a/arm_compute/core/NEON/kernels/NEHistogramKernel.h +++ b/arm_compute/core/NEON/kernels/NEHistogramKernel.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, 2017 ARM Limited. + * Copyright (c) 2016-2018 ARM Limited. * * SPDX-License-Identifier: MIT * @@ -40,6 +40,10 @@ using IImage = ITensor; class NEHistogramKernel : public INEKernel { public: + const char *name() const override + { + return "NEHistogramKernel"; + } /** Default constructor */ NEHistogramKernel(); /** Default destructor */ diff --git a/arm_compute/core/NEON/kernels/NEIm2ColKernel.h b/arm_compute/core/NEON/kernels/NEIm2ColKernel.h index bc12b22e59..6d11fbee11 100644 --- a/arm_compute/core/NEON/kernels/NEIm2ColKernel.h +++ b/arm_compute/core/NEON/kernels/NEIm2ColKernel.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017 ARM Limited. + * Copyright (c) 2017-2018 ARM Limited. * * SPDX-License-Identifier: MIT * @@ -57,6 +57,10 @@ class Size2D; class NEIm2ColKernel : public INEKernel { public: + const char *name() const override + { + return "NEIm2ColKernel"; + } /** Default constructor */ NEIm2ColKernel(); /** Prevent instances of this class from being copied (As this class contains pointers) */ diff --git a/arm_compute/core/NEON/kernels/NEIntegralImageKernel.h b/arm_compute/core/NEON/kernels/NEIntegralImageKernel.h index 0e86ebaef8..8d3492624e 100644 --- a/arm_compute/core/NEON/kernels/NEIntegralImageKernel.h +++ b/arm_compute/core/NEON/kernels/NEIntegralImageKernel.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, 2017 ARM Limited. + * Copyright (c) 2016-2018 ARM Limited. * * SPDX-License-Identifier: MIT * @@ -34,6 +34,10 @@ class ITensor; class NEIntegralImageKernel : public INESimpleKernel { public: + const char *name() const override + { + return "NEIntegralImageKernel"; + } /** Set the source, destination and border mode of the kernel * * @param[in] input Source tensor. Data type supported: U8 diff --git a/arm_compute/core/NEON/kernels/NEL2NormalizeLayerKernel.h b/arm_compute/core/NEON/kernels/NEL2NormalizeLayerKernel.h index 7aa5116b68..7fb968e1d8 100644 --- a/arm_compute/core/NEON/kernels/NEL2NormalizeLayerKernel.h +++ b/arm_compute/core/NEON/kernels/NEL2NormalizeLayerKernel.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017 ARM Limited. + * Copyright (c) 2017-2018 ARM Limited. * * SPDX-License-Identifier: MIT * @@ -34,6 +34,10 @@ class ITensor; class NEL2NormalizeLayerKernel : public INEKernel { public: + const char *name() const override + { + return "NEL2NormalizeLayerKernel"; + } /** Default constructor */ NEL2NormalizeLayerKernel(); /** Prevent instances of this class from being copied (As this class contains pointers) */ diff --git a/arm_compute/core/NEON/kernels/NELKTrackerKernel.h b/arm_compute/core/NEON/kernels/NELKTrackerKernel.h index f65a6c24ea..f2105582eb 100644 --- a/arm_compute/core/NEON/kernels/NELKTrackerKernel.h +++ b/arm_compute/core/NEON/kernels/NELKTrackerKernel.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, 2017 ARM Limited. + * Copyright (c) 2016-2018 ARM Limited. * * SPDX-License-Identifier: MIT * @@ -51,6 +51,10 @@ using INELKInternalKeypointArray = IArray; class NELKTrackerKernel : public INEKernel { public: + const char *name() const override + { + return "NELKTrackerKernel"; + } /** Default constructor */ NELKTrackerKernel(); /** Prevent instances of this class from being copied (As this class contains pointers) */ diff --git a/arm_compute/core/NEON/kernels/NELocallyConnectedMatrixMultiplyKernel.h b/arm_compute/core/NEON/kernels/NELocallyConnectedMatrixMultiplyKernel.h index 593d965cd0..5e3410fe6f 100644 --- a/arm_compute/core/NEON/kernels/NELocallyConnectedMatrixMultiplyKernel.h +++ b/arm_compute/core/NEON/kernels/NELocallyConnectedMatrixMultiplyKernel.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017 ARM Limited. + * Copyright (c) 2017-2018 ARM Limited. * * SPDX-License-Identifier: MIT * @@ -34,6 +34,10 @@ class ITensor; class NELocallyConnectedMatrixMultiplyKernel : public INEKernel { public: + const char *name() const override + { + return "NELocallyConnectedMatrixMultiplyKernel"; + } /** Default constructor */ NELocallyConnectedMatrixMultiplyKernel(); /** Prevent instances of this class from being copied (As this class contains pointers) */ diff --git a/arm_compute/core/NEON/kernels/NEMagnitudePhaseKernel.h b/arm_compute/core/NEON/kernels/NEMagnitudePhaseKernel.h index 76c6163607..522ed54f95 100644 --- a/arm_compute/core/NEON/kernels/NEMagnitudePhaseKernel.h +++ b/arm_compute/core/NEON/kernels/NEMagnitudePhaseKernel.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, 2017 ARM Limited. + * Copyright (c) 2016-2018 ARM Limited. * * SPDX-License-Identifier: MIT * @@ -36,6 +36,10 @@ template class NEMagnitudePhaseKernel : public INEKernel { public: + const char *name() const override + { + return "NEMagnitudePhaseKernel"; + } /** Default constructor */ NEMagnitudePhaseKernel(); /** Destructor */ @@ -100,6 +104,10 @@ template class NEMagnitudePhaseFP16Kernel : public INEKernel { public: + const char *name() const override + { + return "NEMagnitudePhaseFP16Kernel"; + } /** Default constructor */ NEMagnitudePhaseFP16Kernel(); /** Destructor */ diff --git a/arm_compute/core/NEON/kernels/NEMeanStdDevKernel.h b/arm_compute/core/NEON/kernels/NEMeanStdDevKernel.h index 557976752c..bba6e2a6c7 100644 --- a/arm_compute/core/NEON/kernels/NEMeanStdDevKernel.h +++ b/arm_compute/core/NEON/kernels/NEMeanStdDevKernel.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, 2017 ARM Limited. + * Copyright (c) 2016-2018 ARM Limited. * * SPDX-License-Identifier: MIT * @@ -38,6 +38,10 @@ using IImage = ITensor; class NEMeanStdDevKernel : public INEKernel { public: + const char *name() const override + { + return "NEMeanStdDevKernel"; + } /** Default constructor */ NEMeanStdDevKernel(); /** Prevent instances of this class from being copied (As this class contains pointers) */ diff --git a/arm_compute/core/NEON/kernels/NEMedian3x3Kernel.h b/arm_compute/core/NEON/kernels/NEMedian3x3Kernel.h index 769c2c12f3..240367782d 100644 --- a/arm_compute/core/NEON/kernels/NEMedian3x3Kernel.h +++ b/arm_compute/core/NEON/kernels/NEMedian3x3Kernel.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, 2017 ARM Limited. + * Copyright (c) 2016-2018 ARM Limited. * * SPDX-License-Identifier: MIT * @@ -34,6 +34,10 @@ class ITensor; class NEMedian3x3Kernel : public INESimpleKernel { public: + const char *name() const override + { + return "NEMedian3x3Kernel"; + } /** Set the source, destination and border mode of the kernel * * @param[in] input Source tensor. Data type supported: U8 diff --git a/arm_compute/core/NEON/kernels/NEMinMaxLayerKernel.h b/arm_compute/core/NEON/kernels/NEMinMaxLayerKernel.h index da4f2c44cb..592b5941b5 100644 --- a/arm_compute/core/NEON/kernels/NEMinMaxLayerKernel.h +++ b/arm_compute/core/NEON/kernels/NEMinMaxLayerKernel.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017 ARM Limited. + * Copyright (c) 2017-2018 ARM Limited. * * SPDX-License-Identifier: MIT * @@ -38,6 +38,10 @@ class ITensor; class NEMinMaxLayerKernel : public INEKernel { public: + const char *name() const override + { + return "NEMinMaxLayerKernel"; + } /** Default constructor */ NEMinMaxLayerKernel(); /** Prevent instances of this class from being copied (As this class contains pointers) */ diff --git a/arm_compute/core/NEON/kernels/NEMinMaxLocationKernel.h b/arm_compute/core/NEON/kernels/NEMinMaxLocationKernel.h index ef193d109e..bf2d207af5 100644 --- a/arm_compute/core/NEON/kernels/NEMinMaxLocationKernel.h +++ b/arm_compute/core/NEON/kernels/NEMinMaxLocationKernel.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, 2017 ARM Limited. + * Copyright (c) 2016-2018 ARM Limited. * * SPDX-License-Identifier: MIT * @@ -39,6 +39,10 @@ using IImage = ITensor; class NEMinMaxKernel : public INEKernel { public: + const char *name() const override + { + return "NEMinMaxKernel"; + } /** Default constructor */ NEMinMaxKernel(); /** Prevent instances of this class from being copied (As this class contains pointers) */ @@ -102,6 +106,10 @@ private: class NEMinMaxLocationKernel : public INEKernel { public: + const char *name() const override + { + return "NEMinMaxLocationKernel"; + } /** Default constructor */ NEMinMaxLocationKernel(); /** Prevent instances of this class from being copied (As this class contains pointers) */ diff --git a/arm_compute/core/NEON/kernels/NENonLinearFilterKernel.h b/arm_compute/core/NEON/kernels/NENonLinearFilterKernel.h index 2ddd58eead..42701ef6ee 100644 --- a/arm_compute/core/NEON/kernels/NENonLinearFilterKernel.h +++ b/arm_compute/core/NEON/kernels/NENonLinearFilterKernel.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, 2017 ARM Limited. + * Copyright (c) 2016-2018 ARM Limited. * * SPDX-License-Identifier: MIT * @@ -37,6 +37,10 @@ class ITensor; class NENonLinearFilterKernel : public INEKernel { public: + const char *name() const override + { + return "NENonLinearFilterKernel"; + } /** Default constructor */ NENonLinearFilterKernel(); /** Prevent instances of this class from being copied (As this class contains pointers) */ diff --git a/arm_compute/core/NEON/kernels/NENonMaximaSuppression3x3Kernel.h b/arm_compute/core/NEON/kernels/NENonMaximaSuppression3x3Kernel.h index da8aecff5c..f122ed15fd 100644 --- a/arm_compute/core/NEON/kernels/NENonMaximaSuppression3x3Kernel.h +++ b/arm_compute/core/NEON/kernels/NENonMaximaSuppression3x3Kernel.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, 2017 ARM Limited. + * Copyright (c) 2016-2018 ARM Limited. * * SPDX-License-Identifier: MIT * @@ -39,6 +39,10 @@ class ITensor; class NENonMaximaSuppression3x3Kernel : public INEKernel { public: + const char *name() const override + { + return "NENonMaximaSuppression3x3Kernel"; + } /** Default constructor */ NENonMaximaSuppression3x3Kernel(); /** Prevent instances of this class from being copied (As this class contains pointers) */ @@ -84,6 +88,10 @@ protected: class NENonMaximaSuppression3x3FP16Kernel : public NENonMaximaSuppression3x3Kernel { public: + const char *name() const override + { + return "NENonMaximaSuppression3x3FP16Kernel"; + } /** Initialise the kernel's sources, destinations and border mode. * * @param[in] input Source tensor. Data types supported: U8/F32. diff --git a/arm_compute/core/NEON/kernels/NENormalizationLayerKernel.h b/arm_compute/core/NEON/kernels/NENormalizationLayerKernel.h index 405daf1068..b835ca7c53 100644 --- a/arm_compute/core/NEON/kernels/NENormalizationLayerKernel.h +++ b/arm_compute/core/NEON/kernels/NENormalizationLayerKernel.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017 ARM Limited. + * Copyright (c) 2017-2018 ARM Limited. * * SPDX-License-Identifier: MIT * @@ -35,6 +35,10 @@ class ITensor; class NENormalizationLayerKernel : public INEKernel { public: + const char *name() const override + { + return "NENormalizationLayerKernel"; + } /** Default constructor */ NENormalizationLayerKernel(); /** Prevent instances of this class from being copied (As this class contains pointers) */ diff --git a/arm_compute/core/NEON/kernels/NEPixelWiseMultiplicationKernel.h b/arm_compute/core/NEON/kernels/NEPixelWiseMultiplicationKernel.h index 10f990e7ef..2a82d6ed00 100644 --- a/arm_compute/core/NEON/kernels/NEPixelWiseMultiplicationKernel.h +++ b/arm_compute/core/NEON/kernels/NEPixelWiseMultiplicationKernel.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, 2017 ARM Limited. + * Copyright (c) 2016-2018 ARM Limited. * * SPDX-License-Identifier: MIT * @@ -35,6 +35,10 @@ class ITensor; class NEPixelWiseMultiplicationKernel : public INEKernel { public: + const char *name() const override + { + return "NEPixelWiseMultiplicationKernel"; + } /** Default constructor */ NEPixelWiseMultiplicationKernel(); /** Prevent instances of this class from being copied (As this class contains pointers) */ diff --git a/arm_compute/core/NEON/kernels/NEPoolingLayerKernel.h b/arm_compute/core/NEON/kernels/NEPoolingLayerKernel.h index 19c4656679..0b17b76a2c 100644 --- a/arm_compute/core/NEON/kernels/NEPoolingLayerKernel.h +++ b/arm_compute/core/NEON/kernels/NEPoolingLayerKernel.h @@ -34,6 +34,10 @@ class ITensor; class NEPoolingLayerKernel : public INEKernel { public: + const char *name() const override + { + return "NEPoolingLayerKernel"; + } /** Default constructor */ NEPoolingLayerKernel(); /** Prevent instances of this class from being copied (As this class contains pointers) */ diff --git a/arm_compute/core/NEON/kernels/NEQuantizationLayerKernel.h b/arm_compute/core/NEON/kernels/NEQuantizationLayerKernel.h index e80f9ebc4a..9642ac52a7 100644 --- a/arm_compute/core/NEON/kernels/NEQuantizationLayerKernel.h +++ b/arm_compute/core/NEON/kernels/NEQuantizationLayerKernel.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017 ARM Limited. + * Copyright (c) 2017-2018 ARM Limited. * * SPDX-License-Identifier: MIT * @@ -38,6 +38,10 @@ class ITensor; class NEQuantizationLayerKernel : public INEKernel { public: + const char *name() const override + { + return "NEQuantizationLayerKernel"; + } /** Default constructor */ NEQuantizationLayerKernel(); /** Prevent instances of this class from being copied (As this class contains pointers) */ diff --git a/arm_compute/core/NEON/kernels/NEROIPoolingLayerKernel.h b/arm_compute/core/NEON/kernels/NEROIPoolingLayerKernel.h index dc604fc6b3..5d9a7cfbf6 100644 --- a/arm_compute/core/NEON/kernels/NEROIPoolingLayerKernel.h +++ b/arm_compute/core/NEON/kernels/NEROIPoolingLayerKernel.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017 ARM Limited. + * Copyright (c) 2017-2018 ARM Limited. * * SPDX-License-Identifier: MIT * @@ -36,6 +36,10 @@ class ITensor; class NEROIPoolingLayerKernel : public INEKernel { public: + const char *name() const override + { + return "NEROIPoolingLayerKernel"; + } /** Default constructor */ NEROIPoolingLayerKernel(); /** Prevent instances of this class from being copied (As this class contains pointers) */ diff --git a/arm_compute/core/NEON/kernels/NEReductionOperationKernel.h b/arm_compute/core/NEON/kernels/NEReductionOperationKernel.h index 9be8943759..a5ddd067ef 100644 --- a/arm_compute/core/NEON/kernels/NEReductionOperationKernel.h +++ b/arm_compute/core/NEON/kernels/NEReductionOperationKernel.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017 ARM Limited. + * Copyright (c) 2017-2018 ARM Limited. * * SPDX-License-Identifier: MIT * @@ -34,6 +34,10 @@ class ITensor; class NEReductionOperationKernel : public INEKernel { public: + const char *name() const override + { + return "NEReductionOperationKernel"; + } /** Default constructor */ NEReductionOperationKernel(); /** Prevent instances of this class from being copied (As this class contains pointers) */ diff --git a/arm_compute/core/NEON/kernels/NERemapKernel.h b/arm_compute/core/NEON/kernels/NERemapKernel.h index 7aa5de7a3a..8a4ecd40f3 100644 --- a/arm_compute/core/NEON/kernels/NERemapKernel.h +++ b/arm_compute/core/NEON/kernels/NERemapKernel.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, 2017 ARM Limited. + * Copyright (c) 2016-2018 ARM Limited. * * SPDX-License-Identifier: MIT * @@ -35,6 +35,10 @@ class ITensor; class NERemapKernel : public INEKernel { public: + const char *name() const override + { + return "NERemapKernel"; + } /** Default constructor */ NERemapKernel(); /** Prevent instances of this class from being copied (As this class contains pointers) */ diff --git a/arm_compute/core/NEON/kernels/NEReshapeLayerKernel.h b/arm_compute/core/NEON/kernels/NEReshapeLayerKernel.h index 062a6e1907..cd70198d6c 100644 --- a/arm_compute/core/NEON/kernels/NEReshapeLayerKernel.h +++ b/arm_compute/core/NEON/kernels/NEReshapeLayerKernel.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017 ARM Limited. + * Copyright (c) 2017-2018 ARM Limited. * * SPDX-License-Identifier: MIT * @@ -34,6 +34,10 @@ class ITensor; class NEReshapeLayerKernel : public INESimpleKernel { public: + const char *name() const override + { + return "NEReshapeLayerKernel"; + } /** Set the input and output of the kernel * * @param[in] input Source tensor. Data type supported: U8/S8/QS8/U16/S16/QS16/U32/S32/F16/F32 diff --git a/arm_compute/core/NEON/kernels/NEScaleKernel.h b/arm_compute/core/NEON/kernels/NEScaleKernel.h index ac154d4455..eb47409692 100644 --- a/arm_compute/core/NEON/kernels/NEScaleKernel.h +++ b/arm_compute/core/NEON/kernels/NEScaleKernel.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, 2017 ARM Limited. + * Copyright (c) 2016-2018 ARM Limited. * * SPDX-License-Identifier: MIT * @@ -35,6 +35,10 @@ class ITensor; class NEScaleKernel : public INEKernel { public: + const char *name() const override + { + return "NEScaleKernel"; + } /** Default constructor */ NEScaleKernel(); /** Prevent instances of this class from being copied (As this class contains pointers) */ diff --git a/arm_compute/core/NEON/kernels/NEScharr3x3Kernel.h b/arm_compute/core/NEON/kernels/NEScharr3x3Kernel.h index 01c4c90958..904034199a 100644 --- a/arm_compute/core/NEON/kernels/NEScharr3x3Kernel.h +++ b/arm_compute/core/NEON/kernels/NEScharr3x3Kernel.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, 2017 ARM Limited. + * Copyright (c) 2016-2018 ARM Limited. * * SPDX-License-Identifier: MIT * @@ -43,6 +43,10 @@ class ITensor; class NEScharr3x3Kernel : public INEKernel { public: + const char *name() const override + { + return "NEScharr3x3Kernel"; + } /** Default constructor */ NEScharr3x3Kernel(); /** Prevent instances of this class from being copied (As this class contains pointers) */ diff --git a/arm_compute/core/NEON/kernels/NESobel3x3Kernel.h b/arm_compute/core/NEON/kernels/NESobel3x3Kernel.h index 46e803225d..21e8748126 100644 --- a/arm_compute/core/NEON/kernels/NESobel3x3Kernel.h +++ b/arm_compute/core/NEON/kernels/NESobel3x3Kernel.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, 2017 ARM Limited. + * Copyright (c) 2016-2018 ARM Limited. * * SPDX-License-Identifier: MIT * @@ -43,6 +43,10 @@ class ITensor; class NESobel3x3Kernel : public INEKernel { public: + const char *name() const override + { + return "NESobel3x3Kernel"; + } /** Default constructor */ NESobel3x3Kernel(); /** Prevent instances of this class from being copied (As this class contains pointers) */ diff --git a/arm_compute/core/NEON/kernels/NESobel5x5Kernel.h b/arm_compute/core/NEON/kernels/NESobel5x5Kernel.h index 9770c2c137..361a19445c 100644 --- a/arm_compute/core/NEON/kernels/NESobel5x5Kernel.h +++ b/arm_compute/core/NEON/kernels/NESobel5x5Kernel.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, 2017 ARM Limited. + * Copyright (c) 2016-2018 ARM Limited. * * SPDX-License-Identifier: MIT * @@ -36,6 +36,10 @@ class ITensor; class NESobel5x5HorKernel : public INEKernel { public: + const char *name() const override + { + return "NESobel5x5HorKernel"; + } /** Default constructor */ NESobel5x5HorKernel(); /** Prevent instances of this class from being copied (As this class contains pointers) */ @@ -79,6 +83,10 @@ private: class NESobel5x5VertKernel : public INEKernel { public: + const char *name() const override + { + return "NESobel5x5VertKernel"; + } /** Default constructor */ NESobel5x5VertKernel(); /** Prevent instances of this class from being copied (As this class contains pointers) */ diff --git a/arm_compute/core/NEON/kernels/NESobel7x7Kernel.h b/arm_compute/core/NEON/kernels/NESobel7x7Kernel.h index 5683f7c3e0..a5cc86d7a8 100644 --- a/arm_compute/core/NEON/kernels/NESobel7x7Kernel.h +++ b/arm_compute/core/NEON/kernels/NESobel7x7Kernel.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, 2017 ARM Limited. + * Copyright (c) 2016-2018 ARM Limited. * * SPDX-License-Identifier: MIT * @@ -36,6 +36,10 @@ class ITensor; class NESobel7x7HorKernel : public INEKernel { public: + const char *name() const override + { + return "NESobel7x7HorKernel"; + } /** Default constructor */ NESobel7x7HorKernel(); /** Prevent instances of this class from being copied (As this class contains pointers) */ @@ -79,6 +83,10 @@ private: class NESobel7x7VertKernel : public INEKernel { public: + const char *name() const override + { + return "NESobel7x7VertKernel"; + } /** Default constructor */ NESobel7x7VertKernel(); /** Prevent instances of this class from being copied (As this class contains pointers) */ diff --git a/arm_compute/core/NEON/kernels/NESoftmaxLayerKernel.h b/arm_compute/core/NEON/kernels/NESoftmaxLayerKernel.h index 0fecfac15a..bd0e642d76 100644 --- a/arm_compute/core/NEON/kernels/NESoftmaxLayerKernel.h +++ b/arm_compute/core/NEON/kernels/NESoftmaxLayerKernel.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017 ARM Limited. + * Copyright (c) 2017-2018 ARM Limited. * * SPDX-License-Identifier: MIT * @@ -35,6 +35,10 @@ class ITensor; class NELogits1DMaxKernel : public INESimpleKernel { public: + const char *name() const override + { + return "NELogits1DMaxKernel"; + } /** Default constructor */ NELogits1DMaxKernel(); /** Set the input and output tensors. @@ -68,6 +72,10 @@ private: class NELogits1DShiftExpSumKernel : public INEKernel { public: + const char *name() const override + { + return "NELogits1DShiftExpSumKernel"; + } /** Default constructor */ NELogits1DShiftExpSumKernel(); /** Prevent instances of this class from being copied (As this class contains pointers) */ @@ -120,6 +128,10 @@ private: class NELogits1DNormKernel : public INEKernel { public: + const char *name() const override + { + return "NELogits1DNormKernel"; + } /** Default constructor */ NELogits1DNormKernel(); /** Prevent instances of this class from being copied (As this class contains pointers) */ diff --git a/arm_compute/core/NEON/kernels/NETableLookupKernel.h b/arm_compute/core/NEON/kernels/NETableLookupKernel.h index 46eefc9d79..9bc4a440bb 100644 --- a/arm_compute/core/NEON/kernels/NETableLookupKernel.h +++ b/arm_compute/core/NEON/kernels/NETableLookupKernel.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, 2017 ARM Limited. + * Copyright (c) 2016-2018 ARM Limited. * * SPDX-License-Identifier: MIT * @@ -35,6 +35,10 @@ class ILut; class NETableLookupKernel : public INESimpleKernel { public: + const char *name() const override + { + return "NETableLookupKernel"; + } /** Default constructor */ NETableLookupKernel(); /** Prevent instances of this class from being copied (As this class contains pointers) */ diff --git a/arm_compute/core/NEON/kernels/NEThresholdKernel.h b/arm_compute/core/NEON/kernels/NEThresholdKernel.h index 8fd561b587..99937800f7 100644 --- a/arm_compute/core/NEON/kernels/NEThresholdKernel.h +++ b/arm_compute/core/NEON/kernels/NEThresholdKernel.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, 2017 ARM Limited. + * Copyright (c) 2016-2018 ARM Limited. * * SPDX-License-Identifier: MIT * @@ -39,6 +39,10 @@ class ITensor; class NEThresholdKernel : public INEKernel { public: + const char *name() const override + { + return "NEThresholdKernel"; + } /** Constructor * Initialize all the pointers to nullptr and parameters to zero. */ diff --git a/arm_compute/core/NEON/kernels/NETransposeKernel.h b/arm_compute/core/NEON/kernels/NETransposeKernel.h index 855d270e49..dc7ef8ff7a 100644 --- a/arm_compute/core/NEON/kernels/NETransposeKernel.h +++ b/arm_compute/core/NEON/kernels/NETransposeKernel.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017 ARM Limited. + * Copyright (c) 2017-2018 ARM Limited. * * SPDX-License-Identifier: MIT * @@ -38,6 +38,10 @@ class ITensor; class NETransposeKernel : public INEKernel { public: + const char *name() const override + { + return "NETransposeKernel"; + } /** Default constructor */ NETransposeKernel(); /** Prevent instances of this class from being copied (As this class contains pointers) */ diff --git a/arm_compute/core/NEON/kernels/NEWarpKernel.h b/arm_compute/core/NEON/kernels/NEWarpKernel.h index d7cb82f27e..a147d57f28 100644 --- a/arm_compute/core/NEON/kernels/NEWarpKernel.h +++ b/arm_compute/core/NEON/kernels/NEWarpKernel.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, 2017 ARM Limited. + * Copyright (c) 2016-2018 ARM Limited. * * SPDX-License-Identifier: MIT * @@ -98,6 +98,10 @@ template class NEWarpAffineKernel : public INEWarpKernel { private: + const char *name() const override + { + return "NEWarpAffineKernel"; + } // Inherited methods overridden: void warp_undefined(const Window &window) override; void warp_constant(const Window &window) override; @@ -111,6 +115,10 @@ template class NEWarpPerspectiveKernel : public INEWarpKernel { private: + const char *name() const override + { + return "NEWarpPerspectiveKernel"; + } // Inherited methods overridden: void warp_undefined(const Window &window) override; void warp_constant(const Window &window) override; diff --git a/arm_compute/core/NEON/kernels/NEWeightsReshapeKernel.h b/arm_compute/core/NEON/kernels/NEWeightsReshapeKernel.h index 84ec736d03..e92829c516 100644 --- a/arm_compute/core/NEON/kernels/NEWeightsReshapeKernel.h +++ b/arm_compute/core/NEON/kernels/NEWeightsReshapeKernel.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017 ARM Limited. + * Copyright (c) 2017-2018 ARM Limited. * * SPDX-License-Identifier: MIT * @@ -56,6 +56,10 @@ class ITensor; class NEWeightsReshapeKernel : public INEKernel { public: + const char *name() const override + { + return "NEWeightsReshapeKernel"; + } /** Constructor.*/ NEWeightsReshapeKernel(); /** Prevent instances of this class from being copied (As this class contains pointers) */ diff --git a/arm_compute/core/NEON/kernels/NEWinogradLayerKernel.h b/arm_compute/core/NEON/kernels/NEWinogradLayerKernel.h index 78ac56418f..b85f372896 100644 --- a/arm_compute/core/NEON/kernels/NEWinogradLayerKernel.h +++ b/arm_compute/core/NEON/kernels/NEWinogradLayerKernel.h @@ -79,6 +79,10 @@ private: class NEWinogradLayerKernel : public INEKernel { public: + const char *name() const override + { + return "NEWinogradLayerKernel"; + } /** Constructor */ NEWinogradLayerKernel(); diff --git a/arm_compute/core/NEON/kernels/arm32/NEGEMMAArch32Kernel.h b/arm_compute/core/NEON/kernels/arm32/NEGEMMAArch32Kernel.h index 7564f6a0e1..4868f83d74 100644 --- a/arm_compute/core/NEON/kernels/arm32/NEGEMMAArch32Kernel.h +++ b/arm_compute/core/NEON/kernels/arm32/NEGEMMAArch32Kernel.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017 ARM Limited. + * Copyright (c) 2017-2018 ARM Limited. * * SPDX-License-Identifier: MIT * @@ -34,6 +34,10 @@ class ITensor; class NEGEMMAArch32Kernel : public NEGEMMAssemblyBaseKernel { public: + const char *name() const override + { + return "NEGEMMAArch32Kernel"; + } // Inherited methods overridden: void run(const Window &window, const ThreadInfo &info) override; diff --git a/arm_compute/core/NEON/kernels/arm64/NEGEMMAArch64Kernel.h b/arm_compute/core/NEON/kernels/arm64/NEGEMMAArch64Kernel.h index 5c29a825c2..5252378db7 100644 --- a/arm_compute/core/NEON/kernels/arm64/NEGEMMAArch64Kernel.h +++ b/arm_compute/core/NEON/kernels/arm64/NEGEMMAArch64Kernel.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017 ARM Limited. + * Copyright (c) 2017-2018 ARM Limited. * * SPDX-License-Identifier: MIT * @@ -34,6 +34,10 @@ class ITensor; class NEGEMMAArch64Kernel : public NEGEMMAssemblyBaseKernel { public: + const char *name() const override + { + return "NEGEMMAArch64Kernel"; + } // Inherited methods overridden: void run(const Window &window, const ThreadInfo &info) override; diff --git a/arm_compute/core/NEON/kernels/arm64/NEGEMMLowpAArch64A53Kernel.h b/arm_compute/core/NEON/kernels/arm64/NEGEMMLowpAArch64A53Kernel.h index 8e9783720e..83c209d48f 100644 --- a/arm_compute/core/NEON/kernels/arm64/NEGEMMLowpAArch64A53Kernel.h +++ b/arm_compute/core/NEON/kernels/arm64/NEGEMMLowpAArch64A53Kernel.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017 ARM Limited. + * Copyright (c) 2017-2018 ARM Limited. * * SPDX-License-Identifier: MIT * @@ -37,6 +37,10 @@ class ITensor; class NEGEMMLowpAArch64A53Kernel : public NEGEMMAssemblyBaseKernel { public: + const char *name() const override + { + return "NEGEMMLowpAArch64A53Kernel"; + } /** Default constructor */ NEGEMMLowpAArch64A53Kernel(); // Inherited methods overridden: diff --git a/arm_compute/core/NEON/kernels/arm64/NEGEMMLowpAArch64Kernel.h b/arm_compute/core/NEON/kernels/arm64/NEGEMMLowpAArch64Kernel.h index 3829d5e1d6..f813242fc9 100644 --- a/arm_compute/core/NEON/kernels/arm64/NEGEMMLowpAArch64Kernel.h +++ b/arm_compute/core/NEON/kernels/arm64/NEGEMMLowpAArch64Kernel.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017 ARM Limited. + * Copyright (c) 2017-2018 ARM Limited. * * SPDX-License-Identifier: MIT * @@ -37,6 +37,10 @@ class ITensor; class NEGEMMLowpAArch64Kernel : public NEGEMMAssemblyBaseKernel { public: + const char *name() const override + { + return "NEGEMMLowpAArch64Kernel"; + } /** Default constructor */ NEGEMMLowpAArch64Kernel(); diff --git a/arm_compute/core/NEON/kernels/arm64/NEGEMMLowpAArch64V8P4Kernel.h b/arm_compute/core/NEON/kernels/arm64/NEGEMMLowpAArch64V8P4Kernel.h index b94499392e..b854d3a9aa 100644 --- a/arm_compute/core/NEON/kernels/arm64/NEGEMMLowpAArch64V8P4Kernel.h +++ b/arm_compute/core/NEON/kernels/arm64/NEGEMMLowpAArch64V8P4Kernel.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017 ARM Limited. + * Copyright (c) 2017-2018 ARM Limited. * * SPDX-License-Identifier: MIT * @@ -37,6 +37,10 @@ class ITensor; class NEGEMMLowpAArch64V8P4Kernel : public NEGEMMAssemblyBaseKernel { public: + const char *name() const override + { + return "NEGEMMLowpAArch64V8P4Kernel"; + } // Inherited methods overridden: void run(const Window &window, const ThreadInfo &info) override; /** Static function to check if given info will lead to a valid configuration of @ref NEGEMMAssemblyBaseKernel diff --git a/arm_compute/core/NEON/kernels/arm64/NEHGEMMAArch64FP16Kernel.h b/arm_compute/core/NEON/kernels/arm64/NEHGEMMAArch64FP16Kernel.h index 5671d99b85..75c4dbdaa4 100644 --- a/arm_compute/core/NEON/kernels/arm64/NEHGEMMAArch64FP16Kernel.h +++ b/arm_compute/core/NEON/kernels/arm64/NEHGEMMAArch64FP16Kernel.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017 ARM Limited. + * Copyright (c) 2017-2018 ARM Limited. * * SPDX-License-Identifier: MIT * @@ -34,6 +34,10 @@ class ITensor; class NEHGEMMAArch64FP16Kernel : public NEGEMMAssemblyBaseKernel { public: + const char *name() const override + { + return "NEHGEMMAArch64FP16Kernel"; + } // Inherited methods overridden: void run(const Window &window, const ThreadInfo &info) override; diff --git a/arm_compute/runtime/Scheduler.h b/arm_compute/runtime/Scheduler.h index 21f944b75f..524622f89d 100644 --- a/arm_compute/runtime/Scheduler.h +++ b/arm_compute/runtime/Scheduler.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017 ARM Limited. + * Copyright (c) 2017-2018 ARM Limited. * * SPDX-License-Identifier: MIT * @@ -44,7 +44,7 @@ public: * * @param[in] scheduler A shared pointer to a custom scheduler implemented by the user. */ - static void set(std::shared_ptr &scheduler); + static void set(std::shared_ptr scheduler); /** Access the scheduler singleton. * * @return A reference to the scheduler object. diff --git a/src/runtime/Scheduler.cpp b/src/runtime/Scheduler.cpp index 505c4a384c..8925acfa47 100644 --- a/src/runtime/Scheduler.cpp +++ b/src/runtime/Scheduler.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017 ARM Limited. + * Copyright (c) 2017-2018 ARM Limited. * * SPDX-License-Identifier: MIT * @@ -142,8 +142,8 @@ IScheduler &Scheduler::get() std::shared_ptr Scheduler::_custom_scheduler = nullptr; -void Scheduler::set(std::shared_ptr &scheduler) +void Scheduler::set(std::shared_ptr scheduler) { - _custom_scheduler = scheduler; + _custom_scheduler = std::move(scheduler); set(Type::CUSTOM); } diff --git a/tests/SConscript b/tests/SConscript index 4261331d43..a128d399f8 100644 --- a/tests/SConscript +++ b/tests/SConscript @@ -29,9 +29,10 @@ SConscript('./framework/SConscript', duplicate=0) # vars is imported from arm_compute: variables = [ + #FIXME: Remove before release! + BoolVariable("benchmark_examples", "Build benchmark examples programs", True), BoolVariable("validation_tests", "Build validation test programs", True), BoolVariable("benchmark_tests", "Build benchmark test programs", True), - BoolVariable("benchmark_examples", "Build benchmark examples programs", True), ("test_filter", "Pattern to specify the tests' filenames to be compiled", "*.cpp") ] @@ -164,6 +165,7 @@ if test_env['validation_tests']: Default(arm_compute_validation) Export('arm_compute_validation') +#FIXME: Remove before release! if test_env['benchmark_examples']: files_benchmark_examples = test_env.Object('benchmark_examples/RunExample.cpp') arm_compute_benchmark_examples = [] diff --git a/tests/framework/Framework.cpp b/tests/framework/Framework.cpp index 79a77d9e5e..3091b6677b 100644 --- a/tests/framework/Framework.cpp +++ b/tests/framework/Framework.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017 ARM Limited. + * Copyright (c) 2017-2018 ARM Limited. * * SPDX-License-Identifier: MIT * @@ -41,6 +41,9 @@ Framework::Framework() _available_instruments.emplace(std::pair(InstrumentType::WALL_CLOCK_TIMER, ScaleFactor::NONE), Instrument::make_instrument); _available_instruments.emplace(std::pair(InstrumentType::WALL_CLOCK_TIMER, ScaleFactor::TIME_MS), Instrument::make_instrument); _available_instruments.emplace(std::pair(InstrumentType::WALL_CLOCK_TIMER, ScaleFactor::TIME_S), Instrument::make_instrument); + _available_instruments.emplace(std::pair(InstrumentType::SCHEDULER_TIMER, ScaleFactor::NONE), Instrument::make_instrument); + _available_instruments.emplace(std::pair(InstrumentType::SCHEDULER_TIMER, ScaleFactor::TIME_MS), Instrument::make_instrument); + _available_instruments.emplace(std::pair(InstrumentType::SCHEDULER_TIMER, ScaleFactor::TIME_S), Instrument::make_instrument); #ifdef PMU_ENABLED _available_instruments.emplace(std::pair(InstrumentType::PMU, ScaleFactor::NONE), Instrument::make_instrument); _available_instruments.emplace(std::pair(InstrumentType::PMU, ScaleFactor::SCALE_1K), Instrument::make_instrument); diff --git a/tests/framework/instruments/Instruments.cpp b/tests/framework/instruments/Instruments.cpp index 641e6305cd..64e87f9cc5 100644 --- a/tests/framework/instruments/Instruments.cpp +++ b/tests/framework/instruments/Instruments.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017 ARM Limited. + * Copyright (c) 2017-2018 ARM Limited. * * SPDX-License-Identifier: MIT * @@ -44,6 +44,9 @@ InstrumentsDescription instrument_type_from_name(const std::string &name) { "wall_clock_timer", std::pair(InstrumentType::WALL_CLOCK_TIMER, ScaleFactor::NONE) }, { "wall_clock_timer_ms", std::pair(InstrumentType::WALL_CLOCK_TIMER, ScaleFactor::TIME_MS) }, { "wall_clock_timer_s", std::pair(InstrumentType::WALL_CLOCK_TIMER, ScaleFactor::TIME_S) }, + { "scheduler_timer", std::pair(InstrumentType::SCHEDULER_TIMER, ScaleFactor::NONE) }, + { "scheduler_timer_ms", std::pair(InstrumentType::SCHEDULER_TIMER, ScaleFactor::TIME_MS) }, + { "scheduler_timer_s", std::pair(InstrumentType::SCHEDULER_TIMER, ScaleFactor::TIME_S) }, { "pmu", std::pair(InstrumentType::PMU, ScaleFactor::NONE) }, { "pmu_k", std::pair(InstrumentType::PMU, ScaleFactor::SCALE_1K) }, { "pmu_m", std::pair(InstrumentType::PMU, ScaleFactor::SCALE_1M) }, diff --git a/tests/framework/instruments/Instruments.h b/tests/framework/instruments/Instruments.h index 651f0f567e..fe4c719319 100644 --- a/tests/framework/instruments/Instruments.h +++ b/tests/framework/instruments/Instruments.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017 ARM Limited. + * Copyright (c) 2017-2018 ARM Limited. * * SPDX-License-Identifier: MIT * @@ -27,6 +27,7 @@ #include "MaliCounter.h" #include "OpenCLTimer.h" #include "PMUCounter.h" +#include "SchedulerTimer.h" #include "WallClockTimer.h" #include @@ -48,6 +49,7 @@ enum class InstrumentType : unsigned int PMU_INSTRUCTION_COUNTER = 0x0202, MALI = 0x0300, OPENCL_TIMER = 0x0400, + SCHEDULER_TIMER = 0x0500, }; using InstrumentsDescription = std::pair; @@ -82,6 +84,22 @@ inline ::std::stringstream &operator<<(::std::stringstream &stream, InstrumentsD throw std::invalid_argument("Unsupported instrument scale"); } break; + case InstrumentType::SCHEDULER_TIMER: + switch(instrument.second) + { + case ScaleFactor::NONE: + stream << "SCHEDULER_TIMER"; + break; + case ScaleFactor::TIME_MS: + stream << "SCHEDULER_TIMER_MS"; + break; + case ScaleFactor::TIME_S: + stream << "SCHEDULER_TIMER_S"; + break; + default: + throw std::invalid_argument("Unsupported instrument scale"); + } + break; case InstrumentType::PMU: switch(instrument.second) { diff --git a/tests/framework/instruments/SchedulerTimer.cpp b/tests/framework/instruments/SchedulerTimer.cpp new file mode 100644 index 0000000000..e42cebde21 --- /dev/null +++ b/tests/framework/instruments/SchedulerTimer.cpp @@ -0,0 +1,116 @@ +/* + * Copyright (c) 2017-2018 ARM Limited. + * + * SPDX-License-Identifier: MIT + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +#include "SchedulerTimer.h" + +#include "WallClockTimer.h" +#include "arm_compute/core/CPP/ICPPKernel.h" + +namespace arm_compute +{ +namespace test +{ +namespace framework +{ +std::string SchedulerTimer::id() const +{ + return "SchedulerTimer"; +} + +class Interceptor final : public IScheduler +{ +public: + /** Default constructor. */ + Interceptor(std::list &kernels, IScheduler &real_scheduler, ScaleFactor scale_factor) + : _kernels(kernels), _real_scheduler(real_scheduler), _timer(scale_factor) + { + } + + void set_num_threads(unsigned int num_threads) override + { + _real_scheduler.set_num_threads(num_threads); + } + + unsigned int num_threads() const override + { + return _real_scheduler.num_threads(); + } + + void schedule(ICPPKernel *kernel, unsigned int split_dimension) override + { + _timer.start(); + _real_scheduler.schedule(kernel, split_dimension); + _timer.stop(); + + SchedulerTimer::kernel_info info; + info.name = kernel->name(); + info.measurements = _timer.measurements(); + _kernels.push_back(std::move(info)); + } + +private: + std::list &_kernels; + IScheduler &_real_scheduler; + WallClockTimer _timer; +}; + +SchedulerTimer::SchedulerTimer(ScaleFactor scale_factor) + : _kernels(), _real_scheduler(nullptr), _real_scheduler_type(), _scale_factor(scale_factor) +{ +} + +void SchedulerTimer::start() +{ + ARM_COMPUTE_ERROR_ON(_real_scheduler != nullptr); + _real_scheduler_type = Scheduler::get_type(); + //Note: We can't currently replace a custom scheduler + if(_real_scheduler_type != Scheduler::Type::CUSTOM) + { + _real_scheduler = &Scheduler::get(); + auto interceptor = std::make_shared(_kernels, *_real_scheduler, _scale_factor); + Scheduler::set(std::static_pointer_cast(interceptor)); + } + _kernels.clear(); +} + +void SchedulerTimer::stop() +{ + // Restore real scheduler + Scheduler::set(_real_scheduler_type); + _real_scheduler = nullptr; +} + +Instrument::MeasurementsMap SchedulerTimer::measurements() const +{ + MeasurementsMap measurements; + unsigned int kernel_number = 0; + for(auto kernel : _kernels) + { + measurements.emplace(kernel.name + " #" + support::cpp11::to_string(kernel_number++), kernel.measurements.begin()->second); + } + + return measurements; +} +} // namespace framework +} // namespace test +} // namespace arm_compute diff --git a/tests/framework/instruments/SchedulerTimer.h b/tests/framework/instruments/SchedulerTimer.h new file mode 100644 index 0000000000..446506ad73 --- /dev/null +++ b/tests/framework/instruments/SchedulerTimer.h @@ -0,0 +1,63 @@ +/* + * Copyright (c) 2017-2018 ARM Limited. + * + * SPDX-License-Identifier: MIT + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +#ifndef ARM_COMPUTE_TEST_SCHEDULER_TIMER +#define ARM_COMPUTE_TEST_SCHEDULER_TIMER + +#include "Instrument.h" +#include "arm_compute/runtime/Scheduler.h" +#include + +namespace arm_compute +{ +namespace test +{ +namespace framework +{ +/** Instrument creating measurements based on the information returned by clGetEventProfilingInfo for each OpenCL kernel executed*/ +class SchedulerTimer : public Instrument +{ +public: + SchedulerTimer(const SchedulerTimer &) = delete; + SchedulerTimer &operator=(const SchedulerTimer &) = delete; + SchedulerTimer(ScaleFactor scale_factor); + std::string id() const override; + void start() override; + void stop() override; + Instrument::MeasurementsMap measurements() const override; + struct kernel_info + { + Instrument::MeasurementsMap measurements{}; /**< Time it took the kernel to run */ + std::string name{}; /**< Kernel name */ + }; + +private: + std::list _kernels; + IScheduler *_real_scheduler; + Scheduler::Type _real_scheduler_type; + ScaleFactor _scale_factor; +}; +} // namespace framework +} // namespace test +} // namespace arm_compute +#endif /* ARM_COMPUTE_TEST_SCHEDULER_TIMER */ -- cgit v1.2.1