aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnthony Barbier <anthony.barbier@arm.com>2018-01-18 10:04:05 +0000
committerAnthony Barbier <anthony.barbier@arm.com>2018-11-02 16:43:42 +0000
commite8a4983c7bc00ad105389876a8eddd89ed4ef056 (patch)
treed04d3125a1f202875d87a25310ecb9c6c4aaef4c
parentfa7dc84396c7bf05257d82cd641a58c074136223 (diff)
downloadComputeLibrary-e8a4983c7bc00ad105389876a8eddd89ed4ef056.tar.gz
COMPMID-798 Add instrumentation to NEON kernels
Change-Id: I9dbb090cac731d68bd98a7d1c8ab0e1cb0a5c911 Reviewed-on: https://eu-gerrit-1.euhpc.arm.com/116746 Reviewed-by: Georgios Pinitas <georgios.pinitas@arm.com> Reviewed-by: Pablo Tello <pablo.tello@arm.com> Tested-by: Anthony Barbier <anthony.barbier@arm.com>
-rw-r--r--arm_compute/core/CPP/ICPPKernel.h8
-rw-r--r--arm_compute/core/CPP/kernels/CPPCornerCandidatesKernel.h6
-rw-r--r--arm_compute/core/CPP/kernels/CPPDetectionWindowNonMaximaSuppressionKernel.h6
-rw-r--r--arm_compute/core/CPP/kernels/CPPPermuteKernel.h6
-rw-r--r--arm_compute/core/CPP/kernels/CPPSortEuclideanDistanceKernel.h6
-rw-r--r--arm_compute/core/NEON/kernels/NEAbsoluteDifferenceKernel.h6
-rw-r--r--arm_compute/core/NEON/kernels/NEAccumulateKernel.h18
-rw-r--r--arm_compute/core/NEON/kernels/NEActivationLayerKernel.h6
-rw-r--r--arm_compute/core/NEON/kernels/NEArithmeticAdditionKernel.h6
-rw-r--r--arm_compute/core/NEON/kernels/NEArithmeticSubtractionKernel.h6
-rw-r--r--arm_compute/core/NEON/kernels/NEBatchNormalizationLayerKernel.h6
-rw-r--r--arm_compute/core/NEON/kernels/NEBitwiseAndKernel.h6
-rw-r--r--arm_compute/core/NEON/kernels/NEBitwiseNotKernel.h6
-rw-r--r--arm_compute/core/NEON/kernels/NEBitwiseOrKernel.h6
-rw-r--r--arm_compute/core/NEON/kernels/NEBitwiseXorKernel.h6
-rw-r--r--arm_compute/core/NEON/kernels/NEBox3x3Kernel.h10
-rw-r--r--arm_compute/core/NEON/kernels/NECannyEdgeKernel.h18
-rw-r--r--arm_compute/core/NEON/kernels/NEChannelCombineKernel.h6
-rw-r--r--arm_compute/core/NEON/kernels/NEChannelExtractKernel.h6
-rw-r--r--arm_compute/core/NEON/kernels/NECol2ImKernel.h6
-rw-r--r--arm_compute/core/NEON/kernels/NEColorConvertKernel.h6
-rw-r--r--arm_compute/core/NEON/kernels/NEConvolutionKernel.h18
-rw-r--r--arm_compute/core/NEON/kernels/NECumulativeDistributionKernel.h6
-rw-r--r--arm_compute/core/NEON/kernels/NEDepthConcatenateLayerKernel.h6
-rw-r--r--arm_compute/core/NEON/kernels/NEDepthConvertLayerKernel.h6
-rw-r--r--arm_compute/core/NEON/kernels/NEDepthwiseConvolutionLayer3x3Kernel.h6
-rw-r--r--arm_compute/core/NEON/kernels/NEDepthwiseIm2ColKernel.h6
-rw-r--r--arm_compute/core/NEON/kernels/NEDepthwiseVectorToTensorKernel.h6
-rw-r--r--arm_compute/core/NEON/kernels/NEDepthwiseWeightsReshapeKernel.h6
-rw-r--r--arm_compute/core/NEON/kernels/NEDequantizationLayerKernel.h6
-rw-r--r--arm_compute/core/NEON/kernels/NEDerivativeKernel.h6
-rw-r--r--arm_compute/core/NEON/kernels/NEDilateKernel.h6
-rw-r--r--arm_compute/core/NEON/kernels/NEDirectConvolutionLayerKernel.h6
-rw-r--r--arm_compute/core/NEON/kernels/NEDirectConvolutionLayerOutputStageKernel.h4
-rw-r--r--arm_compute/core/NEON/kernels/NEErodeKernel.h6
-rw-r--r--arm_compute/core/NEON/kernels/NEFastCornersKernel.h6
-rw-r--r--arm_compute/core/NEON/kernels/NEFillArrayKernel.h6
-rw-r--r--arm_compute/core/NEON/kernels/NEFillBorderKernel.h4
-rw-r--r--arm_compute/core/NEON/kernels/NEFillInnerBorderKernel.h6
-rw-r--r--arm_compute/core/NEON/kernels/NEFloorKernel.h6
-rw-r--r--arm_compute/core/NEON/kernels/NEGEMMAssemblyBaseKernel.h6
-rw-r--r--arm_compute/core/NEON/kernels/NEGEMMInterleave4x4Kernel.h6
-rw-r--r--arm_compute/core/NEON/kernels/NEGEMMInterleaveBlockedKernel.h6
-rw-r--r--arm_compute/core/NEON/kernels/NEGEMMLowpMatrixMultiplyKernel.h6
-rw-r--r--arm_compute/core/NEON/kernels/NEGEMMLowpOffsetContributionKernel.h6
-rw-r--r--arm_compute/core/NEON/kernels/NEGEMMLowpQuantizeDownInt32ToUint8ScaleByFixedPointKernel.h6
-rw-r--r--arm_compute/core/NEON/kernels/NEGEMMLowpQuantizeDownInt32ToUint8ScaleKernel.h6
-rw-r--r--arm_compute/core/NEON/kernels/NEGEMMLowpReductionKernel.h10
-rw-r--r--arm_compute/core/NEON/kernels/NEGEMMMatrixAccumulateBiasesKernel.h6
-rw-r--r--arm_compute/core/NEON/kernels/NEGEMMMatrixAdditionKernel.h6
-rw-r--r--arm_compute/core/NEON/kernels/NEGEMMMatrixMultiplyKernel.h6
-rw-r--r--arm_compute/core/NEON/kernels/NEGEMMMatrixVectorMultiplyKernel.h6
-rw-r--r--arm_compute/core/NEON/kernels/NEGEMMTranspose1xWKernel.h6
-rw-r--r--arm_compute/core/NEON/kernels/NEGaussian3x3Kernel.h6
-rw-r--r--arm_compute/core/NEON/kernels/NEGaussian5x5Kernel.h10
-rw-r--r--arm_compute/core/NEON/kernels/NEGaussianPyramidKernel.h10
-rw-r--r--arm_compute/core/NEON/kernels/NEHOGDescriptorKernel.h10
-rw-r--r--arm_compute/core/NEON/kernels/NEHOGDetectorKernel.h6
-rw-r--r--arm_compute/core/NEON/kernels/NEHarrisCornersKernel.h10
-rw-r--r--arm_compute/core/NEON/kernels/NEHistogramKernel.h6
-rw-r--r--arm_compute/core/NEON/kernels/NEIm2ColKernel.h6
-rw-r--r--arm_compute/core/NEON/kernels/NEIntegralImageKernel.h6
-rw-r--r--arm_compute/core/NEON/kernels/NEL2NormalizeLayerKernel.h6
-rw-r--r--arm_compute/core/NEON/kernels/NELKTrackerKernel.h6
-rw-r--r--arm_compute/core/NEON/kernels/NELocallyConnectedMatrixMultiplyKernel.h6
-rw-r--r--arm_compute/core/NEON/kernels/NEMagnitudePhaseKernel.h10
-rw-r--r--arm_compute/core/NEON/kernels/NEMeanStdDevKernel.h6
-rw-r--r--arm_compute/core/NEON/kernels/NEMedian3x3Kernel.h6
-rw-r--r--arm_compute/core/NEON/kernels/NEMinMaxLayerKernel.h6
-rw-r--r--arm_compute/core/NEON/kernels/NEMinMaxLocationKernel.h10
-rw-r--r--arm_compute/core/NEON/kernels/NENonLinearFilterKernel.h6
-rw-r--r--arm_compute/core/NEON/kernels/NENonMaximaSuppression3x3Kernel.h10
-rw-r--r--arm_compute/core/NEON/kernels/NENormalizationLayerKernel.h6
-rw-r--r--arm_compute/core/NEON/kernels/NEPixelWiseMultiplicationKernel.h6
-rw-r--r--arm_compute/core/NEON/kernels/NEPoolingLayerKernel.h4
-rw-r--r--arm_compute/core/NEON/kernels/NEQuantizationLayerKernel.h6
-rw-r--r--arm_compute/core/NEON/kernels/NEROIPoolingLayerKernel.h6
-rw-r--r--arm_compute/core/NEON/kernels/NEReductionOperationKernel.h6
-rw-r--r--arm_compute/core/NEON/kernels/NERemapKernel.h6
-rw-r--r--arm_compute/core/NEON/kernels/NEReshapeLayerKernel.h6
-rw-r--r--arm_compute/core/NEON/kernels/NEScaleKernel.h6
-rw-r--r--arm_compute/core/NEON/kernels/NEScharr3x3Kernel.h6
-rw-r--r--arm_compute/core/NEON/kernels/NESobel3x3Kernel.h6
-rw-r--r--arm_compute/core/NEON/kernels/NESobel5x5Kernel.h10
-rw-r--r--arm_compute/core/NEON/kernels/NESobel7x7Kernel.h10
-rw-r--r--arm_compute/core/NEON/kernels/NESoftmaxLayerKernel.h14
-rw-r--r--arm_compute/core/NEON/kernels/NETableLookupKernel.h6
-rw-r--r--arm_compute/core/NEON/kernels/NEThresholdKernel.h6
-rw-r--r--arm_compute/core/NEON/kernels/NETransposeKernel.h6
-rw-r--r--arm_compute/core/NEON/kernels/NEWarpKernel.h10
-rw-r--r--arm_compute/core/NEON/kernels/NEWeightsReshapeKernel.h6
-rw-r--r--arm_compute/core/NEON/kernels/NEWinogradLayerKernel.h4
-rw-r--r--arm_compute/core/NEON/kernels/arm32/NEGEMMAArch32Kernel.h6
-rw-r--r--arm_compute/core/NEON/kernels/arm64/NEGEMMAArch64Kernel.h6
-rw-r--r--arm_compute/core/NEON/kernels/arm64/NEGEMMLowpAArch64A53Kernel.h6
-rw-r--r--arm_compute/core/NEON/kernels/arm64/NEGEMMLowpAArch64Kernel.h6
-rw-r--r--arm_compute/core/NEON/kernels/arm64/NEGEMMLowpAArch64V8P4Kernel.h6
-rw-r--r--arm_compute/core/NEON/kernels/arm64/NEHGEMMAArch64FP16Kernel.h6
-rw-r--r--arm_compute/runtime/Scheduler.h4
-rw-r--r--src/runtime/Scheduler.cpp6
-rw-r--r--tests/SConscript4
-rw-r--r--tests/framework/Framework.cpp5
-rw-r--r--tests/framework/instruments/Instruments.cpp5
-rw-r--r--tests/framework/instruments/Instruments.h20
-rw-r--r--tests/framework/instruments/SchedulerTimer.cpp116
-rw-r--r--tests/framework/instruments/SchedulerTimer.h63
106 files changed, 794 insertions, 103 deletions
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 <unsigned int matrix_size>
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 <unsigned int matrix_size>
class NESeparableConvolutionHorKernel : public INESimpleKernel
{
public:
+ const char *name() const override
+ {
+ return "NESeparableConvolutionHorKernel";
+ }
/** Default constructor */
NESeparableConvolutionHorKernel();
@@ -138,6 +146,10 @@ template <unsigned int matrix_size>
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 <int32_t block_size>
class NEHarrisScoreKernel : public INEHarrisScoreKernel
{
public:
+ const char *name() const override
+ {
+ return "NEHarrisScoreKernel";
+ }
/** Default constructor */
NEHarrisScoreKernel();
// Inherited methods overridden:
@@ -105,6 +109,10 @@ template <int32_t block_size>
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<NELKInternalKeypoint>;
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 <MagnitudeType mag_type, PhaseType phase_type>
class NEMagnitudePhaseKernel : public INEKernel
{
public:
+ const char *name() const override
+ {
+ return "NEMagnitudePhaseKernel";
+ }
/** Default constructor */
NEMagnitudePhaseKernel();
/** Destructor */
@@ -100,6 +104,10 @@ template <MagnitudeType mag_type, PhaseType phase_type>
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 <InterpolationPolicy interpolation>
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 <InterpolationPolicy interpolation>
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<IScheduler> &scheduler);
+ static void set(std::shared_ptr<IScheduler> 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<IScheduler> Scheduler::_custom_scheduler = nullptr;
-void Scheduler::set(std::shared_ptr<IScheduler> &scheduler)
+void Scheduler::set(std::shared_ptr<IScheduler> 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, ScaleFactor>(InstrumentType::WALL_CLOCK_TIMER, ScaleFactor::NONE), Instrument::make_instrument<WallClockTimer, ScaleFactor::NONE>);
_available_instruments.emplace(std::pair<InstrumentType, ScaleFactor>(InstrumentType::WALL_CLOCK_TIMER, ScaleFactor::TIME_MS), Instrument::make_instrument<WallClockTimer, ScaleFactor::TIME_MS>);
_available_instruments.emplace(std::pair<InstrumentType, ScaleFactor>(InstrumentType::WALL_CLOCK_TIMER, ScaleFactor::TIME_S), Instrument::make_instrument<WallClockTimer, ScaleFactor::TIME_S>);
+ _available_instruments.emplace(std::pair<InstrumentType, ScaleFactor>(InstrumentType::SCHEDULER_TIMER, ScaleFactor::NONE), Instrument::make_instrument<SchedulerTimer, ScaleFactor::NONE>);
+ _available_instruments.emplace(std::pair<InstrumentType, ScaleFactor>(InstrumentType::SCHEDULER_TIMER, ScaleFactor::TIME_MS), Instrument::make_instrument<SchedulerTimer, ScaleFactor::TIME_MS>);
+ _available_instruments.emplace(std::pair<InstrumentType, ScaleFactor>(InstrumentType::SCHEDULER_TIMER, ScaleFactor::TIME_S), Instrument::make_instrument<SchedulerTimer, ScaleFactor::TIME_S>);
#ifdef PMU_ENABLED
_available_instruments.emplace(std::pair<InstrumentType, ScaleFactor>(InstrumentType::PMU, ScaleFactor::NONE), Instrument::make_instrument<PMUCounter, ScaleFactor::NONE>);
_available_instruments.emplace(std::pair<InstrumentType, ScaleFactor>(InstrumentType::PMU, ScaleFactor::SCALE_1K), Instrument::make_instrument<PMUCounter, ScaleFactor::SCALE_1K>);
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, ScaleFactor>(InstrumentType::WALL_CLOCK_TIMER, ScaleFactor::NONE) },
{ "wall_clock_timer_ms", std::pair<InstrumentType, ScaleFactor>(InstrumentType::WALL_CLOCK_TIMER, ScaleFactor::TIME_MS) },
{ "wall_clock_timer_s", std::pair<InstrumentType, ScaleFactor>(InstrumentType::WALL_CLOCK_TIMER, ScaleFactor::TIME_S) },
+ { "scheduler_timer", std::pair<InstrumentType, ScaleFactor>(InstrumentType::SCHEDULER_TIMER, ScaleFactor::NONE) },
+ { "scheduler_timer_ms", std::pair<InstrumentType, ScaleFactor>(InstrumentType::SCHEDULER_TIMER, ScaleFactor::TIME_MS) },
+ { "scheduler_timer_s", std::pair<InstrumentType, ScaleFactor>(InstrumentType::SCHEDULER_TIMER, ScaleFactor::TIME_S) },
{ "pmu", std::pair<InstrumentType, ScaleFactor>(InstrumentType::PMU, ScaleFactor::NONE) },
{ "pmu_k", std::pair<InstrumentType, ScaleFactor>(InstrumentType::PMU, ScaleFactor::SCALE_1K) },
{ "pmu_m", std::pair<InstrumentType, ScaleFactor>(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 <sstream>
@@ -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<InstrumentType, ScaleFactor>;
@@ -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<SchedulerTimer::kernel_info> &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<SchedulerTimer::kernel_info> &_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<Interceptor>(_kernels, *_real_scheduler, _scale_factor);
+ Scheduler::set(std::static_pointer_cast<IScheduler>(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 <list>
+
+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<kernel_info> _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 */