Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer(kind=C_INT), | intent(in) | :: | iprec | |||
integer(kind=C_INT), | intent(in) | :: | oprec | |||
character, | intent(in) | :: | transa | |||
character, | intent(in) | :: | transb | |||
integer(kind=LIBXSMM_BLASINT_KIND), | intent(in) | :: | m | |||
integer(kind=LIBXSMM_BLASINT_KIND), | intent(in) | :: | n | |||
integer(kind=LIBXSMM_BLASINT_KIND), | intent(in) | :: | k | |||
type(C_PTR), | intent(in), | VALUE | :: | alpha | ||
type(C_PTR), | intent(in), | VALUE | :: | a | ||
integer(kind=LIBXSMM_BLASINT_KIND), | intent(in) | :: | lda | |||
type(C_PTR), | intent(in), | VALUE | :: | stride_a |
Arrays of indexes determining the position of a, b, and c operands. |
|
type(C_PTR), | intent(in), | VALUE | :: | b | ||
integer(kind=LIBXSMM_BLASINT_KIND), | intent(in) | :: | ldb | |||
type(C_PTR), | intent(in), | VALUE | :: | stride_b | ||
type(C_PTR), | intent(in), | VALUE | :: | beta | ||
type(C_PTR), | intent(in), | VALUE | :: | c | ||
integer(kind=LIBXSMM_BLASINT_KIND), | intent(in) | :: | ldc | |||
type(C_PTR), | intent(in), | VALUE | :: | stride_c | ||
integer(kind=LIBXSMM_BLASINT_KIND), | intent(in) | :: | index_stride |
Stride (measured in Bytes) used to walk stride_*. In Fortran (usually): index_stride!=0. |
||
integer(kind=LIBXSMM_BLASINT_KIND), | intent(in) | :: | index_base |
Determines index-base (1 for one-based indexes). |
||
integer(kind=LIBXSMM_BLASINT_KIND), | intent(in) | :: | batchsize |
Number of SMMs. If the size is given as a neg. value, then internal synchronization is omitted. |
||
integer(kind=C_INT), | intent(in) | :: | batchcheck | |||
integer(kind=C_INT), | intent(in) | :: | tid |
Task-ID (TID), and number of tasks. |
||
integer(kind=C_INT), | intent(in) | :: | ntasks |
Task-ID (TID), and number of tasks. |
Process a series of SMMs (batch). See also libxsmm_gemm_batch/omp. The kind of matrices (a, b, c) depend on index_stride: index_stride==0: stride_ are each scalar strides used to walk the corresponding a, b, or c with each being an array of pointers to the respective matrices. index_stride!=0: stride_ are each scalar strides used to walk the corresponding a, b, or c with each being a pointer to the respective matrix-data. The index_stride is not used otherwise. index_stride is non-zero (smaller than libxsmm_blasint): stride_ indexes determining the start of the corresponding a, b, or c with each being a pointer to the respective matrix-data. The index_stride to walk stride_. Implicit FORTRAN 77 interface: INTEGER(4) :: iprec, oprec CHAR :: transa, transb INTEGER(4|8) :: m, n, k, lda, ldb, ldc REAL(4|8) :: alpha, beta ARRAY :: a, b, c ARRAY/VALUE :: stride_a, stride_b, stride_c INTEGER(4|8) :: index_stride, index_base, batchsize INTEGER(4) :: batchcheck, tid, ntasks