13.07.2015 Views

Intel(R) Math Kernel Library for Linux* OS User's Guide

Intel(R) Math Kernel Library for Linux* OS User's Guide

Intel(R) Math Kernel Library for Linux* OS User's Guide

SHOW MORE
SHOW LESS
  • No tags were found...

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

3 <strong>Intel</strong>® <strong>Math</strong> <strong>Kernel</strong> <strong>Library</strong> User’s <strong>Guide</strong>• The libmkl_intel_thread.a library in the Threading layer adapts <strong>Intel</strong> MKL to theOpenMP* implementation used by <strong>Intel</strong> compilers, and the libmkl_sequential.alibrary adapts <strong>Intel</strong> MKL to the non-threaded mode.The Computational layer is the bulk of <strong>Intel</strong> MKL. The library in this layer contains onlycode needed <strong>for</strong> pure computations, without adaptation to interfaces or OpenMP threading.Being organized this way, <strong>Intel</strong> MKL avoids duplication of the same code in differentlibraries and thus considerably saves space.You can combine <strong>Intel</strong> MKL independent libraries to meet your needs by linking with onelibrary in each part layer-by-layer. Once the interface library is selected, the threadinglibrary you select picks up the chosen interface, and the computational library usesinterfaces and OpenMP implementation (or non-threaded mode) chosen in the first twolayers. To learn which libraries to link with your application, see Chapter 5.Table 3-3 provides more details of each layer.Table 3-3LayerInterface LayerThreading Layer<strong>Intel</strong>® MKL LayersDescriptionMatches compiled code of your application with the threading and/orcomputational parts of the library. This layer provides:• LP64 and ILP64 interfaces(see Support <strong>for</strong> ILP64 Programming <strong>for</strong> details).• Compatibility with compilers that return function values differently.• A mapping between single-precision names and double-precisionnames <strong>for</strong> applications using Cray*-style naming (SP2DPinterface).SP2DP interface supports Cray-style naming in applicationstargeted <strong>for</strong> the <strong>Intel</strong> 64 or IA-64 architecture and using the ILP64interface. SP2DP interface provides a mapping betweensingle-precision names (<strong>for</strong> both real and complex types) in theapplication and double-precision names in <strong>Intel</strong> MKL BLAS andLAPACK. Function names are mapped as shown in the followingexample <strong>for</strong> BLAS functions *GEMM:SGEMM -> DGEMMDGEMM -> DGEMMCGEMM -> ZGEMMZGEMM -> ZGEMMMind that no changes are made to double-precision names.This layer:• Provides a way to link threaded <strong>Intel</strong> MKL with different threadingcompilers.• Enables you to link with a threaded or sequential mode of thelibrary.This layer is compiled <strong>for</strong> different environments (threaded orsequential) and compilers (from <strong>Intel</strong>, GNU*, and so on).3-4

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!