Refactor AVGPOOL micro-kernel parameters
- Rename f32_avgpool_params to f32_scaleminmax_params
- Rename multiplier->scale, output_min->min, output_max->max
PiperOrigin-RevId: 305611410
diff --git a/src/xnnpack/avgpool.h b/src/xnnpack/avgpool.h
index d1a1e87..4ef2b7f 100644
--- a/src/xnnpack/avgpool.h
+++ b/src/xnnpack/avgpool.h
@@ -31,7 +31,7 @@
float* output, \
size_t input_increment, \
size_t output_increment, \
- const union xnn_f32_avgpool_params* params);
+ const union xnn_f32_scaleminmax_params* params);
DECLARE_F32_AVGPOOL_MULTIPASS_UKERNEL_FUNCTION(xnn_f32_avgpool_ukernel_9p8x__neon_c4)
DECLARE_F32_AVGPOOL_MULTIPASS_UKERNEL_FUNCTION(xnn_f32_avgpool_ukernel_9p8x__sse_c4)
@@ -51,7 +51,7 @@
float* output, \
size_t input_increment, \
size_t output_increment, \
- const union xnn_f32_avgpool_params* params);
+ const union xnn_f32_scaleminmax_params* params);
DECLARE_F32_AVGPOOL_UNIPASS_UKERNEL_FUNCTION(xnn_f32_avgpool_ukernel_9x__neon_c4)
DECLARE_F32_AVGPOOL_UNIPASS_UKERNEL_FUNCTION(xnn_f32_avgpool_ukernel_9x__sse_c4)
diff --git a/src/xnnpack/compute.h b/src/xnnpack/compute.h
index ad0747f..45586fb 100644
--- a/src/xnnpack/compute.h
+++ b/src/xnnpack/compute.h
@@ -488,7 +488,7 @@
size_t output_increment;
union {
union xnn_q8_avgpool_params q8;
- union xnn_f32_avgpool_params f32;
+ union xnn_f32_scaleminmax_params f32;
} params;
union {
xnn_avgpool_up_ukernel_function unipass_ukernel;
@@ -557,7 +557,7 @@
size_t output_batch_stride;
union {
union xnn_q8_avgpool_params q8;
- union xnn_f32_avgpool_params f32;
+ union xnn_f32_scaleminmax_params f32;
} params;
union {
xnn_gavgpool_up_ukernel_function unipass_ukernel;
diff --git a/src/xnnpack/gavgpool.h b/src/xnnpack/gavgpool.h
index e50d7bb..2520d43 100644
--- a/src/xnnpack/gavgpool.h
+++ b/src/xnnpack/gavgpool.h
@@ -28,7 +28,7 @@
const float* zero, \
float* buffer, \
float* output, \
- const union xnn_f32_avgpool_params* params);
+ const union xnn_f32_scaleminmax_params* params);
DECLARE_F32_GAVGPOOL_MULTIPASS_UKERNEL_FUNCTION(xnn_f32_gavgpool_ukernel_7p7x__neon_c4)
DECLARE_F32_GAVGPOOL_MULTIPASS_UKERNEL_FUNCTION(xnn_f32_gavgpool_ukernel_7p7x__sse_c4)
@@ -45,7 +45,7 @@
size_t input_stride, \
const float* zero, \
float* output, \
- const union xnn_f32_avgpool_params* params);
+ const union xnn_f32_scaleminmax_params* params);
DECLARE_F32_GAVGPOOL_UNIPASS_UKERNEL_FUNCTION(xnn_f32_gavgpool_ukernel_7x__neon_c4)
DECLARE_F32_GAVGPOOL_UNIPASS_UKERNEL_FUNCTION(xnn_f32_gavgpool_ukernel_7x__sse_c4)
diff --git a/src/xnnpack/operator.h b/src/xnnpack/operator.h
index 15f8efd..3ca786a 100644
--- a/src/xnnpack/operator.h
+++ b/src/xnnpack/operator.h
@@ -243,10 +243,10 @@
// Parameters for Global Average Pooling in CHW layout
union xnn_f32_gavgpool_params f32_gavgpool_params;
union xnn_f32_hswish_params f32_hswish_params;
- // Pixelwise Average Pooling normally use f32_minmax_params, but also initialize f32_avgpool_params in case it needs
- // to switch to Global Average Pooling operation.
+ // Pixelwise Average Pooling normally use f32_minmax_params, but also initialize
+ // f32_scaleminmax_params in case it needs to switch to Global Average Pooling operation.
struct {
- union xnn_f32_avgpool_params f32_avgpool_params;
+ union xnn_f32_scaleminmax_params f32_scaleminmax_params;
union xnn_f32_minmax_params f32_minmax_params;
};
union xnn_f32_spchw_params f32_spchw_params;
diff --git a/src/xnnpack/params-init.h b/src/xnnpack/params-init.h
index e4086c5..0601618 100644
--- a/src/xnnpack/params-init.h
+++ b/src/xnnpack/params-init.h
@@ -248,35 +248,35 @@
return params;
}
-static inline void xnn_update_f32_avgpool_params(
- union xnn_f32_avgpool_params* params,
- float multiplier)
+static inline void xnn_update_f32_scaleminmax_params(
+ union xnn_f32_scaleminmax_params* params,
+ float scale)
{
#if XNN_ARCH_X86 || XNN_ARCH_X86_64
for (uint32_t i = 0; i < 4; i++) {
- params->sse2.multiplier[i] = multiplier;
+ params->sse2.scale[i] = scale;
}
#else
- params->scalar.multiplier = multiplier;
+ params->scalar.scale = scale;
#endif
}
-static inline union xnn_f32_avgpool_params xnn_init_f32_avgpool_params(
- float multiplier,
- float output_min,
- float output_max)
+static inline union xnn_f32_scaleminmax_params xnn_init_f32_scaleminmax_params(
+ float scale,
+ float min,
+ float max)
{
- union xnn_f32_avgpool_params params;
+ union xnn_f32_scaleminmax_params params;
#if XNN_ARCH_X86 || XNN_ARCH_X86_64
for (uint32_t i = 0; i < 4; i++) {
- params.sse2.multiplier[i] = multiplier;
- params.sse2.output_min[i] = output_min;
- params.sse2.output_max[i] = output_max;
+ params.sse2.scale[i] = scale;
+ params.sse2.min[i] = min;
+ params.sse2.max[i] = max;
}
#else
- params.scalar.multiplier = multiplier;
- params.scalar.output_min = output_min;
- params.scalar.output_max = output_max;
+ params.scalar.scale = scale;
+ params.scalar.min = min;
+ params.scalar.max = max;
#endif
return params;
}
@@ -346,15 +346,15 @@
#endif
}
-static inline union xnn_f32_avgpool_params xnn_init_scalar_f32_avgpool_params(
- float multiplier,
- float output_min,
- float output_max)
+static inline union xnn_f32_scaleminmax_params xnn_init_scalar_f32_scaleminmax_params(
+ float scale,
+ float min,
+ float max)
{
- union xnn_f32_avgpool_params params;
- params.scalar.multiplier = multiplier;
- params.scalar.output_min = output_min;
- params.scalar.output_max = output_max;
+ union xnn_f32_scaleminmax_params params;
+ params.scalar.scale = scale;
+ params.scalar.min = min;
+ params.scalar.max = max;
return params;
}
diff --git a/src/xnnpack/params.h b/src/xnnpack/params.h
index 609b8a8..5ee1652 100644
--- a/src/xnnpack/params.h
+++ b/src/xnnpack/params.h
@@ -78,26 +78,19 @@
#endif // XNN_ARCH_X86 || XNN_ARCH_X86_64
};
-union xnn_f32_avgpool_params {
+union xnn_f32_scaleminmax_params {
struct {
- float multiplier;
- float output_min;
- float output_max;
+ float scale;
+ float min;
+ float max;
} scalar;
#if XNN_ARCH_X86 || XNN_ARCH_X86_64
struct {
- XNN_ALIGN(16) float multiplier[4];
- XNN_ALIGN(16) float output_min[4];
- XNN_ALIGN(16) float output_max[4];
+ XNN_ALIGN(16) float scale[4];
+ XNN_ALIGN(16) float min[4];
+ XNN_ALIGN(16) float max[4];
} sse2;
#endif // XNN_ARCH_X86 || XNN_ARCH_X86_64
-#if XNN_ARCH_ARM || XNN_ARCH_ARM64
- struct {
- XNN_ALIGN(16) float multiplier;
- XNN_ALIGN(16) float output_min;
- XNN_ALIGN(16) float output_max;
- } neon;
-#endif // XNN_ARCH_ARM || XNN_ARCH_ARM64
};
union xnn_f32_gavgpool_params {
@@ -761,7 +754,7 @@
size_t input_stride,
const float* zero,
float* output,
- const union xnn_f32_avgpool_params* params);
+ const union xnn_f32_scaleminmax_params* params);
typedef void (*xnn_q8_gavgpool_up_ukernel_function)(
size_t rows,
@@ -790,7 +783,7 @@
const float* zero,
float* buffer,
float* output,
- const union xnn_f32_avgpool_params* params);
+ const union xnn_f32_scaleminmax_params* params);
typedef void (*xnn_q8_gavgpool_mp_ukernel_function)(
size_t rows,
@@ -838,7 +831,7 @@
float* output,
size_t input_increment,
size_t output_increment,
- const union xnn_f32_avgpool_params* params);
+ const union xnn_f32_scaleminmax_params* params);
typedef void (*xnn_q8_avgpool_up_ukernel_function)(
size_t output_pixels,
@@ -876,7 +869,7 @@
float* output,
size_t input_increment,
size_t output_increment,
- const union xnn_f32_avgpool_params* params);
+ const union xnn_f32_scaleminmax_params* params);
typedef void (*xnn_q8_avgpool_mp_ukernel_function)(
size_t output_pixels,