27 #include "../std_transforms_fixed.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 a64_ffinterleaved_bf16fp32_mmla_8x12( ARGLIST );
41 class cls_a64_ffinterleaved_bf16fp32_mmla_8x12
45 typedef float result_type;
47 typedef void (*kern_type)( ARGLIST );
50 static constexpr
unsigned int out_height()
55 static unsigned int out_width()
59 static unsigned int stripe_width()
69 static constexpr
unsigned int k_unroll()
75 StdTransformsFixed<operand_type, result_type, 8, 12, 4> transforms = {};
76 StdTransformsFixed<operand_type, result_type, 8, 12, 4, true> transforms_quantized = {};
78 static inline PerformanceParameters get_performance_parameters(
const CPUInfo *
ci)
81 if (std::is_same<T, bfloat16>::value) {
84 return { 31.62, 9.07, 3.23 };
89 if (std::is_same<T, float>::value) {
92 return { 45.25, 4.29, 4.80 };
94 return { 29.85, 2.60, 5.49 };
102 kern_type kernel=a64_ffinterleaved_bf16fp32_mmla_8x12;
103 cls_a64_ffinterleaved_bf16fp32_mmla_8x12(
const CPUInfo *)
111 #endif // __aarch64__