aboutsummaryrefslogtreecommitdiff
path: root/arm_compute
diff options
context:
space:
mode:
authorSheri Zhang <sheri.zhang@arm.com>2020-06-25 20:01:00 +0100
committerSheri Zhang <sheri.zhang@arm.com>2020-07-02 14:22:40 +0000
commitfcf6f4e5a94ff8a16efe3171bf36ca69840cd3c5 (patch)
treeacc3535c231d4fa124317541ba0e6b4ad8c4a365 /arm_compute
parent6b6a16faa9375365d444b2a3998381b22cd6cd5b (diff)
downloadComputeLibrary-fcf6f4e5a94ff8a16efe3171bf36ca69840cd3c5.tar.gz
COMPMID-3477: Remove padding from NEPixelWiseMultiplicationKernel
Remove padding from all NEPixelWiseMultiplicationKernel functions. Add test case for U8_U8_S16(input1,input2,output). Add reference code for U8_U8_S16(input1,input2,output). Remove window shrink test from NormalizationLayer. Signed-off-by: Sheri Zhang <sheri.zhang@arm.com> Change-Id: I28d89790c5527a42f918814a0ee3d6ec4c273532 Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/3468 Comments-Addressed: Arm Jenkins <bsgcomp@arm.com> Tested-by: Arm Jenkins <bsgcomp@arm.com> Reviewed-by: Michele Di Giorgio <michele.digiorgio@arm.com>
Diffstat (limited to 'arm_compute')
-rw-r--r--arm_compute/core/NEON/kernels/NEPixelWiseMultiplicationKernel.h39
-rw-r--r--arm_compute/runtime/NEON/functions/NEPixelWiseMultiplication.h3
2 files changed, 20 insertions, 22 deletions
diff --git a/arm_compute/core/NEON/kernels/NEPixelWiseMultiplicationKernel.h b/arm_compute/core/NEON/kernels/NEPixelWiseMultiplicationKernel.h
index 1a9dd6be2e..3cb0874a2f 100644
--- a/arm_compute/core/NEON/kernels/NEPixelWiseMultiplicationKernel.h
+++ b/arm_compute/core/NEON/kernels/NEPixelWiseMultiplicationKernel.h
@@ -100,38 +100,36 @@ public:
// Inherited methods overridden:
void run(const Window &window, const ThreadInfo &info) override;
- BorderSize border_size() const override;
private:
/** Common signature for all the specialised multiplication functions with integer scaling factor
*
- * @param[in] input1_ptr Pointer to the first input tensor.
- * @param[in] input2_ptr Pointer to the second input tensor.
- * @param[out] output_ptr Pointer to the output tensor.
- * @param[in] scale Integer scale factor.
+ * @param[in] in1 Input1 tensor object.
+ * @param[in] in2 Input2 tensor object.
+ * @param[out] out Output tensor object.
+ * @param[in] window Region on which to execute the kernel
+ * @param[in] scale Integer scale factor.
*/
- using MulFunctionInt = void(const void *__restrict input1_ptr, const void *__restrict input2_ptr, void *__restrict output_ptr, int scale);
+ using MulFunctionInt = void(const ITensor *in1, const ITensor *in2, ITensor *out, const Window &window, int scale);
/** Common signature for all the specialised multiplication functions with float scaling factor
*
- * @param[in] input1_ptr Pointer to the first input tensor.
- * @param[in] input2_ptr Pointer to the second input tensor.
- * @param[out] output_ptr Pointer to the output tensor.
- * @param[in] scale Float scale factor.
+ * @param[in] in1 Input1 tensor object.
+ * @param[in] in2 Input2 tensor object.
+ * @param[out] out Output tensor object.
+ * @param[in] window Region on which to execute the kernel
+ * @param[in] scale Float scale factor.
*/
- using MulFunctionFloat = void(const void *__restrict input1_ptr, const void *__restrict input2_ptr, void *__restrict output_ptr, float scale);
+ using MulFunctionFloat = void(const ITensor *in1, const ITensor *in2, ITensor *out, const Window &window, float scale);
/** Common signature for all the specialised QASYMM8 multiplication functions with float scaling factor
*
- * @param[in] input1_ptr Pointer to the first input tensor.
- * @param[in] input2_ptr Pointer to the second input tensor.
- * @param[out] output_ptr Pointer to the output tensor.
- * @param[in] scale Float scale factor.
- * @param[in] input1_qua_info Quantization Info of tensor input1.
- * @param[in] input2_qua_info Quantization Info of tensor input2.
- * @param[in] output_qua_info Quantization Info of tensor output.
+ * @param[in] in1 Input1 tensor object.
+ * @param[in] in2 Input2 tensor object.
+ * @param[out] out Output tensor object.
+ * @param[in] window Region on which to execute the kernel
+ * @param[in] scale Float scale factor.
*
*/
- using MulFunctionQuantized = void(const void *__restrict input1_ptr, const void *__restrict input2_ptr, void *__restrict output_ptr, float scale,
- const UniformQuantizationInfo &input1_qua_info, const UniformQuantizationInfo &input2_qua_info, const UniformQuantizationInfo &output_qua_info);
+ using MulFunctionQuantized = void(const ITensor *in1, const ITensor *in2, ITensor *out, const Window &window, float scale);
MulFunctionFloat *_func_float;
MulFunctionInt *_func_int;
@@ -143,7 +141,6 @@ private:
ITensor *_output;
float _scale;
int _scale_exponent;
- bool _run_optimized_qasymm8;
};
/** Interface for the complex pixelwise multiplication kernel. */
diff --git a/arm_compute/runtime/NEON/functions/NEPixelWiseMultiplication.h b/arm_compute/runtime/NEON/functions/NEPixelWiseMultiplication.h
index 2b31032931..d84dff2c13 100644
--- a/arm_compute/runtime/NEON/functions/NEPixelWiseMultiplication.h
+++ b/arm_compute/runtime/NEON/functions/NEPixelWiseMultiplication.h
@@ -26,13 +26,14 @@
#include "arm_compute/core/Types.h"
#include "arm_compute/runtime/NEON/INESimpleFunction.h"
+#include "arm_compute/runtime/NEON/INESimpleFunctionNoBorder.h"
namespace arm_compute
{
class ITensor;
/** Basic function to run @ref NEPixelWiseMultiplicationKernel */
-class NEPixelWiseMultiplication : public INESimpleFunction
+class NEPixelWiseMultiplication : public INESimpleFunctionNoBorder
{
public:
/** Initialise the kernel's inputs, output and convertion policy.