gemm (General Matrix Multiply)
File:
/src/linalg.hppLines 838–866 /**
* @brief GEMM for 1 byte types.
*
* @tparam AlphaType for the scalar alpha
* @tparam OCMShapeA Type for the matrix A (In OCM)
* @tparam OCMShapeB Type for the matrix B (In OCM)
* @tparam BetaType Type for the scalar beta
* @tparam OCMShapeC Type for the matrix C (In OCM)
* @param alpha the scalar alpha.
* @param matA the first matrix, A.
* @param matB the second matrix, B.
* @param beta the scalar beta.
* @param matC matrix C.
* @param matOut output matrix.
*
*/
template <typename AlphaType,
typename OCMShapeA,
typename OCMShapeB,
typename BetaType,
typename OCMShapeC,
isOcmTensor<OCMShapeA> = 0,
isOcmTensor<OCMShapeB> = 0,
isOcmTensor<OCMShapeC> = 0,
std::enable_if_t<std::is_integral<typename OCMShapeB::elemType>::value &&
sizeof(typename OCMShapeB::elemType) == 1,
int> = 0>
INLINE void gemm(
AlphaType alpha, OCMShapeA& matA, OCMShapeB& matB, BetaType beta, OCMShapeC& matC, OCMShapeC& matOut) {