6#include <batmat/micro-kernels/gemm/export.h>
32BATMAT_LINALG_GEMM_EXPORT
void
37template <
class T,
class Abi>
53#ifndef BATMAT_LINALG_GEMM_NO_DECLARE_LUT
consteval auto make_2d_lut(F f)
Returns a 2D array of the form:
constexpr auto gemm_copy_lut
const constinit decltype(detail::gemm_copy_lut< T, Abi, Conf, OA, OB, OC, OD >) gemm_copy_lut
constexpr index_t RowsReg
Register block size of the matrix-matrix multiplication micro-kernels.
void gemm_copy_register(view< const T, Abi, OA > A, view< const T, Abi, OB > B, std::optional< view< const T, Abi, OC > > C, view< T, Abi, OD > D) noexcept
Generalized matrix multiplication D = C ± A⁽ᵀ⁾ B⁽ᵀ⁾. Using register blocking.
void gemm_copy_microkernel(uview< const T, Abi, OA > A, uview< const T, Abi, OB > B, std::optional< uview< const T, Abi, OC > > C, uview< T, Abi, OD > D, index_t k) noexcept
Generalized matrix multiplication D = C ± A⁽ᵀ⁾ B⁽ᵀ⁾. Single register block.
constexpr index_t ColsReg
simd_view_types< std::remove_const_t< T >, Abi >::template view< T, Order > view
std::integral_constant< index_t, I > index_constant