Libxsmm

Jul 20, 2023

Library for dense and sparse matrix operations and deep learning

LIBXSMM is a library for specialized dense and sparse matrix operations as well as for deep learning primitives such as small convolutions targeting Intel Architecture. Small matrix multiplication kernels SMMs are generated for Intel SSE, Intel AVX, Intel AVX2, IMCI KNCni for Intel Xeon Phi coprocessors KNC, and Intel AVX-512 as found in the Intel Xeon Phi processor family KNL, KNM and Intel Xeon processors SKX. Highly optimized code for small convolutions is targeting Intel AVX2 and Intel AVX-512, whereas other targets can automatically leverage specialized SMMs to perform convolutions.

The library supports statically generated code at configuration time SMMs, uses optimized code paths based on compiler-generated code as well as Intrinsic functions, but mainly utilizes Just-In-Time JIT code specialization for compiler-independent performance matrix multiplications, matrix transpose/copy, sparse functionality, and small convolutions. LIBXSMM is suitable for “build once and deploy everywhere” i.e., no special target flags are needed to exploit the available performance.



Checkout these related ports:
  • Zn_poly - C library for polynomial arithmetic
  • Zimpl - Language to translate the LP models into .lp or .mps
  • Zegrapher - Software for plotting mathematical objects
  • Zarray - Dynamically typed N-D expression system based on xtensor
  • Z3 - Z3 Theorem Prover
  • Yices - SMT solver
  • Yacas - Yet Another Computer Algebra System
  • Xtensor - Multi-dimensional arrays with broadcasting and lazy computing
  • Xtensor-python - Python bindings for xtensor
  • Xtensor-io - Xtensor plugin to read/write images, audio files, numpy npz and HDF5
  • Xtensor-blas - BLAS extension to xtensor
  • Xspread - Spreadsheet program for X and terminals
  • Xppaut - Graphical tool for solving differential equations, etc
  • Xplot - X11 plotting package
  • Xlife++ - XLiFE++ eXtended Library of Finite Elements in C++