Skip to main content

TileMatrixMultiply

Trait TileMatrixMultiply 

Source
pub trait TileMatrixMultiply<TA, TB, TC, Backend, Arch, const M: usize, const N: usize, const K: usize> {
    // Required method
    unsafe fn tile_matmul(
        c: *mut TC,
        c_stride: usize,
        a: *const TA,
        a_stride: usize,
        b: *const TB,
        b_stride: usize,
    );
}
Expand description

Trait mediating zero-overhead matrix multiplication on 2D tiles.

Implementations are fully monomorphized to optimize layout, vectorization, and register pressure.

Required Methods§

Source

unsafe fn tile_matmul( c: *mut TC, c_stride: usize, a: *const TA, a_stride: usize, b: *const TB, b_stride: usize, )

Performs tile matrix multiplication: C += A * B

§Safety
  • Pointers a, b, and c must be valid for reads/writes of size Ma_stride, Kb_stride, M*c_stride.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§

Source§

impl TileMatrixMultiply<Bf16, Bf16, F32, AmxBf16, AmxBf16, 16, 16, 32> for AmxBf16

Source§

impl TileMatrixMultiply<Bf16, Bf16, F32, Avx512, Avx512, 16, 16, 32> for Avx512

Source§

impl TileMatrixMultiply<I8, I8, I32, AmxInt8, AmxInt8, 16, 16, 64> for AmxInt8

Source§

impl TileMatrixMultiply<I8, I8, I32, Avx512, Avx512, 16, 16, 64> for Avx512

Source§

impl TileMatrixMultiply<I8, I8, I32, AvxVnni, AvxVnni, 16, 16, 64> for AvxVnni

Source§

impl TileMatrixMultiply<i8, i8, i32, AmxInt8, AmxInt8, 16, 16, 64> for AmxInt8

Source§

impl TileMatrixMultiply<i8, i8, i32, Avx512, Avx512, 16, 16, 64> for Avx512

Source§

impl TileMatrixMultiply<i8, i8, i32, AvxVnni, AvxVnni, 16, 16, 64> for AvxVnni

Source§

impl<Backend, Arch, const M: usize, const N: usize, const K: usize> TileMatrixMultiply<Bf16, Bf16, F32, Backend, Arch, M, N, K> for Scalar

Source§

impl<Backend, Arch, const M: usize, const N: usize, const K: usize> TileMatrixMultiply<I8, I8, I32, Backend, Arch, M, N, K> for Scalar

Source§

impl<Backend, Arch, const M: usize, const N: usize, const K: usize> TileMatrixMultiply<i8, i8, i32, Backend, Arch, M, N, K> for Scalar