Developer Guide

Developer Guide for Intel® oneAPI Math Kernel Library Linux*

ID 766690
Date 11/07/2023
Public

A newer version of this document is available. Customers should click here to go to the newest version.

Document Table of Contents

Dynamic Libraries in the lib Directory

Some of the libraries in this directory are optional. However, some optional libraries are installed by default, while the rest are not. To get those libraries that are not installed by default, explicitly select the specified optional component during installation.

File

Contents

Optional Component

Name

Installed by Default

libmkl_rt.so

Single Dynamic Library for C/Fortran functionality.

Instead of multiple libraries, the user can link to one mkl_rt library and select interface and threading via function or environment variable.

   

SYCL API Layer

     

libmkl_sycl.so

Umbrella library (linker script) to link with all domain-specific SYCL libraries.

Required if SYCL-specific functionality is needed.

   

libmkl_sycl_blas.so

BLAS SYCL library for SYCL compilers

   

libmkl_sycl_lapack.so

LAPACK SYCL library for SYCL compilers

   

libmkl_sycl_dft.so

Discrete Fourier Transform (DFT) SYCL library for SYCL compilers

   

libmkl_sycl_sparse.so

Sparse BLAS SYCL library for SYCL compilers

   

libmkl_sycl_vm.so

Vector Mathematics (VM) SYCL library for SYCL compilers

   

libmkl_sycl_rng.so

Random Number Generator (RNG) SYCL library for SYCL compilers

   

libmkl_sycl_stats.so

Summary Statistic SYCL library for SYCL compilers

   

libmkl_sycl_data_fitting.so

Data Fitting SYCL library for SYCL compilers (experimental)

   

Interface Layer

     

libmkl_intel_lp64.so

LP64 interface library for the Intel compilers. Also use for other supported compilers that do not have a specialized Intel® oneAPI Math Kernel Library (oneMKL) interface library.

All Intel® oneAPI Math Kernel Library (oneMKL) function domains support LP64 programming. Read more about LP64 in Using the ILP64 Interface vs. LP64 Interface.

   

libmkl_intel_ilp64.so

ILP64 interface library for the Intel compilers. Also use for other supported compilers that do not have a specialized Intel® oneAPI Math Kernel Library (oneMKL) interface library

All oneMKL function domains support ILP64 programming with some limitations for FFT. Read more about ILP64 and limitations in Using the ILP64 Interface vs. LP64 Interface..
   

libmkl_gf_lp64.so

LP64 interface library for the GNU Fortran compilers

All oneMKL function domains support LP64 programming. Read more about LP64 in Using the ILP64 Interface vs. LP64 Interface..

GNU* Compiler Collection support

Yes

libmkl_gf_ilp64.so

ILP64 interface library for the GNU Fortran compilers

All oneMKL function domains support ILP64 programming with some limitations for FFT. Read more about ILP64 and limitations in Using the ILP64 Interface vs. LP64 Interface..

GNU* Compiler Collection support

Yes

Threading Layer

     

libmkl_intel_thread.so

OpenMP threading library for the Intel compilers.

All oneMKL function domains support Intel OpenMP threading.

   

libmkl_tbb_thread.so

Intel TBB threading library for the Intel compilers.

All oneMKL function domains support Intel TBB threading.

Intel TBB threading support

Yes

libmkl_gnu_thread.so

OpenMP threading library for the GNU Fortran and C compilers.

All oneMKL function domains support GNU OpenMP threading.

GNU* Compiler Collection support

Yes

libmkl_pgi_thread.so (DEPRECATED)

OpenMP threading library for the PGI* compiler.

All oneMKL function domains except cluster domains (CDFT, CPARDISO, HPCG, BLACS) support PGI threading.

PGI* Compiler support

 

libmkl_sequential.so

Sequential library.

All oneMKL function domains support sequential mode.

   

Computational Layer

     

libmkl_core.so

All non–architecture-specific implementation and library dispatcher for dynamic load of architecture-specific kernels.

Read more about how to work with mkl_enable_instructions and mkl_cbwr_set in the developer reference.

mkl_core is required for any link configurations. You don't need to link kernel-specific libraries; just link mkl_core.

   

libmkl_def.so

Default kernel library.

All oneMKL function domains except Vector Mathematics (VM)/Vector Statistics (VS)/Data Fitting (DF) are presented in this library.

   

libmkl_mc3.so

Kernel library for Intel® Streaming SIMD Extensions 4.2 (Intel® SSE4.2) enabled processors.

All oneMKL function domains except VM/VS/DF are presented in this library.

   

libmkl_avx2.so

Kernel library for Intel® Advanced Vector Extensions 2 (Intel® AVX2) enabled processors.

All oneMKL function domains except VM/VS/DF are presented in this library.

   

libmkl_avx512.so

Kernel library for dispatching Intel® Advanced Vector Extensions 512 (Intel® AVX-512) on Intel® Xeon® processors.

All oneMKL function domains except VM/VS/DF are presented in this library.

   

libmkl_vml_def.so

Vector Mathematics (VM)/Vector Statistics (VS)/Data Fitting (DF) part of default kernels

   

libmkl_vml_mc3.so

VM/VS/DF for Intel® SSE4.2 enabled processors

   

libmkl_vml_avx2.so

VM/VS/DF optimized for Intel® AVX2 enabled processors

   

libmkl_vml_avx512.so

VM/VS/DF optimized for Intel® AVX-512 on Intel® Xeon® processors

   

libmkl_vml_cmpt.so

VM/VS/DF library for conditional numerical reproducibility

   

Cluster Libraries

     

libmkl_scalapack_lp64.so

ScaLAPACK routine library supporting the LP64 interface

Cluster support

 

libmkl_scalapack_ilp64.so

ScaLAPACK routine library supporting the ILP64 interface

Cluster support

 

libmkl_cdft_core.so

Cluster version of FFT functions.

Cluster support

 

libmkl_blacs_intelmpi_lp64.so

LP64 version of BLACS routines for Intel® MPI Library and MPICH2 or higher.

Cluster support

 

libmkl_blacs_intelmpi_ilp64.so

ILP64 version of BLACS routines for Intel MPI Library and MPICH2 or higher.

Cluster support

 

libmkl_blacs_openmpi_lp64.so

LP64 version of BLACS routines for Open MPI.

Cluster support

 

libmkl_blacs_openmpi_ilp64.so

ILP64 version of BLACS routines for Open MPI.

Cluster support

 
NOTE:

In case any functionality from a specific library is needed, this library should be added to the link line. For example, if you want to use oneMKL with the GCC compiler + ILP64 interface + GNU OpenMP threading, the link line should contain:

  1. mkl_intel_ilp64 for ILP64 interface
  2. mkl_gnu_thread for GNU OpenMP threading
  3. mkl_core for all other oneMKL functionality

Details about what should be linked in different cases can be found in the oneMKL Link Line Advisor.

Product and Performance Information

Performance varies by use, configuration and other factors. Learn more at www.Intel.com/PerformanceIndex.

Notice revision #20201201