Developer Guide

Developer Guide for Intel® oneAPI Math Kernel Library Linux*

ID 766690
Date 12/16/2022
Public

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

Document Table of Contents

Layered Model Concept

Intel® oneAPI Math Kernel Library is structured to support multiple compilers and interfaces, both serial and multi-threaded modes, different implementations of threading run-time libraries, and a wide range of processors. Conceptually Intel® oneAPI Math Kernel Library can be divided into distinct parts to support different interfaces, threading models, and core computations:

  1. Interface Layer
  2. Threading Layer
  3. Computational Layer

You can combine Intel® oneAPI Math Kernel Library libraries to meet your needs by linking with one library in each part layer-by-layer.

To support threading with different compilers, you also need to use an appropriate threading run-time library (RTL). These libraries are provided by compilers and are not included in Intel® oneAPI Math Kernel Library.

The following table provides more details of each layer.

Layer

Description

Interface Layer

This layer matches compiled code of your application with the threading and/or computational parts of the library. This layer provides:

  • LP64 and ILP64 interfaces.

  • Compatibility with compilers that return function values differently.

Threading Layer

This layer:

  • Provides a way to link threaded Intel® oneAPI Math Kernel Library with supported compilers.

  • Enables you to link with a threaded or sequential mode of the library.

This layer is compiled for different environments (threaded or sequential) and compilers (from Intel, GNU*, ).

Computational Layer

This layer accommodates multiple architectures through identification of architecture features and chooses the appropriate binary code at run time.

Product and Performance Information

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

Notice revision #20201201