Skip to main content

gemm_i8

Function gemm_i8 

Source
pub fn gemm_i8(
    alpha: i32,
    a: MatRef<'_, i8>,
    b: MatRef<'_, i8>,
    beta: i32,
    c: MatMut<'_, i32>,
    par: Parallelism,
)
Available on crate feature int8 only.
Expand description

Integer GEMM: C <- alpha*A*B + beta*C with i8 inputs accumulated into an i32 output (alpha, beta, C are i32). Wraps on overflow, the standard integer-GEMM convention. Uses the thread-local workspace pool

A separate entry point from gemm because the input/output types differ (i8 vs i32), which the homogeneous gemm<T> surface cannot express

ยงPanics

Same shape, bounds, and aliasing conditions as gemm apply: A.cols == B.rows, A.rows == C.rows, B.cols == C.cols. Every view must stay in bounds, and C must address each element uniquely without overlapping A or B. For negative strides or raw pointers use gemm_i8_unchecked (gemm_unchecked is homogeneous and cannot serve i8 -> i32)