diff options
Diffstat (limited to 'src/runtime/CL/functions/CLNormalizationLayer.cpp')
-rw-r--r-- | src/runtime/CL/functions/CLNormalizationLayer.cpp | 34 |
1 files changed, 25 insertions, 9 deletions
diff --git a/src/runtime/CL/functions/CLNormalizationLayer.cpp b/src/runtime/CL/functions/CLNormalizationLayer.cpp index ec6fa803f5..f93f82f1a2 100644 --- a/src/runtime/CL/functions/CLNormalizationLayer.cpp +++ b/src/runtime/CL/functions/CLNormalizationLayer.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017-2020 Arm Limited. + * Copyright (c) 2017-2021 Arm Limited. * * SPDX-License-Identifier: MIT * @@ -30,11 +30,13 @@ #include "arm_compute/core/Types.h" #include "arm_compute/core/Validate.h" #include "arm_compute/runtime/CL/CLScheduler.h" + +#include "src/common/utils/Log.h" #include "src/core/CL/kernels/CLFillBorderKernel.h" #include "src/core/CL/kernels/CLNormalizationLayerKernel.h" -using namespace arm_compute; - +namespace arm_compute +{ CLNormalizationLayer::CLNormalizationLayer() : _norm_kernel(std::make_unique<CLNormalizationLayerKernel>()), _border_handler(std::make_unique<CLFillBorderKernel>()) @@ -48,27 +50,41 @@ void CLNormalizationLayer::configure(ICLTensor *input, ICLTensor *output, const configure(CLKernelLibrary::get().get_compile_context(), input, output, norm_info); } -void CLNormalizationLayer::configure(const CLCompileContext &compile_context, ICLTensor *input, ICLTensor *output, const NormalizationLayerInfo &norm_info) +void CLNormalizationLayer::configure(const CLCompileContext &compile_context, + ICLTensor *input, + ICLTensor *output, + const NormalizationLayerInfo &norm_info) { ARM_COMPUTE_ERROR_ON(input == nullptr); + ARM_COMPUTE_LOG_PARAMS(input, output, norm_info); // Configure normalization kernel _norm_kernel->configure(compile_context, input, output, norm_info); - // Fill the border by 3 elements since we need vload4 in the IN_MAP normalization kernel - _border_handler->configure(compile_context, input, _norm_kernel->border_size(), BorderMode::CONSTANT, PixelValue()); + if (!_norm_kernel->border_size().empty()) + { + // Fill the border by 3 elements since we need vload4 in the IN_MAP normalization kernel + _border_handler->configure(compile_context, input, _norm_kernel->border_size(), BorderMode::CONSTANT, + PixelValue()); + } } -Status CLNormalizationLayer::validate(const ITensorInfo *input, const ITensorInfo *output, const NormalizationLayerInfo &norm_info) +Status CLNormalizationLayer::validate(const ITensorInfo *input, + const ITensorInfo *output, + const NormalizationLayerInfo &norm_info) { return CLNormalizationLayerKernel::validate(input, output, norm_info); } void CLNormalizationLayer::run() { - // Run border handler - CLScheduler::get().enqueue(*_border_handler, false); + if (!_norm_kernel->border_size().empty()) + { + // Run border handler + CLScheduler::get().enqueue(*_border_handler, false); + } // Run normalization kernel CLScheduler::get().enqueue(*_norm_kernel); } +} // namespace arm_compute |