diff options
Diffstat (limited to 'libs/ARMComputeEx/arm_compute/core/CL/kernels/CLPixelWiseDivisionKernel.h')
-rw-r--r-- | libs/ARMComputeEx/arm_compute/core/CL/kernels/CLPixelWiseDivisionKernel.h | 78 |
1 files changed, 58 insertions, 20 deletions
diff --git a/libs/ARMComputeEx/arm_compute/core/CL/kernels/CLPixelWiseDivisionKernel.h b/libs/ARMComputeEx/arm_compute/core/CL/kernels/CLPixelWiseDivisionKernel.h index cd2b255bc..d579f5d8f 100644 --- a/libs/ARMComputeEx/arm_compute/core/CL/kernels/CLPixelWiseDivisionKernel.h +++ b/libs/ARMComputeEx/arm_compute/core/CL/kernels/CLPixelWiseDivisionKernel.h @@ -14,68 +14,106 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + +/** + * @file CLPixelWiseDivisionKernel.h + * @ingroup COM_AI_RUNTIME + * @brief This file defines CLPixelWiseDivisionKernel class + */ + #ifndef __ARM_COMPUTE_CLPIXELWISEDIVISIONKERNEL_H__ #define __ARM_COMPUTE_CLPIXELWISEDIVISIONKERNEL_H__ #include "arm_compute/core/CL/ICLKernel.h" -#include "arm_compute/core/Types.h" namespace arm_compute { class ICLTensor; -/** Interface for the pixelwise division kernel. - * +/** + * @brief Interface for the pixelwise division kernel. */ class CLPixelWiseDivisionKernel : public ICLKernel { public: - /** Default constructor.*/ + /** + * @brief Construct a CLPixelWiseDivisionKernel object + */ CLPixelWiseDivisionKernel(); - /** Prevent instances of this class from being copied (As this class contains pointers). */ + + /** + * @brief Prevent instances of this class from being copied (As this class contains pointers). + */ CLPixelWiseDivisionKernel(const CLPixelWiseDivisionKernel &) = delete; - /** Prevent instances of this class from being copied (As this class contains pointers). */ + + /** + * @brief Prevent instances of this class from being copied (As this class contains pointers). + */ CLPixelWiseDivisionKernel &operator=(const CLPixelWiseDivisionKernel &) = delete; - /** Allow instances of this class to be moved */ + + /** + * @brief Construct a CLPixelWiseDivisionKernel object by using move constructor + * @param[in] CLPixelWiseDivisionKernel object to move + */ CLPixelWiseDivisionKernel(CLPixelWiseDivisionKernel &&) = default; - /** Allow instances of this class to be moved */ + + /** + * @brief Allow instances of this class to be moved + * @param[in] CLPixelWiseDivisionKernel object to move + */ CLPixelWiseDivisionKernel &operator=(CLPixelWiseDivisionKernel &&) = default; - /** Initialise the kernel's input, output and border mode. - * - * @param[in] input1 An input tensor. Data types supported: U8/QS8/QS16/S16/F16/F32. + + /** + * @brief Initialise the kernel's input, output and border mode. + * @param[in] input1 An input tensor. Data types supported: U8/S16/F16/F32. * @param[in] input2 An input tensor. Data types supported: same as @p input1. * @param[out] output The output tensor, Data types supported: same as @p input1. Note: - * U8 (QS8, QS16) requires both inputs to be U8 (QS8, QS16). + * U8 requires both inputs to be U8. * @param[in] scale Scale to apply after division. * Scale must be positive and its value must be either 1/255 or 1/2^n - * where n is between 0 and 15. For QS8 and QS16 scale must be 1. + * where n is between 0 and 15. * @param[in] overflow_policy Overflow policy. Supported overflow policies: Wrap, Saturate * @param[in] rounding_policy Rounding policy. Supported rounding modes: to zero, to nearest * even. + * @return N/A */ void configure(const ICLTensor *input1, const ICLTensor *input2, ICLTensor *output, float scale, ConvertPolicy overflow_policy, RoundingPolicy rounding_policy); - /** Static function to check if given info will lead to a valid configuration of @ref + + /** + * @brief Static function to check if given info will lead to a valid configuration of @ref * CLPixelWiseDivisionKernel - * - * @param[in] input1 An input tensor info. Data types supported: U8/QS8/QS16/S16/F16/F32. + * @param[in] input1 An input tensor info. Data types supported: U8/S16/F16/F32. * @param[in] input2 An input tensor info. Data types supported: same as @p input1. * @param[in] output The output tensor info, Data types supported: same as @p input1. - * Note: U8 (QS8, QS16) requires both inputs to be U8 (QS8, QS16). + * Note: U8 requires both inputs to be U8. * @param[in] scale Scale to apply after division. * Scale must be positive and its value must be either 1/255 or 1/2^n - * where n is between 0 and 15. For QS8 and QS16 scale must be 1. + * where n is between 0 and 15. * @param[in] overflow_policy Overflow policy. Supported overflow policies: Wrap, Saturate * @param[in] rounding_policy Rounding policy. Supported rounding modes: to zero, to nearest even. - * * @return a status */ static Status validate(const ITensorInfo *input1, const ITensorInfo *input2, const ITensorInfo *output, float scale, ConvertPolicy overflow_policy, RoundingPolicy rounding_policy); - // Inherited methods overridden: + /** + * @brief Enqueue the OpenCL kernel to process the given window on the passed OpenCL command + * queue. + * @note The queue is *not* flushed by this method, and therefore the kernel will not have + * been executed by the time this method returns. + * @param[in] window Region on which to execute the kernel. (Must be a valid region of + * the window returned by window()). + * @param[in,out] queue Command queue on which to enqueue the kernel.@return N/A + * @return N/A + */ void run(const Window &window, cl::CommandQueue &queue) override; + + /** + * @brief The size of the border for that kernel + * @return The width in number of elements of the border. + */ BorderSize border_size() const override; private: |