From d880d2805f9e25b3b391be1056d45694c71ef17f Mon Sep 17 00:00:00 2001 From: evatux Date: Tue, 16 Jun 2020 09:50:20 -0700 Subject: FindBLAS: Extend search directories for MKL Even though Intel MKL typically puts the libraries under `$MKLROOT/lib/$arch_$os` some installations may still use `$MKLROOT/lib/$arch/` path. Ideally, `$arch` should be a symlink to `$arch_$os`, but sometimes the opposite happens (for instance, see Intel MKL distribution in Arch Linux [1]), and sometimes only `$arch` directory alone is present. This patch extends the search list with `$MKLROOT/lib/$arch` with lower priority than `$MKLROOT/lib/$arch_$os`, as the latter is the official path to Intel MKL libraries. It is also worth mentioning that Intel MKL Link Line Adviser [2] recommends using `$MKLROOT/lib/$arch` directory in a link line: ``` -L${MKLROOT}/lib/intel64 -Wl,--no-as-needed -lmkl_intel_lp64 -lmkl_sequential -lmkl_core -lpthread -lm -ldl ``` [1] https://www.archlinux.org/packages/community/x86_64/intel-mkl/files/ [2] https://software.intel.com/content/www/us/en/develop/articles/intel-mkl-link-line-advisor.html --- Modules/FindBLAS.cmake | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Modules/FindBLAS.cmake b/Modules/FindBLAS.cmake index 4c569b3..c5d791e 100644 --- a/Modules/FindBLAS.cmake +++ b/Modules/FindBLAS.cmake @@ -483,7 +483,9 @@ if(BLA_VENDOR MATCHES "Intel" OR BLA_VENDOR STREQUAL "All") endif() set(BLAS_mkl_LIB_PATH_SUFFIXES "compiler/lib" "compiler/lib/${BLAS_mkl_ARCH_NAME}_${BLAS_mkl_OS_NAME}" + "compiler/lib/${BLAS_mkl_ARCH_NAME}" "mkl/lib" "mkl/lib/${BLAS_mkl_ARCH_NAME}_${BLAS_mkl_OS_NAME}" + "mkl/lib/${BLAS_mkl_ARCH_NAME}" "lib/${BLAS_mkl_ARCH_NAME}_${BLAS_mkl_OS_NAME}") foreach(IT ${BLAS_SEARCH_LIBS}) -- cgit v0.12 From 8d5a07ce761a80aec54bfd84aaf5d3317f53bcd1 Mon Sep 17 00:00:00 2001 From: evatux Date: Tue, 16 Jun 2020 10:23:45 -0700 Subject: FindLAPACK: Extend search directories for MKL Even though Intel MKL typically puts the libraries under `$MKLROOT/lib/$arch_$os` some installations may still use `$MKLROOT/lib/$arch/` path. Ideally, `$arch` should be a symlink to `$arch_$os`, but sometimes the opposite happens (for instance, see Intel MKL distribution in Arch Linux [1]), and sometimes only `$arch` directory alone is present. This patch extends the search list with `$MKLROOT/lib/$arch` with lower priority than `$MKLROOT/lib/$arch_$os`, as the latter is the official path to Intel MKL libraries. It is also worth mentioning that Intel MKL Link Line Adviser [2] recommends using `$MKLROOT/lib/$arch` directory in a link line: ``` -L${MKLROOT}/lib/intel64 -Wl,--no-as-needed -lmkl_intel_lp64 -lmkl_sequential -lmkl_core -lpthread -lm -ldl ``` [1] https://www.archlinux.org/packages/community/x86_64/intel-mkl/files/ [2] https://software.intel.com/content/www/us/en/develop/articles/intel-mkl-link-line-advisor.html --- Modules/FindLAPACK.cmake | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Modules/FindLAPACK.cmake b/Modules/FindLAPACK.cmake index e275946..a18cec4 100644 --- a/Modules/FindLAPACK.cmake +++ b/Modules/FindLAPACK.cmake @@ -289,7 +289,9 @@ if(BLAS_FOUND) endif() set(LAPACK_mkl_LIB_PATH_SUFFIXES "compiler/lib" "compiler/lib/${LAPACK_mkl_ARCH_NAME}_${LAPACK_mkl_OS_NAME}" + "compiler/lib/${LAPACK_mkl_ARCH_NAME}" "mkl/lib" "mkl/lib/${LAPACK_mkl_ARCH_NAME}_${LAPACK_mkl_OS_NAME}" + "mkl/lib/${LAPACK_mkl_ARCH_NAME}" "lib/${LAPACK_mkl_ARCH_NAME}_${LAPACK_mkl_OS_NAME}") # First try empty lapack libs -- cgit v0.12