aboutsummaryrefslogtreecommitdiff
path: root/src/runtime/CL/functions/CLNormalizationLayer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/runtime/CL/functions/CLNormalizationLayer.cpp')
-rw-r--r--src/runtime/CL/functions/CLNormalizationLayer.cpp34
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