Contents

namespace

SushiBLAS::Kernels::Reference

Declared in
include/SushiBLAS/kernels/reference/blas/level3/gemm.hpp

Functions

template <typename T, typename Epilogue = GemmIdentityEpilogue>
void gemm(Core::Layout layout, bool transA, bool transB, int64_t m, int64_t n, int64_t k, T alpha, const T *a, int64_t lda, const T *b, int64_t ldb, T beta, T *c, int64_t ldc, Epilogue epilogue=Epilogue{})

Computes GEMM in pure C++ for row-major and column-major operands.

Template parameters

Epilogue

Functor applied per element before the store, as (value, row, col).

Parameters

beta

Exactly zero skips reading C.

See also

include/SushiBLAS/kernels/README.md

template <typename T, typename Epilogue = GemmIdentityEpilogue>
void gemm(Core::Layout layout, bool transA, bool transB, int64_t m, int64_t n, int64_t k, T alpha, const T *a, int64_t lda, int64_t str_a, const T *b, int64_t ldb, int64_t str_b, T beta, T *c, int64_t ldc, int64_t str_c, int64_t batch_size, Epilogue epilogue=Epilogue{})

Computes a batch of GEMMs with the reference kernel.

Parameters

beta

Exactly zero skips reading C.

str_a

Element stride between consecutive A matrices; str_b and str_c likewise.

epilogue

Receives the row and column within one matrix of the batch.

See also

include/SushiBLAS/kernels/README.md