25 #ifdef ARM_COMPUTE_ENABLE_SVE
27 #include "../std_transforms_sve.hpp"
28 #include "../bfloat.hpp"
29 #include "../kernel_weight_format.hpp"
30 #include "../performance_parameters.hpp"
33 const bfloat16 *, const bfloat16 *, size_t, \
34 float *, int, size_t, int
39 void sve_ffinterleaved_bf16fp32_mmla_8x3VL( ARGLIST );
41 class cls_sve_ffinterleaved_bf16fp32_mmla_8x3VL
45 typedef float result_type;
47 typedef void (*kern_type)( ARGLIST );
50 static constexpr
unsigned int out_height()
55 static unsigned int out_width()
57 return get_vector_length<float>() * 3;
59 static unsigned int stripe_width()
61 return get_vector_length<float>();
69 static constexpr
unsigned int k_unroll()
75 StdTransformsSVE<operand_type, result_type, 8, 6, 4, 2> transforms = {};
76 StdTransformsSVE<operand_type, result_type, 8, 6, 4, 2, true> transforms_quantized = {};
78 static inline PerformanceParameters get_performance_parameters(
const CPUInfo *
ci)
81 if (std::is_same<T, bfloat16>::value) {
84 return { 39.90, 8.55, 4.42 };
89 if (std::is_same<T, float>::value) {
92 return { 53.48, 4.23, 6.53 };
94 return { 29.07, 2.76, 5.39 };
102 kern_type kernel=sve_ffinterleaved_bf16fp32_mmla_8x3VL;
103 cls_sve_ffinterleaved_bf16fp32_mmla_8x3VL(
const CPUInfo *)
111 #endif // ARM_COMPUTE_ENABLE_SVE