Fork me on GitHub

src/arraymancer/laser/primitives/matrix_multiplication/gemm

  Source Edit

Procs

proc gebp_mkernel[T; ukernel: static MicroKernel](mc, nc, kc: int; alpha: T;
    packA, packB: ptr UncheckedArray[T]; beta: T; mcncC: MatrixView[T])
Macro kernel, multiply:   Source Edit
proc gemm_strided[T: SomeNumber and not (uint32 | uint64 | uint | int)](
    M, N, K: int; alpha: T; A: ptr T; rowStrideA, colStrideA: int; B: ptr T;
    rowStrideB, colStrideB: int; beta: T; C: ptr T; rowStrideC, colStrideC: int)
  Source Edit
proc gemm_strided[T: uint32 | uint64 | uint | int](M, N, K: int; alpha: T;
    A: ptr T; rowStrideA, colStrideA: int; B: ptr T;
    rowStrideB, colStrideB: int; beta: T; C: ptr T; rowStrideC, colStrideC: int)
Overload to avoid bloating the code size with generics monomorphization   Source Edit
Arraymancer Technical reference Tutorial Spellbook (How-To's) Under the hood