Procedures

ProcedureLocationProcedure TypeDescription
libxsmm_alignedLIBXSMMFunction

Check if location is SIMD-aligned and optionally consider the next access as if reached by incrementing the location (in Bytes). Optionally calculates the alignment of the given location in Bytes.

libxsmm_availableLIBXSMMInterface

Check if a function is available (LIBXSMM_?MMFUNCTION).

libxsmm_blas_dgemmLIBXSMMInterface

Overloaded BLAS GEMM routines (double-precision).

libxsmm_blas_dgemm0LIBXSMMSubroutine

Re-exposes BLAS based GEMM routine with an interfaces similar to libxsmm_(d)gemm. This overload belongs to libxsmm_blas_(d)gemm.

libxsmm_blas_dgemm1LIBXSMMSubroutine

Re-exposes BLAS based GEMM routine with an interfaces similar to libxsmm_(d)gemm. This overload belongs to libxsmm_blas_(d)gemm.

libxsmm_blas_dgemm2LIBXSMMSubroutine

Re-exposes BLAS based GEMM routine with an interfaces similar to libxsmm_(d)gemm. This overload belongs to libxsmm_blas_(d)gemm.

libxsmm_blas_dgemm3LIBXSMMSubroutine

Re-exposes BLAS based GEMM routine with an interfaces similar to libxsmm_(d)gemm. This overload belongs to libxsmm_blas_(d)gemm.

libxsmm_blas_gemmLIBXSMMInterface

Overloaded BLAS GEMM routines (single/double-precision).

libxsmm_blas_sgemmLIBXSMMInterface

Overloaded BLAS GEMM routines (single-precision).

libxsmm_blas_sgemm0LIBXSMMSubroutine

Re-exposes BLAS based GEMM routine with an interfaces similar to libxsmm_(s)gemm. This overload belongs to libxsmm_blas_(s)gemm.

libxsmm_blas_sgemm1LIBXSMMSubroutine

Re-exposes BLAS based GEMM routine with an interfaces similar to libxsmm_(s)gemm. This overload belongs to libxsmm_blas_(s)gemm.

libxsmm_blas_sgemm2LIBXSMMSubroutine

Re-exposes BLAS based GEMM routine with an interfaces similar to libxsmm_(s)gemm. This overload belongs to libxsmm_blas_(s)gemm.

libxsmm_blas_sgemm3LIBXSMMSubroutine

Re-exposes BLAS based GEMM routine with an interfaces similar to libxsmm_(s)gemm. This overload belongs to libxsmm_blas_(s)gemm.

libxsmm_coprime2LIBXSMMFunction

Calculate co-prime number <= n/2 (except: libxsmm_coprime2(0|1) == 0). Implicit FORTRAN 77 interface: INTEGER(8) :: coprime (OUT), n (IN)

libxsmm_dgemmLIBXSMMInterface

Overloaded GEMM routines (double-precision).

libxsmm_dgemm0LIBXSMMSubroutine

Auto-dispatched general dense MM (double-precision). This overload belongs to libxsmm_(d)gemm.

libxsmm_dgemm1LIBXSMMSubroutine

Auto-dispatched general dense MM (double-precision). This overload belongs to libxsmm_(d)gemm.

libxsmm_dgemm2LIBXSMMSubroutine

Auto-dispatched general dense MM (double-precision). This overload belongs to libxsmm_(d)gemm.

libxsmm_dgemm3LIBXSMMSubroutine

Auto-dispatched general dense MM (double-precision). This overload belongs to libxsmm_(d)gemm.

libxsmm_diffLIBXSMMInterface

Calculate whether there is a difference between two series of items. Conceptually pure, but C_LOC may be (incorrectly) impure.

libxsmm_diff_charLIBXSMMFunction

Calculates if there is a difference between two arrays. FORTRAN 77: see libxsmm_xdiff

libxsmm_diff_i32LIBXSMMFunction

Calculates if there is a difference between two arrays. FORTRAN 77: see libxsmm_xdiff

libxsmm_diff_i64LIBXSMMFunction

Calculates if there is a difference between two arrays. FORTRAN 77: see libxsmm_xdiff

libxsmm_diff_i8LIBXSMMFunction

Calculates if there is a difference between two arrays. FORTRAN 77: see libxsmm_xdiff

libxsmm_dispatchLIBXSMMInterface

Construct JIT-code depending on given argument set.

libxsmm_dmmavailableLIBXSMMFunction

Checks if the given kernel was generated. JIT code is guaranteed to be generated if JIT support was enabled at build-time of the library (default). This overload belongs to libxsmm_(mm)available.

libxsmm_dmmcallLIBXSMMSubroutine

See also libxsmm_dmmcall_abc and libxsmm_dmmcall_prf.

libxsmm_dmmcall_abcLIBXSMMSubroutine

Calls the kernel with the given arguments. Alternatively, PROCPOINTER can be used as shown by the inner comments of this routine (LIBXSMM_FUNCTION3). The libxsmm_xmmcall routines can be used in FORTRAN77.

libxsmm_dmmcall_prfLIBXSMMSubroutine

Calls the kernel with the given arguments. Alternatively, PROCPOINTER can be used as shown by the inner comments of this routine (LIBXSMM_FUNCTION6). The libxsmm_xmmcall routines can be used in FORTRAN77.

libxsmm_dmmdispatchLIBXSMMSubroutine

Query or JIT-generate an SMM-kernel (double-precision).

libxsmm_finalizeLIBXSMMInterface
libxsmm_gemmLIBXSMMInterface

Overloaded GEMM routines.

libxsmm_gemm_batchLIBXSMMSubroutine

Process a series of SMMs (batch). See also libxsmm_xgemm_batch_task. Implicit FORTRAN 77 interface: INTEGER(4) :: iprec, oprec, batchcheck 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

libxsmm_gemm_batch_ompLIBXSMMSubroutine

Process a series of SMMs (batch) with OpenMP (libxsmmext). Implicit FORTRAN 77 interface: INTEGER(4) :: iprec, oprec, batchcheck 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

libxsmm_get_target_archLIBXSMMFunction

Returns the name of the target architecture as determined by the CPUID flags, as set by the libxsmm_get_target_arch* functions, or as set by the LIBXSMM_TARGET environment variable.

libxsmm_get_target_archidLIBXSMMInterface
libxsmm_get_verbosityLIBXSMMInterface
libxsmm_hashLIBXSMMInterface

Calculate a hash value for a given key value (binary blob). Conceptually pure, but C_LOC may be (incorrectly) impure.

libxsmm_hash_charLIBXSMMFunction

Calculates a hash value for the given array and seed. FORTRAN 77: see libxsmm_xhash

libxsmm_hash_i32LIBXSMMFunction

Calculates a hash value for the given array and seed. FORTRAN 77: see libxsmm_xhash

libxsmm_hash_i64LIBXSMMFunction

Calculates a hash value for the given array and seed. FORTRAN 77: see libxsmm_xhash

libxsmm_hash_i8LIBXSMMFunction

Calculates a hash value for the given array and seed. FORTRAN 77: see libxsmm_xhash

libxsmm_initLIBXSMMInterface
libxsmm_itransLIBXSMMInterface

Overloaded TRANSPOSE routines (in-place form).

libxsmm_itrans_d1LIBXSMMSubroutine

Transpose a matrix (in-place form, DP/rank-1).

libxsmm_itrans_d2LIBXSMMSubroutine

Transpose a matrix (in-place form, DP/rank-2).

libxsmm_itrans_p0LIBXSMMSubroutine

Transpose a matrix (in-place form).

libxsmm_itrans_s1LIBXSMMSubroutine

Transpose a matrix (in-place form, SP/rank-1).

libxsmm_itrans_s2LIBXSMMSubroutine

Transpose a matrix (in-place form, SP/rank-2).

libxsmm_matcopyLIBXSMMInterface

Overloaded MATCOPY routines (2d-copy).

libxsmm_matcopy_d1LIBXSMMSubroutine

Matrix-copy (2-dimensional copy) routine (DP/rank-1).

libxsmm_matcopy_d2LIBXSMMSubroutine

Matrix-copy (2-dimensional copy) routine (DP/rank-2).

libxsmm_matcopy_ompLIBXSMMInterface
libxsmm_matcopy_p0LIBXSMMSubroutine

Matrix-copy (2-dimensional copy) routine. If the input (optional) is not present, the routine is used to zero-fill the out-matrix.

libxsmm_matcopy_s1LIBXSMMSubroutine

Matrix-copy (2-dimensional copy) routine (SP/rank-1).

libxsmm_matcopy_s2LIBXSMMSubroutine

Matrix-copy (2-dimensional copy) routine (SP/rank-2).

libxsmm_matdiffLIBXSMMSubroutine

Utility function to calculate a collection of scalar differences between two matrices (libxsmm_matdiff_info). The location (m, n) of the largest difference (linf_abs) is recorded (also if NaN). In case of NaN, differences are set to infinity. If no difference is discovered, the location (m, n) is negative (OOB). Implicit FORTRAN 77 interface: TYPE :: info INTEGER(4) :: datatype INTEGER(4|8) :: m, n, ldref, ldtst ARRAY :: ref, tst

libxsmm_matdiff_clearLIBXSMMInterface
libxsmm_matdiff_reduceLIBXSMMInterface
libxsmm_mmavailableLIBXSMMInterface

Check if a function is available (LIBXSMM_?MMFUNCTION).

libxsmm_mmdispatchLIBXSMMInterface

Construct JIT-code depending on given argument set.

libxsmm_otransLIBXSMMInterface

Overloaded TRANSPOSE routines (out-of-place form).

libxsmm_otrans_d1LIBXSMMSubroutine

Transpose a matrix (out-of-place form, DP/rank-1).

libxsmm_otrans_d2LIBXSMMSubroutine

Transpose a matrix (out-of-place form, DP/rank-2).

libxsmm_otrans_ompLIBXSMMInterface
libxsmm_otrans_p0LIBXSMMSubroutine

Transpose a matrix (out-of-place form).

libxsmm_otrans_s1LIBXSMMSubroutine

Transpose a matrix (out-of-place form, SP/rank-1).

libxsmm_otrans_s2LIBXSMMSubroutine

Transpose a matrix (out-of-place form, SP/rank-2).

libxsmm_ptrLIBXSMMInterface
libxsmm_ptr0LIBXSMMInterface
libxsmm_ptr1LIBXSMMInterface
libxsmm_ptr2LIBXSMMInterface
libxsmm_ptr_b0LIBXSMMFunction

Determines the C-address of the given array.

libxsmm_ptr_b1LIBXSMMFunction
libxsmm_ptr_b2LIBXSMMFunction
libxsmm_ptr_c0LIBXSMMFunction

Determines the C-address of the given array.

libxsmm_ptr_c1LIBXSMMFunction
libxsmm_ptr_c2LIBXSMMFunction
libxsmm_ptr_d0LIBXSMMFunction

Determines the C-address of the given array.

libxsmm_ptr_d1LIBXSMMFunction
libxsmm_ptr_d2LIBXSMMFunction
libxsmm_ptr_dmmLIBXSMMFunction
libxsmm_ptr_i0LIBXSMMFunction

Determines the C-address of the given array.

libxsmm_ptr_i1LIBXSMMFunction
libxsmm_ptr_i2LIBXSMMFunction
libxsmm_ptr_j0LIBXSMMFunction

Determines the C-address of the given array.

libxsmm_ptr_j1LIBXSMMFunction
libxsmm_ptr_j2LIBXSMMFunction
libxsmm_ptr_l0LIBXSMMFunction

Determines the C-address of the given array.

libxsmm_ptr_l1LIBXSMMFunction
libxsmm_ptr_l2LIBXSMMFunction
libxsmm_ptr_nullLIBXSMMFunction

Returns C_NULL_PTR.

libxsmm_ptr_s0LIBXSMMFunction

Determines the C-address of the given array.

libxsmm_ptr_s1LIBXSMMFunction
libxsmm_ptr_s2LIBXSMMFunction
libxsmm_ptr_smmLIBXSMMFunction
libxsmm_ptr_w0LIBXSMMFunction

Determines the C-address of the given array.

libxsmm_ptr_w1LIBXSMMFunction
libxsmm_ptr_w2LIBXSMMFunction
libxsmm_ptr_z0LIBXSMMFunction

Determines the C-address of the given array.

libxsmm_ptr_z1LIBXSMMFunction
libxsmm_ptr_z2LIBXSMMFunction
libxsmm_release_dmmkernelLIBXSMMSubroutine

Deallocate JIT'ted code created by libxsmm_create routines. To unregister code generated with libxsmm_dispatch is unnecessary.

libxsmm_release_kernelLIBXSMMInterface
libxsmm_release_mmkernelLIBXSMMInterface

Deallocates JIT'ted code, or unregisters and releases code from registry.

libxsmm_release_smmkernelLIBXSMMSubroutine

Deallocate JIT'ted code created by libxsmm_create routines. To unregister code generated with libxsmm_dispatch is unnecessary.

libxsmm_set_target_archLIBXSMMInterface
libxsmm_set_target_archidLIBXSMMInterface
libxsmm_set_verbosityLIBXSMMInterface
libxsmm_sgemmLIBXSMMInterface

Overloaded GEMM routines (single-precision).

libxsmm_sgemm0LIBXSMMSubroutine

Auto-dispatched general dense MM (single-precision). This overload belongs to libxsmm_(s)gemm.

libxsmm_sgemm1LIBXSMMSubroutine

Auto-dispatched general dense MM (single-precision). This overload belongs to libxsmm_(s)gemm.

libxsmm_sgemm2LIBXSMMSubroutine

Auto-dispatched general dense MM (single-precision). This overload belongs to libxsmm_(s)gemm.

libxsmm_sgemm3LIBXSMMSubroutine

Auto-dispatched general dense MM (single-precision). This overload belongs to libxsmm_(s)gemm.

libxsmm_smmavailableLIBXSMMFunction

Checks if the given kernel was generated. JIT code is guaranteed to be generated if JIT support was enabled at build-time of the library (default). This overload belongs to libxsmm_(mm)available.

libxsmm_smmcallLIBXSMMSubroutine

See also libxsmm_smmcall_abc and libxsmm_smmcall_prf.

libxsmm_smmcall_abcLIBXSMMSubroutine

Calls the kernel with the given arguments. Alternatively, PROCPOINTER can be used as shown by the inner comments of this routine (LIBXSMM_FUNCTION3). The libxsmm_xmmcall routines can be used in FORTRAN77.

libxsmm_smmcall_prfLIBXSMMSubroutine

Calls the kernel with the given arguments. Alternatively, PROCPOINTER can be used as shown by the inner comments of this routine (LIBXSMM_FUNCTION6). The libxsmm_xmmcall routines can be used in FORTRAN77.

libxsmm_smmdispatchLIBXSMMSubroutine

Query or JIT-generate an SMM-kernel (single-precision).

libxsmm_timer_durationLIBXSMMInterface
libxsmm_timer_ncyclesLIBXSMMFunction

Returns the difference between two timer ticks (cycles). Implicit FORTRAN 77 interface: subroutine available.

libxsmm_timer_tickLIBXSMMInterface
libxsmm_xclearLIBXSMMInterface
libxsmm_xdiffLIBXSMMInterface
libxsmm_xdispatchLIBXSMMFunction

Query user-defined value from LIBXSMM's code registry.

libxsmm_xgemm_batchLIBXSMMInterface
libxsmm_xgemm_batch_ompLIBXSMMInterface
libxsmm_xgemm_batch_taskLIBXSMMInterface
libxsmm_xhashLIBXSMMInterface
libxsmm_xitransLIBXSMMInterface
libxsmm_xmatcopyLIBXSMMInterface
libxsmm_xmmcall_abcLIBXSMMInterface
libxsmm_xmmcall_prfLIBXSMMInterface
libxsmm_xmmdispatchLIBXSMMInterface
libxsmm_xmmdispatch2LIBXSMMInterface
libxsmm_xotransLIBXSMMInterface
libxsmm_xregisterLIBXSMMFunction

Register user-defined key-value; value can be queried (libxsmm_xdispatch). Since the key-type is unknown to LIBXSMM, the key must be binary reproducible, i.e., a structured type (can be padded) must be initialized like a binary blob (libxsmm_xclear) followed by an element-wise initialization. The size of the key is limited (see documentation). The given value is copied by LIBXSMM and can be initialized prior to registration or whenever queried. Registered data is released when the program terminates but can be also released if needed (libxsmm_xrelease), .e.g., in case of a larger value reusing the same key.

libxsmm_xreleaseLIBXSMMInterface