From 8c3c0e7b117723bc98b6acc85565ffa521b10c0d Mon Sep 17 00:00:00 2001 From: Georgios Pinitas Date: Thu, 3 Dec 2020 20:11:53 +0000 Subject: Remove (NE/CL)ComputeAllAnchors function ComputeAllAnchors is used as part of GenerateProposals and not standalone thus removes function exposure. Partially Resolves: COMPMID-3996 Signed-off-by: Georgios Pinitas Change-Id: I729010b48d747ec40d3ce2c7d0e907e8ec5cd55f Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/4661 Tested-by: Arm Jenkins Reviewed-by: Michele Di Giorgio --- Android.bp | 2 - arm_compute/runtime/CL/CLFunctions.h | 1 - .../runtime/CL/functions/CLComputeAllAnchors.h | 74 ---------------------- arm_compute/runtime/NEON/NEFunctions.h | 1 - .../runtime/NEON/functions/NEComputeAllAnchors.h | 63 ------------------ .../NEON/functions/NEGenerateProposalsLayer.h | 22 +++---- docs/00_introduction.dox | 5 +- src/runtime/CL/functions/CLComputeAllAnchors.cpp | 46 -------------- src/runtime/NEON/functions/NEComputeAllAnchors.cpp | 42 ------------ .../NEON/functions/NEGenerateProposalsLayer.cpp | 10 +-- tests/validation/CL/GenerateProposalsLayer.cpp | 5 +- tests/validation/NEON/GenerateProposalsLayer.cpp | 5 +- 12 files changed, 28 insertions(+), 248 deletions(-) delete mode 100644 arm_compute/runtime/CL/functions/CLComputeAllAnchors.h delete mode 100644 arm_compute/runtime/NEON/functions/NEComputeAllAnchors.h delete mode 100644 src/runtime/CL/functions/CLComputeAllAnchors.cpp delete mode 100644 src/runtime/NEON/functions/NEComputeAllAnchors.cpp diff --git a/Android.bp b/Android.bp index 93ab684fc2..c5213f4f09 100644 --- a/Android.bp +++ b/Android.bp @@ -473,7 +473,6 @@ cc_library_static { "src/runtime/CL/functions/CLChannelShuffleLayer.cpp", "src/runtime/CL/functions/CLColorConvert.cpp", "src/runtime/CL/functions/CLComparison.cpp", - "src/runtime/CL/functions/CLComputeAllAnchors.cpp", "src/runtime/CL/functions/CLConcatenateLayer.cpp", "src/runtime/CL/functions/CLConvertFullyConnectedWeights.cpp", "src/runtime/CL/functions/CLConvolution.cpp", @@ -639,7 +638,6 @@ cc_library_static { "src/runtime/NEON/functions/NEChannelExtract.cpp", "src/runtime/NEON/functions/NEChannelShuffleLayer.cpp", "src/runtime/NEON/functions/NEColorConvert.cpp", - "src/runtime/NEON/functions/NEComputeAllAnchors.cpp", "src/runtime/NEON/functions/NEConcatenateLayer.cpp", "src/runtime/NEON/functions/NEConvertFullyConnectedWeights.cpp", "src/runtime/NEON/functions/NEConvolution.cpp", diff --git a/arm_compute/runtime/CL/CLFunctions.h b/arm_compute/runtime/CL/CLFunctions.h index ff686c59d5..e08537b33a 100644 --- a/arm_compute/runtime/CL/CLFunctions.h +++ b/arm_compute/runtime/CL/CLFunctions.h @@ -44,7 +44,6 @@ #include "arm_compute/runtime/CL/functions/CLChannelShuffleLayer.h" #include "arm_compute/runtime/CL/functions/CLColorConvert.h" #include "arm_compute/runtime/CL/functions/CLComparison.h" -#include "arm_compute/runtime/CL/functions/CLComputeAllAnchors.h" #include "arm_compute/runtime/CL/functions/CLConcatenateLayer.h" #include "arm_compute/runtime/CL/functions/CLConvertFullyConnectedWeights.h" #include "arm_compute/runtime/CL/functions/CLConvolution.h" diff --git a/arm_compute/runtime/CL/functions/CLComputeAllAnchors.h b/arm_compute/runtime/CL/functions/CLComputeAllAnchors.h deleted file mode 100644 index d6a2ab423d..0000000000 --- a/arm_compute/runtime/CL/functions/CLComputeAllAnchors.h +++ /dev/null @@ -1,74 +0,0 @@ -/* - * Copyright (c) 2019-2020 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_CLCOMPUTEALLANCHORS_H -#define ARM_COMPUTE_CLCOMPUTEALLANCHORS_H - -#include "arm_compute/core/Error.h" -#include "arm_compute/runtime/CL/ICLSimpleFunction.h" - -namespace arm_compute -{ -class CLCompileContext; -class ICLTensor; -class ITensorInfo; -class ComputeAnchorsInfo; - -/** Basic function to run @ref CLComputeAllAnchorsKernel. - * - * This function calls the following OpenCL kernels: - * -# @ref CLComputeAllAnchorsKernel - */ -class CLComputeAllAnchors : public ICLSimpleFunction -{ -public: - /** Set the input and output tensors. - * - * @param[in] anchors Source tensor. Original set of anchors of size (4, A) where A is the number of anchors. Data types supported: F16/F32 - * @param[out] all_anchors Destination tensor. Destination anchors of size (4, H*W*A) where H and W are the height and width of the feature map and A is the number of anchors. Data types supported: Same as @p input - * @param[in] info Contains Compute Anchors operation information described in @ref ComputeAnchorsInfo - * - */ - void configure(const ICLTensor *anchors, ICLTensor *all_anchors, const ComputeAnchorsInfo &info); - /** Set the input and output tensors. - * - * @param[in] compile_context The compile context to be used. - * @param[in] anchors Source tensor. Original set of anchors of size (4, A) where A is the number of anchors. Data types supported: F16/F32 - * @param[out] all_anchors Destination tensor. Destination anchors of size (4, H*W*A) where H and W are the height and width of the feature map and A is the number of anchors. Data types supported: Same as @p input - * @param[in] info Contains Compute Anchors operation information described in @ref ComputeAnchorsInfo - * - */ - void configure(const CLCompileContext &compile_context, const ICLTensor *anchors, ICLTensor *all_anchors, const ComputeAnchorsInfo &info); - - /** Static function to check if given info will lead to a valid configuration of @ref CLComputeAllAnchorsKernel - * - * @param[in] anchors Source tensor info. Original set of anchors of size (4, A) where A is the number of anchors. Data types supported: F16/F32 - * @param[in] all_anchors Destination tensor info. Destination anchors of size (4, H*W*A) where H and W are the height and width of the feature map and A is the number of anchors. Data types supported: Same as @p input - * @param[in] info Contains Compute Anchors operation information described in @ref ComputeAnchorsInfo - * - * @return a Status - */ - static Status validate(const ITensorInfo *anchors, const ITensorInfo *all_anchors, const ComputeAnchorsInfo &info); -}; -} // namespace arm_compute -#endif /* ARM_COMPUTE_CLCOMPUTEALLANCOHORS_H */ diff --git a/arm_compute/runtime/NEON/NEFunctions.h b/arm_compute/runtime/NEON/NEFunctions.h index 694ebb4a17..5ac94102fc 100644 --- a/arm_compute/runtime/NEON/NEFunctions.h +++ b/arm_compute/runtime/NEON/NEFunctions.h @@ -45,7 +45,6 @@ #include "arm_compute/runtime/NEON/functions/NEChannelExtract.h" #include "arm_compute/runtime/NEON/functions/NEChannelShuffleLayer.h" #include "arm_compute/runtime/NEON/functions/NEColorConvert.h" -#include "arm_compute/runtime/NEON/functions/NEComputeAllAnchors.h" #include "arm_compute/runtime/NEON/functions/NEConcatenateLayer.h" #include "arm_compute/runtime/NEON/functions/NEConvertFullyConnectedWeights.h" #include "arm_compute/runtime/NEON/functions/NEConvolution.h" diff --git a/arm_compute/runtime/NEON/functions/NEComputeAllAnchors.h b/arm_compute/runtime/NEON/functions/NEComputeAllAnchors.h deleted file mode 100644 index b63243fec6..0000000000 --- a/arm_compute/runtime/NEON/functions/NEComputeAllAnchors.h +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Copyright (c) 2019-2020 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_NECOMPUTEALLANCHORS_H -#define ARM_COMPUTE_NECOMPUTEALLANCHORS_H - -#include "arm_compute/core/Types.h" -#include "arm_compute/runtime/NEON/INESimpleFunctionNoBorder.h" - -namespace arm_compute -{ -class ITensor; -class ITensorInfo; - -/** Basic function to run @ref NEComputeAllAnchorsKernel. - * - * This function calls the following NEON kernels: - * -# @ref NEComputeAllAnchorsKernel - */ -class NEComputeAllAnchors : public INESimpleFunctionNoBorder -{ -public: - /** Set the input and output tensors. - * - * @param[in] anchors Source tensor. Original set of anchors of size (4, A) where A is the number of anchors. Data types supported: F16/F32 - * @param[out] all_anchors Destination tensor. Destination anchors of size (4, H*W*A) where H and W are the height and width of the feature map and A is the number of anchors. Data types supported: Same as @p input - * @param[in] info Contains Compute Anchors operation information described in @ref ComputeAnchorsInfo - * - */ - void configure(const ITensor *anchors, ITensor *all_anchors, const ComputeAnchorsInfo &info); - - /** Static function to check if given info will lead to a valid configuration of @ref NEComputeAllAnchorsKernel - * - * @param[in] anchors Source tensor info. Original set of anchors of size (4, A) where A is the number of anchors. Data types supported: F16/F32 - * @param[in] all_anchors Destination tensor info. Destination anchors of size (4, H*W*A) where H and W are the height and width of the feature map and A is the number of anchors. Data types supported: Same as @p input - * @param[in] info Contains Compute Anchors operation information described in @ref ComputeAnchorsInfo - * - * @return a Status - */ - static Status validate(const ITensorInfo *anchors, const ITensorInfo *all_anchors, const ComputeAnchorsInfo &info); -}; -} // namespace arm_compute -#endif /* ARM_COMPUTE_NECOMPUTEALLANCHORS_H */ diff --git a/arm_compute/runtime/NEON/functions/NEGenerateProposalsLayer.h b/arm_compute/runtime/NEON/functions/NEGenerateProposalsLayer.h index 613f0d1c47..40533584b9 100644 --- a/arm_compute/runtime/NEON/functions/NEGenerateProposalsLayer.h +++ b/arm_compute/runtime/NEON/functions/NEGenerateProposalsLayer.h @@ -30,7 +30,6 @@ #include "arm_compute/runtime/IFunction.h" #include "arm_compute/runtime/MemoryGroup.h" #include "arm_compute/runtime/NEON/functions/NEBoundingBoxTransform.h" -#include "arm_compute/runtime/NEON/functions/NEComputeAllAnchors.h" #include "arm_compute/runtime/NEON/functions/NEDequantizationLayer.h" #include "arm_compute/runtime/NEON/functions/NEPadLayer.h" #include "arm_compute/runtime/NEON/functions/NEPermute.h" @@ -41,6 +40,7 @@ namespace arm_compute { class ITensor; +class NEComputeAllAnchorsKernel; /** Basic function to generate proposals for a RPN (Region Proposal Network) * @@ -114,16 +114,16 @@ private: MemoryGroup _memory_group; // Neon kernels - NEPermute _permute_deltas; - NEReshapeLayer _flatten_deltas; - NEPermute _permute_scores; - NEReshapeLayer _flatten_scores; - NEComputeAllAnchors _compute_anchors; - NEBoundingBoxTransform _bounding_box; - NEPadLayer _pad; - NEDequantizationLayer _dequantize_anchors; - NEDequantizationLayer _dequantize_deltas; - NEQuantizationLayer _quantize_all_proposals; + NEPermute _permute_deltas; + NEReshapeLayer _flatten_deltas; + NEPermute _permute_scores; + NEReshapeLayer _flatten_scores; + std::unique_ptr _compute_anchors; + NEBoundingBoxTransform _bounding_box; + NEPadLayer _pad; + NEDequantizationLayer _dequantize_anchors; + NEDequantizationLayer _dequantize_deltas; + NEQuantizationLayer _quantize_all_proposals; // CPP functions CPPBoxWithNonMaximaSuppressionLimit _cpp_nms; diff --git a/docs/00_introduction.dox b/docs/00_introduction.dox index 4b1819acce..4baf33d7c1 100644 --- a/docs/00_introduction.dox +++ b/docs/00_introduction.dox @@ -94,7 +94,8 @@ v21.02 Public major release - NECol2Im - NEGEMMInterleave4x4 - NEGEMMTranspose1xW - - Remove kernels: + - NEComputeAllAnchors / CLComputeAllAnchors + - Removed kernels: - NEGEMMMatrixVectorMultiplyKernel - NELocallyConnectedMatrixMultiplyKernel / CLLocallyConnectedMatrixMultiplyKernel @@ -621,7 +622,7 @@ v19.11 Public major release - @ref CLLogSoftmaxLayer - New NEON kernels / functions: - @ref NEBoundingBoxTransformKernel / @ref NEBoundingBoxTransform - - @ref NEComputeAllAnchorsKernel / @ref NEComputeAllAnchors + - @ref NEComputeAllAnchorsKernel / NEComputeAllAnchors - @ref NEDetectionPostProcessLayer - @ref NEGenerateProposalsLayer - @ref NEInstanceNormalizationLayerKernel / @ref NEInstanceNormalizationLayer diff --git a/src/runtime/CL/functions/CLComputeAllAnchors.cpp b/src/runtime/CL/functions/CLComputeAllAnchors.cpp deleted file mode 100644 index 5838e32ed8..0000000000 --- a/src/runtime/CL/functions/CLComputeAllAnchors.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Copyright (c) 2019-2020 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 "arm_compute/runtime/CL/functions/CLComputeAllAnchors.h" -#include "src/core/CL/kernels/CLGenerateProposalsLayerKernel.h" - -namespace arm_compute -{ -void CLComputeAllAnchors::configure(const ICLTensor *anchors, ICLTensor *all_anchors, const ComputeAnchorsInfo &info) -{ - configure(CLKernelLibrary::get().get_compile_context(), anchors, all_anchors, info); -} - -void CLComputeAllAnchors::configure(const CLCompileContext &compile_context, const ICLTensor *anchors, ICLTensor *all_anchors, const ComputeAnchorsInfo &info) -{ - // Configure ComputeAllAnchors kernel - auto k = std::make_unique(); - k->configure(compile_context, anchors, all_anchors, info); - _kernel = std::move(k); -} - -Status CLComputeAllAnchors::validate(const ITensorInfo *anchors, const ITensorInfo *all_anchors, const ComputeAnchorsInfo &info) -{ - return CLComputeAllAnchorsKernel::validate(anchors, all_anchors, info); -} -} // namespace arm_compute diff --git a/src/runtime/NEON/functions/NEComputeAllAnchors.cpp b/src/runtime/NEON/functions/NEComputeAllAnchors.cpp deleted file mode 100644 index a305ca0708..0000000000 --- a/src/runtime/NEON/functions/NEComputeAllAnchors.cpp +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Copyright (c) 2019-2020 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 "arm_compute/runtime/NEON/functions/NEComputeAllAnchors.h" - -#include "src/core/NEON/kernels/NEGenerateProposalsLayerKernel.h" - -namespace arm_compute -{ -void NEComputeAllAnchors::configure(const ITensor *anchors, ITensor *all_anchors, const ComputeAnchorsInfo &info) -{ - // Configure ComputeAllAnchors kernel - auto k = std::make_unique(); - k->configure(anchors, all_anchors, info); - _kernel = std::move(k); -} - -Status NEComputeAllAnchors::validate(const ITensorInfo *anchors, const ITensorInfo *all_anchors, const ComputeAnchorsInfo &info) -{ - return NEComputeAllAnchorsKernel::validate(anchors, all_anchors, info); -} -} // namespace arm_compute diff --git a/src/runtime/NEON/functions/NEGenerateProposalsLayer.cpp b/src/runtime/NEON/functions/NEGenerateProposalsLayer.cpp index d9a498e4bd..f3a6a30047 100644 --- a/src/runtime/NEON/functions/NEGenerateProposalsLayer.cpp +++ b/src/runtime/NEON/functions/NEGenerateProposalsLayer.cpp @@ -27,6 +27,7 @@ #include "arm_compute/runtime/NEON/NEScheduler.h" #include "src/core/NEON/kernels/NECopyKernel.h" #include "src/core/NEON/kernels/NEFillBorderKernel.h" +#include "src/core/NEON/kernels/NEGenerateProposalsLayerKernel.h" #include "src/core/NEON/kernels/NEPadLayerKernel.h" #include "src/core/helpers/AutoConfiguration.h" @@ -38,7 +39,7 @@ NEGenerateProposalsLayer::NEGenerateProposalsLayer(std::shared_ptr(); + _compute_anchors->configure(anchors, &_all_anchors, ComputeAnchorsInfo(feat_width, feat_height, info.spatial_scale())); const TensorShape flatten_shape_deltas(values_per_roi, total_num_anchors); _deltas_flattened.allocator()->init(TensorInfo(flatten_shape_deltas, 1, scores_data_type, deltas->info()->quantization_info())); @@ -234,7 +236,7 @@ Status NEGenerateProposalsLayer::validate(const ITensorInfo *scores, const ITens } TensorInfo all_anchors_info(anchors->clone()->set_tensor_shape(TensorShape(values_per_roi, total_num_anchors)).set_is_resizable(true)); - ARM_COMPUTE_RETURN_ON_ERROR(NEComputeAllAnchors::validate(anchors, &all_anchors_info, ComputeAnchorsInfo(feat_width, feat_height, info.spatial_scale()))); + ARM_COMPUTE_RETURN_ON_ERROR(NEComputeAllAnchorsKernel::validate(anchors, &all_anchors_info, ComputeAnchorsInfo(feat_width, feat_height, info.spatial_scale()))); TensorInfo deltas_permuted_info = deltas->clone()->set_tensor_shape(TensorShape(values_per_roi * num_anchors, feat_width, feat_height)).set_is_resizable(true); TensorInfo scores_permuted_info = scores->clone()->set_tensor_shape(TensorShape(num_anchors, feat_width, feat_height)).set_is_resizable(true); @@ -324,7 +326,7 @@ void NEGenerateProposalsLayer::run() MemoryGroupResourceScope scope_mg(_memory_group); // Compute all the anchors - _compute_anchors.run(); + NEScheduler::get().schedule(_compute_anchors.get(), Window::DimY); // Transpose and reshape the inputs if(!_is_nhwc) diff --git a/tests/validation/CL/GenerateProposalsLayer.cpp b/tests/validation/CL/GenerateProposalsLayer.cpp index d0ceef5106..646a0e0530 100644 --- a/tests/validation/CL/GenerateProposalsLayer.cpp +++ b/tests/validation/CL/GenerateProposalsLayer.cpp @@ -22,12 +22,13 @@ * SOFTWARE. */ #include "arm_compute/runtime/CL/CLScheduler.h" -#include "arm_compute/runtime/CL/functions/CLComputeAllAnchors.h" #include "arm_compute/runtime/CL/functions/CLGenerateProposalsLayer.h" #include "arm_compute/runtime/CL/functions/CLPermute.h" #include "arm_compute/runtime/CL/functions/CLSlice.h" +#include "src/core/CL/kernels/CLGenerateProposalsLayerKernel.h" #include "tests/CL/CLAccessor.h" #include "tests/CL/CLArrayAccessor.h" +#include "tests/CL/Helper.h" #include "tests/Globals.h" #include "tests/framework/Macros.h" #include "tests/framework/datasets/Datasets.h" @@ -43,6 +44,8 @@ namespace validation { namespace { +using CLComputeAllAnchors = CLSynthetizeFunction; + template inline void fill_tensor(U &&tensor, const std::vector &v) { diff --git a/tests/validation/NEON/GenerateProposalsLayer.cpp b/tests/validation/NEON/GenerateProposalsLayer.cpp index d14b8cb8c4..6a28fecf7f 100644 --- a/tests/validation/NEON/GenerateProposalsLayer.cpp +++ b/tests/validation/NEON/GenerateProposalsLayer.cpp @@ -22,13 +22,14 @@ * SOFTWARE. */ #include "arm_compute/runtime/NEON/NEScheduler.h" -#include "arm_compute/runtime/NEON/functions/NEComputeAllAnchors.h" #include "arm_compute/runtime/NEON/functions/NEGenerateProposalsLayer.h" #include "arm_compute/runtime/NEON/functions/NEPermute.h" #include "arm_compute/runtime/NEON/functions/NESlice.h" +#include "src/core/NEON/kernels/NEGenerateProposalsLayerKernel.h" #include "tests/Globals.h" #include "tests/NEON/Accessor.h" #include "tests/NEON/ArrayAccessor.h" +#include "tests/NEON/Helper.h" #include "tests/framework/Macros.h" #include "tests/framework/datasets/Datasets.h" #include "tests/validation/Validation.h" @@ -43,6 +44,8 @@ namespace validation { namespace { +using NEComputeAllAnchors = NESynthetizeFunction; + template inline void fill_tensor(U &&tensor, const std::vector &v) { -- cgit v1.2.1