aboutsummaryrefslogtreecommitdiff
path: root/arm_compute/runtime/CL/functions/CLScale.h
diff options
context:
space:
mode:
Diffstat (limited to 'arm_compute/runtime/CL/functions/CLScale.h')
-rw-r--r--arm_compute/runtime/CL/functions/CLScale.h39
1 files changed, 26 insertions, 13 deletions
diff --git a/arm_compute/runtime/CL/functions/CLScale.h b/arm_compute/runtime/CL/functions/CLScale.h
index 1739190972..5c3824eb58 100644
--- a/arm_compute/runtime/CL/functions/CLScale.h
+++ b/arm_compute/runtime/CL/functions/CLScale.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2016-2020 Arm Limited.
+ * Copyright (c) 2016-2021 Arm Limited.
*
* SPDX-License-Identifier: MIT
*
@@ -26,28 +26,24 @@
#include "arm_compute/core/KernelDescriptors.h"
#include "arm_compute/core/Types.h"
-#include "arm_compute/runtime/CL/CLRuntimeContext.h"
#include "arm_compute/runtime/IFunction.h"
-#include "src/core/CL/kernels/CLFillBorderKernel.h"
-#include "src/core/CL/kernels/CLScaleKernel.h"
-#include <cstdint>
+#include <memory>
namespace arm_compute
{
-// Forward declarations
class CLCompileContext;
class ICLTensor;
class ITensorInfo;
-/** Basic function to run @ref CLScaleKernel */
+/** Basic function to run @ref opencl::ClScale */
class CLScale : public IFunction
{
public:
/** Default Constructor */
CLScale();
/** Default Destructor */
- ~CLScale() = default;
+ ~CLScale();
/** Prevent instances of this class from being copied (As this class contains pointers) */
CLScale(const CLScale &) = delete;
/** Default move constructor */
@@ -59,6 +55,20 @@ public:
/** Initialize the function's source, destination, interpolation type and border_mode.
*
+ * Valid data layouts:
+ * - NHWC
+ * - NCHW
+ *
+ * Valid data type configurations:
+ * |src |dst |
+ * |:--------------|:--------------|
+ * |QASYMM8 |QASYMM8 |
+ * |QASYMM8_SIGNED |QASYMM8_SIGNED |
+ * |F16 |F16 |
+ * |F32 |F32 |
+ * |U8 |U8 |
+ * |S16 |S16 |
+ *
* @param[in,out] input Source tensor. Data types supported: U8/QASYMM8/QASYMM8_SIGNED/S16/F16/F32. (Written to only for @p border_mode != UNDEFINED)
* @param[out] output Destination tensor. Data types supported: Same as @p input
* All but the lowest two dimensions must be the same size as in the input tensor, i.e. scaling is only performed within the XY-plane.
@@ -73,7 +83,10 @@ public:
* All but the lowest two dimensions must be the same size as in the input tensor, i.e. scaling is only performed within the XY-plane.
* @param[in] info @ref ScaleKernelInfo descriptor to be used to configure
*/
- void configure(const CLCompileContext &compile_context, ICLTensor *input, ICLTensor *output, const ScaleKernelInfo &info);
+ void configure(const CLCompileContext &compile_context,
+ ICLTensor *input,
+ ICLTensor *output,
+ const ScaleKernelInfo &info);
/** Static function to check if given info will lead to a valid configuration of @ref CLScale
*
@@ -89,9 +102,9 @@ public:
// Inherited methods overridden:
void run() override;
-protected:
- std::unique_ptr<CLFillBorderKernel> _border_handler;
- std::unique_ptr<CLScaleKernel> _kernel;
+private:
+ struct Impl;
+ std::unique_ptr<Impl> _impl;
};
-}
+} // namespace arm_compute
#endif /*ARM_COMPUTE_CLSCALE_H */