Developer Guide

Contents

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_C,INTERFACE_COMPILE_OPTIONS>) target_include_directories(myapp PUBLIC $<TARGET_PROPERTY:MKL::MKL_C,INTERFACE_INCLUDE_DIRECTORIES>) target_link_libraries(myapp PUBLIC $<LINK_ONLY:MKL::MKL_C>) 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>
Makefiles are supported on Windows, Ninja, and NMake. Other generators may work but are not guaranteed.
Ninja 1.10+ is required when using Fortran.

Product and Performance Information

1

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