Developer Guide

Contents

Building a Universal Windows Driver

Intel® oneAPI Math Kernel Library
is compatible with Universal Windows Drivers (UWDs) whose binaries are Win10 SDK version 1803 (also called Redstone 4, RS4 or Win 10 SDK build 10.0.17134.0) or higher. The Windows system calls used in the statically linked libraries are defined in:
  • OneCore.Lib
    for headless applications like Nano Server.
  • OneCoreUAP.Lib
    for a UWD.
A Windows application or driver that links to either of these libraries can use functionality from statically linked
Intel® oneAPI Math Kernel Library
to accelerate computations. For more information on design criteria for a UWD, see the Microsoft website.
This table summarizes important information about compatibility between
Intel® oneAPI Math Kernel Library
and UWDs.
Compatibility between Intel MKL and Universal Windows Driver (UWD)
Criteria
Compatibility
SDK
10.0.17134.0 (also called Redstone 4, RS4, version 1803) or higher
Architecture
  • ia32
  • intel64
Universal API sets
  • OneCore.Lib
    for headless applications like Nano Server
  • OneCoreUAP.Lib
    for a UWD
Threading layers
UWD Compliance
  • Intel® oneAPI Math Kernel Library
    with static linking libraries
  • For dynamic linking libraries, use the custom DLL builder with
    uwd_compat
    =
    yes
    to construct a custom DLL that is compatible with UWD. See Using the Custom DLL Builder.
The UWD links to
Intel® oneAPI Math Kernel Library
using the same link line settings as drivers or executables that are not universal. See Link Line Advisor for recommended linking models.

UWD Compliance for 32-bit Architecture (
ia32
)

These tables describe compliance between
Intel® oneAPI Math Kernel Library
and UWD on 32-bit (
ia32
) architecture for static and dynamic linked libraries.
Static Linking
Layer
Library
Compatibility
Fortran interface layer
mkl_blas95.lib
mkl_lapack95.lib
Not applicable
Interface layer
mkl_intel_c.lib (cdecl)
Threading layer
mkl_sequential.lib
mkl_tbb_thread.lib
(if using UWD Intel® TBB )
mkl_intel_thread.lib (OpenMP)
Computational layer
mkl_core.lib
1
These are Fortran 95 wrappers for BLAS (BLAS95) and LAPACK (LAPACK95). Windows drivers are typically written in C, C++ or ASM. Fortran wrappers are UWD-compliant but not useful for building UWDs.
2
See Using Intel®TBB in UWP Applications. Starting with the Intel® TBB 2018 release, you can find a prebuilt UWD-compliant Intel® TBB library in <
tbb_distribution_root>\lib\<target_architecture>\vc14_uwd
.
Dynamic Linking
Layer
Library
Compatibility
Fortran interface layer
mkl_blas95_dll.lib
mkl_lapack95_dll.lib
Not applicable
Interface layer
mkl_intel_c_dll.lib (cdecl)
See in the compatibility table above.
Threading layer
mkl_sequential_dll.lib
mkl_tbb_thread_dll.lib
mkl_intel_thread_dll.lib (OpenMP)
See in the compatibility table above.
Computational layer
mkl_core_dll.lib
See in the compatibility table above.
1
These are Fortran 95 wrappers for BLAS (BLAS95) and LAPACK (LAPACK95). Windows drivers are typically written in C, C++ or ASM. Fortran wrappers are UWD-compliant but not useful for building UWDs.

UWD Compliance for 64-bit Architecture (
intel64
)

These tables describe compliance between
Intel® oneAPI Math Kernel Library
and UWD on 64-bit (
intel64
) architecture for static and dynamic linked libraries.
Static Linking
Layer
Library
Compatibility
Fortran interface layer
mkl_blas95_lp64.lib
mkl_blas95_ilp64.lib
mkl_lapack95_lp64.lib
mkl_lapack95_ilp64.lib
Not applicable
Interface layer
mkl_intel_lp64.lib
mkl_intel_ilp64.lib
Threading layer
mkl_sequential.lib
mkl_tbb_thread.lib
mkl_intel_thread.lib (OpenMP)
mkl_pgi_thread.lib (PGI OpenMP)
(if using UWD Intel® TBB)
Computational layer
mkl_core.lib
MPI layer
mkl_blacs_lp64.lib
mkl_blacs_ilp64.lib
mkl_cdft_core.lib
mkl_scalapack_lp64.lib
mkl_scalapack_ilp64.lib
1
These are Fortran 95 wrappers for BLAS (BLAS95) and LAPACK (LAPACK95). Windows drivers are typically written in C, C++ or ASM. Fortran wrappers are UWD-compliant but not useful for building UWDs.
2
See Using Intel®TBB in UWP Applications. Starting with the Intel® TBB 2018 release, you can find a prebuilt UWD-compliant Intel® TBB library in <
tbb_distribution_root>\lib\<target_architecture>\vc14_uwd
.
Dynamic Linking
Layer
Library
Compatibility
Fortran interface layer
mkl_blas95_lp64.lib
mkl_blas95_ilp64.lib
mkl_lapack95_lp64.lib
mkl_lapack95_ilp64.lib
Not applicable
Interface layer
mkl_intel_lp64_dll.lib
mkl_intel_ilp64_dll.lib
See in the compatibility table above.
Threading layer
mkl_sequential_dll.lib
mkl_tbb_thread_dll.lib
mkl_intel_thread_dll.lib (OpenMP)
mkl_pgi_thread_dll.lib (PGI OpenMP)
See in the compatibility table above.
Computational layer
mkl_core_dll.lib
See in the compatibility table above.
MPI layer
mkl_blacs_lp64_dll.lib
mkl_blacs_ilp64_dll.lib
mkl_cdft_core_dll.lib
mkl_scalapack_lp64_dll.lib
mkl_scalapack_ilp64_dll.lib
See in the compatibility table above.
1
These are Fortran 95 wrappers for BLAS (BLAS95) and LAPACK (LAPACK95). Windows drivers are typically written in C, C++ or ASM. Fortran wrappers are UWD-compliant but not useful for building UWDs.

Product and Performance Information

1

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