[][src]Function onednn_sys::dnnl_sgemm

pub unsafe extern "C" fn dnnl_sgemm(
    transa: c_char,
    transb: c_char,
    M: dnnl_dim_t,
    N: dnnl_dim_t,
    K: dnnl_dim_t,
    alpha: f32,
    A: *const f32,
    lda: dnnl_dim_t,
    B: *const f32,
    ldb: dnnl_dim_t,
    beta: f32,
    C: *mut f32,
    ldc: dnnl_dim_t
) -> dnnl_status_t

Performs single-precision matrix-matrix multiply.

The operation is defined as:

C := alpha * op( A ) * op( B ) + beta * C

where

  • op( X ) = X or op( X ) = X**T,
  • alpha and beta are scalars, and
  • A, B, and C are matrices:
    • op( A ) is an MxK matrix,
    • op( B ) is an KxN matrix,
    • C is an MxN matrix.

The matrices are assumed to be stored in row-major order (the elements in each of the matrix rows are contiguous in memory).

@note This API does not support XERBLA. Instead, unlike the standard BLAS functions, this one returns a dnnl_status_t value to allow error handling.

@param transa Transposition flag for matrix A: 'N' or 'n' means A is not transposed, and 'T' or 't' means that A is transposed. @param transb Transposition flag for matrix B: 'N' or 'n' means B is not transposed, and 'T' or 't' means that B is transposed. @param M The M dimension. @param N The N dimension. @param K The K dimension. @param alpha The alpha parameter that is used to scale the product of matrices A and B. @param A A pointer to the A matrix data. @param lda The leading dimension for the matrix A. @param B A pointer to the B matrix data. @param ldb The leading dimension for the matrix B. @param beta The beta parameter that is used to scale the matrix C. @param C A pointer to the C matrix data. @param ldc The leading dimension for the matrix C. @returns #dnnl_success/#dnnl::status::success on success and a status describing the error otherwise.