41 template<
typename TOperand,
typename TResult,
unsigned int height_vectors,
unsigned int w
idth_vectors,
unsigned int block=1,
bool integrate_sums=false>
45 template<
typename TIn>
46 void PrepareA(TOperand *out,
const TIn *in,
const int stride,
const int y0,
47 const int ymax,
const int k0,
const int kmax, int32_t row_sum_multiplier) {
48 Interleave<height_vectors, block, VLType::SME>(out, in, stride, y0, ymax, k0, kmax, integrate_sums, row_sum_multiplier);
51 template<
typename TIn>
52 void PrepareA_indirect(TOperand *out,
const TIn *
const *
const *ptr,
size_t stringlen,
size_t rounded_stringlen,
const int y0,
53 const int ymax,
const int k0,
const int kmax, int32_t row_sum_multiplier) {
54 IndirectInterleave<height_vectors, block, VLType::SME>(out, ptr, stringlen, rounded_stringlen, y0, ymax, k0, kmax, integrate_sums, row_sum_multiplier);
57 template<
typename TIn>
59 const int y0,
const int ymax,
const int k0,
const int kmax, int32_t row_sum_multiplier) {
60 ConvolutionInterleave<height_vectors, block, VLType::SME>(out, ptr, stride, conv, rounded_stringlen, y0, ymax, k0, kmax, integrate_sums, row_sum_multiplier);
67 template<
typename TIn>
68 void PrepareB(TOperand *out,
const TIn *in,
const int stride,
const int x0,
69 const int xmax,
const int k0,
const int kmax,
bool transposed) {
71 Transform<width_vectors, block, true, VLType::SME>(out, in, stride, x0, xmax, k0, kmax);
74 template<
typename TOut>
75 void Merge(TOut *,
const TResult *,
int,
int,
int,
int,
int,
const TOut *,
const Activation,
bool) {