#include <batmat/linalg/structure.hpp>
#include <batmat/linalg/uview.hpp>
#include <batmat/micro-kernels/gemv/export.h>
#include <batmat/platform/platform.hpp>
#include <optional>
Go to the source code of this file.
|
| template<class T, class Abi, KernelConfig Conf, index_t RowsReg, StorageOrder OA> |
| void | batmat::linalg::micro_kernels::gemv::gemv_copy_microkernel (const uview< const T, Abi, OA > A, const uview< const T, Abi, StorageOrder::ColMajor > B, const std::optional< uview< const T, Abi, StorageOrder::ColMajor > > C, const uview< T, Abi, StorageOrder::ColMajor > D, const index_t k) noexcept |
| | Generalized matrix-vector multiplication d = c ± A⁽ᵀ⁾ b. Single register block.
|
| template<class T, class Abi, KernelConfig Conf, StorageOrder OA> |
| void | batmat::linalg::micro_kernels::gemv::gemv_copy_register (const view< const T, Abi, OA > A, const view< const T, Abi > B, const std::optional< view< const T, Abi > > C, const view< T, Abi > D) noexcept |
| | Generalized matrix multiplication d = c ± A⁽ᵀ⁾ b. Using register blocking.
|
◆ batmat::linalg::micro_kernels::gemv::KernelConfig
| struct batmat::linalg::micro_kernels::gemv::KernelConfig |
| Class Members |
|
bool |
negate = false |
|
|
int |
shift_A = 0 |
|
|
int |
rotate_B = 0 |
|
|
int |
rotate_C = 0 |
|
|
int |
rotate_D = rotate_C |
|
|
int |
mask_D = rotate_D |
|