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

Static 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

SYCL API Layer

     

mkl_sycl.a

SYCL library for the Intel DPC++ compilers. Required if SYCL-specific functionality is needed.

This library includes BLAS, LAPACK, DFT, Data Fitting, Vector Math, Sparse BLAS, RNG and Summary Statistic domains.

   

Interface Layer

     

libmkl_intel_lp64.a

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

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

   

libmkl_intel_ilp64.a

ILP64 interface library for the Intel compilers. Also used for other supported compilers that do not have a specialized 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_blas95_lp64.a

Fortran 95 interface library for BLAS for the Intel® Fortran compiler. Supports the LP64 interface.

Fortran 95 interfaces for BLAS and LAPACK

Yes

libmkl_blas95_ilp64.a

Fortran 95 interface library for BLAS for the Intel® Fortran compiler. Supports the ILP64 interface.

Fortran 95 interfaces for BLAS and LAPACK

Yes

libmkl_lapack95_lp64.a

Fortran 95 interface library for LAPACK for the Intel® Fortran compiler. Supports the LP64 interface.

Fortran 95 interfaces for BLAS and LAPACK

Yes

libmkl_lapack95_ilp64.a

Fortran 95 interface library for LAPACK for the Intel® Fortran compiler. Supports the ILP64 interface.

Fortran 95 interfaces for BLAS and LAPACK

Yes

libmkl_gf_lp64.a

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.a

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.a

OpenMP threading library for the Intel compilers.

All oneMKL function domains support Intel OpenMP threading.

   

libmkl_tbb_thread.a

Intel TBB threading library for the Intel compilers.

All oneMKL function domains support Intel TBB threading.

Intel TBB threading support

Yes

libmkl_gnu_thread.a

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.a (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.a

Sequential library.

All oneMKL function domains support sequential mode.

   

Computational Layer

     

libmkl_core.a

All non–architecture-specific implementation and library dispatcher for 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.

   

Cluster Libraries

     

libmkl_scalapack_lp64.a

ScaLAPACK routine library supporting the LP64 interface

Cluster support

 

libmkl_scalapack_ilp64.a

ScaLAPACK routine library supporting the ILP64 interface

Cluster support

 

libmkl_cdft_core.a

Cluster version of FFT functions.

Cluster support

 

libmkl_blacs_intelmpi_lp64.a

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

Cluster support

 

libmkl_blacs_intelmpi_ilp64.a

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

Cluster support

 

libmkl_blacs_openmpi_lp64.a

LP64 version of BLACS routines supporting Open MPI.

Cluster support

 

libmkl_blacs_openmpi_ilp64.a

ILP64 version of BLACS routines supporting 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.