aboutsummaryrefslogtreecommitdiff
path: root/src/core/NEON/kernels/arm_conv/depthwise/depthwise_strategies_common.hpp
diff options
context:
space:
mode:
authorMichael Tyler <michael.tyler@arm.com>2023-06-30 11:26:05 +0100
committermichael.tyler <michael.tyler@arm.com>2023-07-04 14:34:58 +0000
commit8deee9bd9b9137c256c23b86be11dbf0466f3aa8 (patch)
treeac80b3bdd992552b65e306b77f061484da0591ca /src/core/NEON/kernels/arm_conv/depthwise/depthwise_strategies_common.hpp
parent19844f605f5e5b71d05164711dee13f8652adafe (diff)
downloadComputeLibrary-8deee9bd9b9137c256c23b86be11dbf0466f3aa8.tar.gz
Depthwise channel pre-multiplication
Resolves: COMPMID-6337 Change-Id: Ie9097b3f56e8071426c621386a5988bd7f7e8ef2 Signed-off-by: Michael Tyler <michael.tyler@arm.com> Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/9852 Tested-by: Arm Jenkins <bsgcomp@arm.com> Reviewed-by: Viet-Hoa Do <viet-hoa.do@arm.com> Benchmark: Arm Jenkins <bsgcomp@arm.com>
Diffstat (limited to 'src/core/NEON/kernels/arm_conv/depthwise/depthwise_strategies_common.hpp')
-rw-r--r--src/core/NEON/kernels/arm_conv/depthwise/depthwise_strategies_common.hpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/core/NEON/kernels/arm_conv/depthwise/depthwise_strategies_common.hpp b/src/core/NEON/kernels/arm_conv/depthwise/depthwise_strategies_common.hpp
index 39f60c362b..19cf26dd2f 100644
--- a/src/core/NEON/kernels/arm_conv/depthwise/depthwise_strategies_common.hpp
+++ b/src/core/NEON/kernels/arm_conv/depthwise/depthwise_strategies_common.hpp
@@ -49,6 +49,8 @@ class DepthfirstStrategyUntyped : public IDepthfirstStrategy
virtual unsigned int get_n_output_points() const;
virtual unsigned int get_n_kernel_points() const;
+ virtual bool uses_premultiply() const;
+
// Get the number of VLs used in the accumulator, this defaults to 1.
virtual unsigned int get_accumulator_depth_vl() const;
@@ -65,7 +67,7 @@ class DepthfirstStrategy : public DepthfirstStrategyUntyped
{
interleaves::PackingArguments packing_args(
this->get_kernel_rows(), this->get_kernel_cols(), sizeof(TWeight),
- true, sizeof(TAccum),
+ true, sizeof(TAccum), this->uses_premultiply(),
this->get_vl_type(), sizeof(TAccum), this->get_accumulator_depth_vl(),
[this] (unsigned int idx, unsigned int &x, unsigned int &y) -> bool
{ return this->get_kernel_packing_point(idx, x, y); }
@@ -81,7 +83,7 @@ class DepthfirstStrategy : public DepthfirstStrategyUntyped
{
interleaves::PackingArguments packing_args(
this->get_kernel_rows(), this->get_kernel_cols(), sizeof(TWeight),
- true, sizeof(TAccum),
+ true, sizeof(TAccum), this->uses_premultiply(),
this->get_vl_type(), sizeof(TAccum), this->get_accumulator_depth_vl(),
[this] (unsigned int idx, unsigned int &x, unsigned int &y) -> bool
{ return this->get_kernel_packing_point(idx, x, y); }