From 4c30de056afe8680b42723b26a2241811715b989 Mon Sep 17 00:00:00 2001 From: Michael Tyler Date: Fri, 7 Jul 2023 12:01:32 +0100 Subject: Enable premultiplication for depthwise convolution with fp16 and quantized types Resolves: COMPMID-6337 Change-Id: I81542e51c9c0329f202ac8452f173b138e51a0f6 Signed-off-by: Michael Tyler Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/9883 Reviewed-by: Gunes Bayir Comments-Addressed: Arm Jenkins Tested-by: Arm Jenkins Benchmark: Arm Jenkins --- .../depthwise/kernels/a64_s8qs_nhwc_3x3_s1_output2x2_dot_depthfirst.hpp | 2 +- .../depthwise/kernels/a64_u8q_nhwc_3x3_s1_output2x2_dot_depthfirst.hpp | 2 +- .../depthwise/kernels/sve_s8q_nhwc_3x3_s1_output2x2_dot_depthfirst.hpp | 2 +- .../depthwise/kernels/sve_s8qs_nhwc_3x3_s1_output2x2_dot_depthfirst.hpp | 2 +- .../depthwise/kernels/sve_u8q_nhwc_3x3_s1_output2x2_dot_depthfirst.hpp | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) (limited to 'src/core/NEON/kernels/arm_conv/depthwise/kernels') diff --git a/src/core/NEON/kernels/arm_conv/depthwise/kernels/a64_s8qs_nhwc_3x3_s1_output2x2_dot_depthfirst.hpp b/src/core/NEON/kernels/arm_conv/depthwise/kernels/a64_s8qs_nhwc_3x3_s1_output2x2_dot_depthfirst.hpp index fc83aaf5d2..bd2941b3d6 100644 --- a/src/core/NEON/kernels/arm_conv/depthwise/kernels/a64_s8qs_nhwc_3x3_s1_output2x2_dot_depthfirst.hpp +++ b/src/core/NEON/kernels/arm_conv/depthwise/kernels/a64_s8qs_nhwc_3x3_s1_output2x2_dot_depthfirst.hpp @@ -64,7 +64,7 @@ class a64_s8qs_nhwc_3x3_s1_output2x2_dot_depthfirst : public DepthwiseDepthfirst ) const override { interleave_a64_s8q_3x3_dot::pack_parameters( - args.input_channels, buffer, reinterpret_cast(biases), + args.input_channels * args.channel_multiplier, buffer, reinterpret_cast(biases), reinterpret_cast(weights), qp, ld_weight_col, ld_weight_row ); } diff --git a/src/core/NEON/kernels/arm_conv/depthwise/kernels/a64_u8q_nhwc_3x3_s1_output2x2_dot_depthfirst.hpp b/src/core/NEON/kernels/arm_conv/depthwise/kernels/a64_u8q_nhwc_3x3_s1_output2x2_dot_depthfirst.hpp index bea97a54b6..ed24f8fa3c 100644 --- a/src/core/NEON/kernels/arm_conv/depthwise/kernels/a64_u8q_nhwc_3x3_s1_output2x2_dot_depthfirst.hpp +++ b/src/core/NEON/kernels/arm_conv/depthwise/kernels/a64_u8q_nhwc_3x3_s1_output2x2_dot_depthfirst.hpp @@ -64,7 +64,7 @@ class a64_u8q_nhwc_3x3_s1_output2x2_dot_depthfirst : public DepthwiseDepthfirstS ) const override { interleave_a64_u8q_3x3_dot::pack_parameters( - args.input_channels, buffer, reinterpret_cast(biases), + args.input_channels * args.channel_multiplier, buffer, reinterpret_cast(biases), reinterpret_cast(weights), qp, ld_weight_col, ld_weight_row ); } diff --git a/src/core/NEON/kernels/arm_conv/depthwise/kernels/sve_s8q_nhwc_3x3_s1_output2x2_dot_depthfirst.hpp b/src/core/NEON/kernels/arm_conv/depthwise/kernels/sve_s8q_nhwc_3x3_s1_output2x2_dot_depthfirst.hpp index 32ea009e8a..04cf0d4036 100644 --- a/src/core/NEON/kernels/arm_conv/depthwise/kernels/sve_s8q_nhwc_3x3_s1_output2x2_dot_depthfirst.hpp +++ b/src/core/NEON/kernels/arm_conv/depthwise/kernels/sve_s8q_nhwc_3x3_s1_output2x2_dot_depthfirst.hpp @@ -64,7 +64,7 @@ class sve_s8q_nhwc_3x3_s1_output2x2_dot_depthfirst : public DepthwiseDepthfirstS ) const override { interleave_sve_s8q_3x3_dot::pack_parameters( - args.input_channels, buffer, reinterpret_cast(biases), + args.input_channels * args.channel_multiplier, buffer, reinterpret_cast(biases), reinterpret_cast(weights), qp, ld_weight_col, ld_weight_row ); } diff --git a/src/core/NEON/kernels/arm_conv/depthwise/kernels/sve_s8qs_nhwc_3x3_s1_output2x2_dot_depthfirst.hpp b/src/core/NEON/kernels/arm_conv/depthwise/kernels/sve_s8qs_nhwc_3x3_s1_output2x2_dot_depthfirst.hpp index 1730574933..6799b10ed9 100644 --- a/src/core/NEON/kernels/arm_conv/depthwise/kernels/sve_s8qs_nhwc_3x3_s1_output2x2_dot_depthfirst.hpp +++ b/src/core/NEON/kernels/arm_conv/depthwise/kernels/sve_s8qs_nhwc_3x3_s1_output2x2_dot_depthfirst.hpp @@ -64,7 +64,7 @@ class sve_s8qs_nhwc_3x3_s1_output2x2_dot_depthfirst : public DepthwiseDepthfirst ) const override { interleave_sve_s8q_3x3_dot::pack_parameters( - args.input_channels, buffer, reinterpret_cast(biases), + args.input_channels * args.channel_multiplier, buffer, reinterpret_cast(biases), reinterpret_cast(weights), qp, ld_weight_col, ld_weight_row ); } diff --git a/src/core/NEON/kernels/arm_conv/depthwise/kernels/sve_u8q_nhwc_3x3_s1_output2x2_dot_depthfirst.hpp b/src/core/NEON/kernels/arm_conv/depthwise/kernels/sve_u8q_nhwc_3x3_s1_output2x2_dot_depthfirst.hpp index 9432cd7550..6b006e8d51 100644 --- a/src/core/NEON/kernels/arm_conv/depthwise/kernels/sve_u8q_nhwc_3x3_s1_output2x2_dot_depthfirst.hpp +++ b/src/core/NEON/kernels/arm_conv/depthwise/kernels/sve_u8q_nhwc_3x3_s1_output2x2_dot_depthfirst.hpp @@ -64,7 +64,7 @@ class sve_u8q_nhwc_3x3_s1_output2x2_dot_depthfirst : public DepthwiseDepthfirstS ) const override { interleave_sve_u8q_3x3_dot::pack_parameters( - args.input_channels, buffer, reinterpret_cast(biases), + args.input_channels * args.channel_multiplier, buffer, reinterpret_cast(biases), reinterpret_cast(weights), qp, ld_weight_col, ld_weight_row ); } -- cgit v1.2.1