Building a Universal Windows Driver
Intel® oneAPI Math Kernel Library
- OneCore.Libfor headless applications like Nano Server.
- OneCoreUAP.Libfor a UWD.
Intel® oneAPI Math Kernel Library
This table summarizes important information about compatibility between
and UWDs.
Intel® oneAPI Math Kernel Library
Criteria
| Compatibility
|
---|---|
SDK
| 10.0.17134.0 (also called Redstone 4, RS4, version 1803) or higher
|
Architecture
|
|
Universal API sets
|
|
Threading layers
|
|
UWD Compliance
|
|
The UWD links to
using the same link line settings as drivers or executables that are not universal. See Link Line Advisor for recommended linking models.
Intel® oneAPI Math Kernel Library
UWD Compliance for 32-bit Architecture (ia32)
ia32
)These tables describe compliance between
and UWD on 32-bit (
Intel® oneAPI Math Kernel Library
ia32
) architecture for static and dynamic linked libraries.
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
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
.
Layer
| Library
| Compatibility
|
---|---|---|
Threading layer
| mkl_sequential_dll.lib mkl_tbb_thread_dll.lib mkl_intel_thread_dll.lib (OpenMP) | 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)
intel64
)These tables describe compliance between
and UWD on 64-bit (
Intel® oneAPI Math Kernel Library
intel64
) architecture for static and dynamic linked libraries.
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) | |
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
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
.
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) | |
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 |
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.