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.cpp39
1 files changed, 27 insertions, 12 deletions
diff --git a/src/runtime/CL/functions/CLNormalizationLayer.cpp b/src/runtime/CL/functions/CLNormalizationLayer.cpp
index 40a6cdd2f4..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,15 +30,16 @@
#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"
-#include "support/MemorySupport.h"
-
-using namespace arm_compute;
+namespace arm_compute
+{
CLNormalizationLayer::CLNormalizationLayer()
- : _norm_kernel(support::cpp14::make_unique<CLNormalizationLayerKernel>()),
- _border_handler(support::cpp14::make_unique<CLFillBorderKernel>())
+ : _norm_kernel(std::make_unique<CLNormalizationLayerKernel>()),
+ _border_handler(std::make_unique<CLFillBorderKernel>())
{
}
@@ -49,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