31 #if defined(ARM_COMPUTE_ENABLE_SME2)
36 void sme2_fp32_nhwc_3x3_s2_output2x2_mla_depthfirst_indirect_impl(
const float *
const *
const input_ptrs,
float *
const *
const outptrs,
const void *params,
unsigned int n_channels,
const float activation_min,
const float activation_max);
37 void sme2_fp32_nhwc_3x3_s2_output2x2_mla_depthfirst_direct_impl(
const unsigned int n_tile_rows,
const unsigned int n_tile_cols,
const float *inptr, int64_t ld_input_row, int64_t ld_input_col,
float *outptr, int64_t ld_output_row, int64_t ld_output_col,
const void *params,
unsigned int n_channels,
const float activation_min,
const float activation_max);
39 class sme2_fp32_nhwc_3x3_s2_output2x2_mla_depthfirst :
public DepthwiseDepthfirstStrategy<float, float, float, float>
42 using Parent = DepthwiseDepthfirstStrategy<float, float, float, float>;
43 Parent::IndirectKernelType m_indirect_kernel = sme2_fp32_nhwc_3x3_s2_output2x2_mla_depthfirst_indirect_impl;
44 Parent::DirectKernelType m_direct_kernel = sme2_fp32_nhwc_3x3_s2_output2x2_mla_depthfirst_direct_impl;
47 using return_type = float;
50 constexpr
static unsigned int kernel_rows = 3;
51 constexpr
static unsigned int kernel_cols = 3;
53 constexpr
static unsigned int stride_rows = 2;
54 constexpr
static unsigned int stride_cols = 2;
56 constexpr
static unsigned int output_rows = 2;
57 constexpr
static unsigned int output_cols = 2;
59 sme2_fp32_nhwc_3x3_s2_output2x2_mla_depthfirst(
const CPUInfo *)
60 : Parent(output_rows, output_cols, kernel_rows, kernel_cols, stride_rows, stride_cols) {}
64 Parent::IndirectKernelType get_indirect_kernel()
const override {
return m_indirect_kernel; }
65 Parent::DirectKernelType get_direct_kernel()
const override {
return m_direct_kernel; }
71 #endif // defined(ARM_COMPUTE_ENABLE_SME2)