|
11 | 11 | # |
12 | 12 | # Optional cache variables: |
13 | 13 | # MKL_LINK AUTO (default), static, or dynamic |
14 | | -# MKL_THREADING AUTO (default), sequential, gnu_thread, or intel_thread |
15 | 14 | # MKL_MPI AUTO (default), openmpi, intelmpi, or mpich |
16 | 15 | # |
17 | 16 |
|
@@ -59,23 +58,15 @@ if(NOT _mkl_link MATCHES "^(auto|static|dynamic)$") |
59 | 58 | message(FATAL_ERROR "MKL_LINK must be AUTO, static, or dynamic.") |
60 | 59 | endif() |
61 | 60 |
|
62 | | -if(NOT DEFINED MKL_THREADING) |
63 | | - set(MKL_THREADING AUTO CACHE STRING |
64 | | - "oneMKL threading layer: AUTO, sequential, gnu_thread, or intel_thread") |
65 | | - set_property(CACHE MKL_THREADING PROPERTY STRINGS AUTO sequential gnu_thread intel_thread) |
66 | | -endif() |
67 | | -string(TOLOWER "${MKL_THREADING}" _mkl_threading) |
68 | | -if(_mkl_threading STREQUAL "auto") |
69 | | - set(_mkl_threading sequential) |
70 | | - if(USE_OPENMP) |
71 | | - if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU") |
72 | | - set(_mkl_threading gnu_thread) |
73 | | - elseif(CMAKE_CXX_COMPILER_ID MATCHES "Intel") |
74 | | - set(_mkl_threading intel_thread) |
75 | | - endif() |
| 61 | +# Keep MKL threading internal: derive it from ABACUS OpenMP support and the |
| 62 | +# known compiler/runtime combinations. Unknown OpenMP runtimes use sequential MKL. |
| 63 | +set(_mkl_threading sequential) |
| 64 | +if(USE_OPENMP) |
| 65 | + if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU") |
| 66 | + set(_mkl_threading gnu_thread) |
| 67 | + elseif(CMAKE_CXX_COMPILER_ID MATCHES "Intel") |
| 68 | + set(_mkl_threading intel_thread) |
76 | 69 | endif() |
77 | | -elseif(NOT _mkl_threading MATCHES "^(sequential|gnu_thread|intel_thread)$") |
78 | | - message(FATAL_ERROR "MKL_THREADING must be AUTO, sequential, gnu_thread, or intel_thread.") |
79 | 70 | endif() |
80 | 71 |
|
81 | 72 | if(ENABLE_MPI) |
@@ -198,9 +189,6 @@ if(MKL_FOUND) |
198 | 189 | set(_mkl_runtime Threads::Threads ${CMAKE_DL_LIBS}) |
199 | 190 | list(APPEND _mkl_runtime m) |
200 | 191 | if(NOT _mkl_threading STREQUAL "sequential") |
201 | | - if(NOT USE_OPENMP) |
202 | | - message(FATAL_ERROR "MKL_THREADING=${_mkl_threading} requires USE_OPENMP=ON.") |
203 | | - endif() |
204 | 192 | find_package(OpenMP REQUIRED COMPONENTS CXX) |
205 | 193 | list(APPEND _mkl_runtime OpenMP::OpenMP_CXX) |
206 | 194 | endif() |
|
0 commit comments