Procedures

ProcedureLocationProcedure TypeDescription
libxsmm_aligned LIBXSMM Function

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_available LIBXSMM Interface

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

libxsmm_blas_dgemm LIBXSMM Interface

Overloaded BLAS GEMM routines (double-precision).

libxsmm_blas_dgemm0 LIBXSMM Subroutine

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

libxsmm_blas_dgemm1 LIBXSMM Subroutine

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

libxsmm_blas_dgemm2 LIBXSMM Subroutine

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

libxsmm_blas_dgemm3 LIBXSMM Subroutine

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

libxsmm_blas_gemm LIBXSMM Interface

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

libxsmm_blas_sgemm LIBXSMM Interface

Overloaded BLAS GEMM routines (single-precision).

libxsmm_blas_sgemm0 LIBXSMM Subroutine

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

libxsmm_blas_sgemm1 LIBXSMM Subroutine

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

libxsmm_blas_sgemm2 LIBXSMM Subroutine

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

libxsmm_blas_sgemm3 LIBXSMM Subroutine

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

libxsmm_coprime2 LIBXSMM Function

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

libxsmm_dgemm LIBXSMM Interface

Overloaded GEMM routines (double-precision).

libxsmm_dgemm0 LIBXSMM Subroutine

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

libxsmm_dgemm1 LIBXSMM Subroutine

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

libxsmm_dgemm2 LIBXSMM Subroutine

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

libxsmm_dgemm3 LIBXSMM Subroutine

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

libxsmm_diff LIBXSMM Interface

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

libxsmm_diff_char LIBXSMM Function

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

libxsmm_diff_i32 LIBXSMM Function

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

libxsmm_diff_i64 LIBXSMM Function

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

libxsmm_diff_i8 LIBXSMM Function

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

libxsmm_dispatch LIBXSMM Interface

Construct JIT-code depending on given argument set.

libxsmm_dmmavailable LIBXSMM Function

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_dmmcall LIBXSMM Subroutine

See also libxsmm_dmmcall_abc and libxsmm_dmmcall_prf.

libxsmm_dmmcall_abc LIBXSMM Subroutine

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_prf LIBXSMM Subroutine

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_dmmdispatch LIBXSMM Subroutine

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

libxsmm_finalize LIBXSMM Interface
libxsmm_gemm LIBXSMM Interface

Overloaded GEMM routines.

libxsmm_gemm_batch LIBXSMM Subroutine

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_omp LIBXSMM Subroutine

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_arch LIBXSMM Function

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_archid LIBXSMM Interface
libxsmm_get_verbosity LIBXSMM Interface
libxsmm_hash LIBXSMM Interface

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

libxsmm_hash_char LIBXSMM Function

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

libxsmm_hash_i32 LIBXSMM Function

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

libxsmm_hash_i64 LIBXSMM Function

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

libxsmm_hash_i8 LIBXSMM Function

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

libxsmm_init LIBXSMM Interface
libxsmm_itrans LIBXSMM Interface

Overloaded TRANSPOSE routines (in-place form).

libxsmm_itrans_d1 LIBXSMM Subroutine

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

libxsmm_itrans_d2 LIBXSMM Subroutine

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

libxsmm_itrans_p0 LIBXSMM Subroutine

Transpose a matrix (in-place form).

libxsmm_itrans_s1 LIBXSMM Subroutine

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

libxsmm_itrans_s2 LIBXSMM Subroutine

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

libxsmm_matcopy LIBXSMM Interface

Overloaded MATCOPY routines (2d-copy).

libxsmm_matcopy_d1 LIBXSMM Subroutine

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

libxsmm_matcopy_d2 LIBXSMM Subroutine

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

libxsmm_matcopy_omp LIBXSMM Interface
libxsmm_matcopy_p0 LIBXSMM Subroutine

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_s1 LIBXSMM Subroutine

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

libxsmm_matcopy_s2 LIBXSMM Subroutine

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

libxsmm_matdiff LIBXSMM Subroutine

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_clear LIBXSMM Interface
libxsmm_matdiff_reduce LIBXSMM Interface
libxsmm_mmavailable LIBXSMM Interface

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

libxsmm_mmdispatch LIBXSMM Interface

Construct JIT-code depending on given argument set.

libxsmm_otrans LIBXSMM Interface

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

libxsmm_otrans_d1 LIBXSMM Subroutine

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

libxsmm_otrans_d2 LIBXSMM Subroutine

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

libxsmm_otrans_omp LIBXSMM Interface
libxsmm_otrans_p0 LIBXSMM Subroutine

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

libxsmm_otrans_s1 LIBXSMM Subroutine

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

libxsmm_otrans_s2 LIBXSMM Subroutine

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

libxsmm_ptr LIBXSMM Interface
libxsmm_ptr0 LIBXSMM Interface
libxsmm_ptr1 LIBXSMM Interface
libxsmm_ptr2 LIBXSMM Interface
libxsmm_ptr_b0 LIBXSMM Function

Determines the C-address of the given array.

libxsmm_ptr_b1 LIBXSMM Function
libxsmm_ptr_b2 LIBXSMM Function
libxsmm_ptr_c0 LIBXSMM Function

Determines the C-address of the given array.

libxsmm_ptr_c1 LIBXSMM Function
libxsmm_ptr_c2 LIBXSMM Function
libxsmm_ptr_d0 LIBXSMM Function

Determines the C-address of the given array.

libxsmm_ptr_d1 LIBXSMM Function
libxsmm_ptr_d2 LIBXSMM Function
libxsmm_ptr_dmm LIBXSMM Function
libxsmm_ptr_i0 LIBXSMM Function

Determines the C-address of the given array.

libxsmm_ptr_i1 LIBXSMM Function
libxsmm_ptr_i2 LIBXSMM Function
libxsmm_ptr_j0 LIBXSMM Function

Determines the C-address of the given array.

libxsmm_ptr_j1 LIBXSMM Function
libxsmm_ptr_j2 LIBXSMM Function
libxsmm_ptr_l0 LIBXSMM Function

Determines the C-address of the given array.

libxsmm_ptr_l1 LIBXSMM Function
libxsmm_ptr_l2 LIBXSMM Function
libxsmm_ptr_null LIBXSMM Function

Returns C_NULL_PTR.

libxsmm_ptr_s0 LIBXSMM Function

Determines the C-address of the given array.

libxsmm_ptr_s1 LIBXSMM Function
libxsmm_ptr_s2 LIBXSMM Function
libxsmm_ptr_smm LIBXSMM Function
libxsmm_ptr_w0 LIBXSMM Function

Determines the C-address of the given array.

libxsmm_ptr_w1 LIBXSMM Function
libxsmm_ptr_w2 LIBXSMM Function
libxsmm_ptr_z0 LIBXSMM Function

Determines the C-address of the given array.

libxsmm_ptr_z1 LIBXSMM Function
libxsmm_ptr_z2 LIBXSMM Function
libxsmm_release_dmmkernel LIBXSMM Subroutine

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

libxsmm_release_kernel LIBXSMM Interface
libxsmm_release_mmkernel LIBXSMM Interface

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

libxsmm_release_smmkernel LIBXSMM Subroutine

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

libxsmm_set_target_arch LIBXSMM Interface
libxsmm_set_target_archid LIBXSMM Interface
libxsmm_set_verbosity LIBXSMM Interface
libxsmm_sgemm LIBXSMM Interface

Overloaded GEMM routines (single-precision).

libxsmm_sgemm0 LIBXSMM Subroutine

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

libxsmm_sgemm1 LIBXSMM Subroutine

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

libxsmm_sgemm2 LIBXSMM Subroutine

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

libxsmm_sgemm3 LIBXSMM Subroutine

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

libxsmm_smmavailable LIBXSMM Function

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_smmcall LIBXSMM Subroutine

See also libxsmm_smmcall_abc and libxsmm_smmcall_prf.

libxsmm_smmcall_abc LIBXSMM Subroutine

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_prf LIBXSMM Subroutine

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_smmdispatch LIBXSMM Subroutine

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

libxsmm_timer_duration LIBXSMM Interface
libxsmm_timer_ncycles LIBXSMM Function

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

libxsmm_timer_tick LIBXSMM Interface
libxsmm_xclear LIBXSMM Interface
libxsmm_xdiff LIBXSMM Interface
libxsmm_xdispatch LIBXSMM Function

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

libxsmm_xgemm_batch LIBXSMM Interface
libxsmm_xgemm_batch_omp LIBXSMM Interface
libxsmm_xgemm_batch_task LIBXSMM Interface
libxsmm_xhash LIBXSMM Interface
libxsmm_xitrans LIBXSMM Interface
libxsmm_xmatcopy LIBXSMM Interface
libxsmm_xmmcall_abc LIBXSMM Interface
libxsmm_xmmcall_prf LIBXSMM Interface
libxsmm_xmmdispatch LIBXSMM Interface
libxsmm_xmmdispatch2 LIBXSMM Interface
libxsmm_xotrans LIBXSMM Interface
libxsmm_xregister LIBXSMM Function

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_xrelease LIBXSMM Interface