Visible to Intel only — GUID: GUID-527DC177-2228-45D4-8269-48E8699A3DBA
Getting Help and Support
What's New
Notational Conventions
Related Information
Getting Started
Structure of the Intel® oneAPI Math Kernel Library
Linking Your Application with the Intel® oneAPI Math Kernel Library
Managing Performance and Memory
Language-specific Usage Options
Obtaining Numerically Reproducible Results
Coding Tips
Managing Output
Working with the Intel® oneAPI Math Kernel Library Cluster Software
Managing Behavior of the Intel® oneAPI Math Kernel Library with Environment Variables
Configuring Your Integrated Development Environment to Link with Intel® oneAPI Math Kernel Library
Intel® oneAPI Math Kernel Library Benchmarks
Appendix A: Intel® oneAPI Math Kernel Library Language Interfaces Support
Appendix B: Support for Third-Party Interfaces
Appendix C: Directory Structure in Detail
Notices and Disclaimers
OpenMP* Threaded Functions and Problems
Functions Threaded with Intel® Threading Building Blocks
Avoiding Conflicts in the Execution Environment
Techniques to Set the Number of Threads
Setting the Number of Threads Using an OpenMP* Environment Variable
Changing the Number of OpenMP* Threads at Run Time
Using Additional Threading Control
Calling oneMKL Functions from Multi-threaded Applications
Using Intel® Hyper-Threading Technology
Managing Multi-core Performance
Managing Performance with Heterogeneous Cores
Overview of the Intel® Distribution for LINPACK* Benchmark
Contents of the Intel® Distribution for LINPACK* Benchmark
Building the Intel® Distribution for LINPACK* Benchmark for a Customized MPI Implementation
Building the Netlib HPL from Source Code
Configuring Parameters
Ease-of-use Command-line Parameters
Running the Intel® Distribution for LINPACK* Benchmark
Heterogeneous Support in the Intel® Distribution for LINPACK* Benchmark
Environment Variables
Improving Performance of Your Cluster
Visible to Intel only — GUID: GUID-527DC177-2228-45D4-8269-48E8699A3DBA
CMake Config for oneMKL
If you want to integrate oneMKL into your CMake projects, starting with the Intel® oneAPI Math Kernel Library (oneMKL) 2021.3 release, MKLConfig.cmake is provided as part of the package and installation. MKLConfig.cmake supports all oneMKL configurations, compilers, and runtimes, as the oneMKL product itself. Help/usage is provided in the top section of MKLConfig.cmake.
Example
my_test/ |_ build/ <-- Out-of-source build directory |_ CMakeLists.txt <-- User side project's CMakeLists.txt |_ app.c <-- Source file that uses oneMKL API
CMakeLists.txt
cmake_minimum_required(VERSION 3.13) enable_testing() project(oneMKL_Example LANGUAGES C) find_package(MKL CONFIG REQUIRED) #message(STATUS "${MKL_IMPORTED_TARGETS}") #Provides available list of targets based on input add_executable(myapp app.c) target_compile_options(myapp PUBLIC $<TARGET_PROPERTY:MKL::MKL,INTERFACE_COMPILE_OPTIONS>) target_include_directories(myapp PUBLIC $<TARGET_PROPERTY:MKL::MKL,INTERFACE_INCLUDE_DIRECTORIES>) target_link_libraries(myapp PUBLIC $<LINK_ONLY:MKL::MKL>) add_test(NAME mytest COMMAND myapp) if(MKL_ENV) set_tests_properties(mytest PROPERTIES ENVIRONMENT "${MKL_ENV}") endif()
Command line
# Source the compiler and runtime beforehand build$ cmake .. -DCMAKE_C_COMPILER=icc build$ cmake --build . && ctest # If MKLConfig.cmake is not located by CMake automatically, its path can be manually specified by MKL_DIR: build$ cmake .. -DCMAKE_C_COMPILER=icc -DMKL_DIR=<Full path to MKLConfig.cmake>
NOTE:
When the Ninja build system is in use, Ninja 1.10.2 or later is required for Fortran support.
Parent topic: Getting Started