[arrayfire] 52/75: Added support for finding MKL RT on OSX for BLAS, LAPACKE, FFTW
Ghislain Vaillant
ghisvail-guest at moszumanska.debian.org
Mon Feb 29 08:01:17 UTC 2016
This is an automated email from the git hooks/post-receive script.
ghisvail-guest pushed a commit to branch dfsg-clean
in repository arrayfire.
commit d4fb656e09dd89994ae65bf643cfefe2f58f3f47
Author: Shehzan Mohammed <shehzan at arrayfire.com>
Date: Mon Feb 22 17:59:53 2016 -0500
Added support for finding MKL RT on OSX for BLAS, LAPACKE, FFTW
* Uses INTEL_MKL_ROOT as enviornment variable. Commonly /opt/intel/mkl
* If using RT, then add /opt/intel/mkl/lib and
/opt/intel/compilers_and_libraries/mac/lib/ to DYLD_LIBRARY_PATH
---
CMakeModules/FindCBLAS.cmake | 26 +++++++++++++++++---------
CMakeModules/FindFFTW.cmake | 29 ++++++++++++++++++++++++-----
CMakeModules/FindLAPACKE.cmake | 8 ++++++--
src/backend/cpu/CMakeLists.txt | 10 +++++++++-
src/backend/cuda/CMakeLists.txt | 10 +++++++++-
src/backend/opencl/CMakeLists.txt | 10 +++++++++-
6 files changed, 74 insertions(+), 19 deletions(-)
diff --git a/CMakeModules/FindCBLAS.cmake b/CMakeModules/FindCBLAS.cmake
index efef36b..db1d783 100644
--- a/CMakeModules/FindCBLAS.cmake
+++ b/CMakeModules/FindCBLAS.cmake
@@ -62,28 +62,36 @@ IF(NOT CBLAS_ROOT_DIR)
IF (ENV{CBLASDIR})
SET(CBLAS_ROOT_DIR $ENV{CBLASDIR})
IF ("${SIZE_OF_VOIDP}" EQUAL 8)
- SET(CBLAS_LIB64_DIR "${INTEL_MKL_ROOT_DIR}/lib64")
+ SET(CBLAS_LIB64_DIR "${CBLAS_ROOT_DIR}/lib64")
ELSE()
- SET(CBLAS_LIB32_DIR "${INTEL_MKL_ROOT_DIR}/lib")
+ SET(CBLAS_LIB32_DIR "${CBLAS_ROOT_DIR}/lib")
ENDIF()
ENDIF()
IF (ENV{CBLAS_ROOT_DIR})
SET(CBLAS_ROOT_DIR $ENV{CBLAS_ROOT_DIR})
IF ("${SIZE_OF_VOIDP}" EQUAL 8)
- SET(CBLAS_LIB64_DIR "${INTEL_MKL_ROOT_DIR}/lib64")
+ SET(CBLAS_LIB64_DIR "${CBLAS_ROOT_DIR}/lib64")
ELSE()
- SET(CBLAS_LIB32_DIR "${INTEL_MKL_ROOT_DIR}/lib")
+ SET(CBLAS_LIB32_DIR "${CBLAS_ROOT_DIR}/lib")
ENDIF()
ENDIF()
IF (INTEL_MKL_ROOT_DIR)
SET(CBLAS_ROOT_DIR ${INTEL_MKL_ROOT_DIR})
- IF ("${SIZE_OF_VOIDP}" EQUAL 8)
- SET(CBLAS_LIB64_DIR "${INTEL_MKL_ROOT_DIR}/lib/intel64")
- ELSE()
- SET(CBLAS_LIB32_DIR "${INTEL_MKL_ROOT_DIR}/lib/ia32")
- ENDIF()
+ IF(APPLE)
+ IF ("${SIZE_OF_VOIDP}" EQUAL 8)
+ SET(CBLAS_LIB64_DIR "${CBLAS_ROOT_DIR}/lib")
+ ELSE()
+ SET(CBLAS_LIB32_DIR "${CBLAS_ROOT_DIR}/lib")
+ ENDIF()
+ ELSE(APPLE) # Windows and Linux
+ IF ("${SIZE_OF_VOIDP}" EQUAL 8)
+ SET(CBLAS_LIB64_DIR "${CBLAS_ROOT_DIR}/lib/intel64")
+ ELSE()
+ SET(CBLAS_LIB32_DIR "${CBLAS_ROOT_DIR}/lib/ia32")
+ ENDIF()
+ ENDIF(APPLE)
ENDIF()
SET(CBLAS_INCLUDE_DIR "${CBLAS_ROOT_DIR}/include")
diff --git a/CMakeModules/FindFFTW.cmake b/CMakeModules/FindFFTW.cmake
index a725f64..3156cec 100644
--- a/CMakeModules/FindFFTW.cmake
+++ b/CMakeModules/FindFFTW.cmake
@@ -24,6 +24,25 @@ IF(NOT FFTW_ROOT AND ENV{FFTWDIR})
SET(FFTW_ROOT $ENV{FFTWDIR})
ENDIF()
+IF (NOT INTEL_MKL_ROOT_DIR)
+ SET(INTEL_MKL_ROOT_DIR $ENV{INTEL_MKL_ROOT})
+ENDIF()
+
+IF(NOT FFTW_ROOT)
+
+ IF (ENV{FFTWDIR})
+ SET(FFTW_ROOT $ENV{FFTWDIR})
+ ENDIF()
+
+ IF (ENV{FFTW_ROOT_DIR})
+ SET(FFTW_ROOT $ENV{FFTW_ROOT_DIR})
+ ENDIF()
+
+ IF (INTEL_MKL_ROOT_DIR)
+ SET(FFTW_ROOT ${INTEL_MKL_ROOT_DIR})
+ ENDIF()
+ENDIF()
+
# Check if we can use PkgConfig
FIND_PACKAGE(PkgConfig)
@@ -44,14 +63,14 @@ IF(FFTW_ROOT)
#find libs
FIND_LIBRARY(
FFTW_LIB
- NAMES "fftw3" "libfftw3-3" "fftw3-3"
+ NAMES "fftw3" "libfftw3-3" "fftw3-3" "mkl_rt"
PATHS ${FFTW_ROOT}
PATH_SUFFIXES "lib" "lib64"
NO_DEFAULT_PATH
)
FIND_LIBRARY(
FFTWF_LIB
- NAMES "fftw3f" "libfftw3f-3" "fftw3f-3"
+ NAMES "fftw3f" "libfftw3f-3" "fftw3f-3" "mkl_rt"
PATHS ${FFTW_ROOT}
PATH_SUFFIXES "lib" "lib64"
NO_DEFAULT_PATH
@@ -62,18 +81,18 @@ IF(FFTW_ROOT)
FFTW_INCLUDES
NAMES "fftw3.h"
PATHS ${FFTW_ROOT}
- PATH_SUFFIXES "include"
+ PATH_SUFFIXES "include" "include/fftw"
NO_DEFAULT_PATH
)
ELSE()
FIND_LIBRARY(
FFTW_LIB
- NAMES "fftw3"
+ NAMES "fftw3" "mkl_rt"
PATHS ${PKG_FFTW_LIBRARY_DIRS} ${LIB_INSTALL_DIR}
)
FIND_LIBRARY(
FFTWF_LIB
- NAMES "fftw3f"
+ NAMES "fftw3f" "mkl_rt"
PATHS ${PKG_FFTW_LIBRARY_DIRS} ${LIB_INSTALL_DIR}
)
FIND_PATH(
diff --git a/CMakeModules/FindLAPACKE.cmake b/CMakeModules/FindLAPACKE.cmake
index dc4a045..0732cfa 100644
--- a/CMakeModules/FindLAPACKE.cmake
+++ b/CMakeModules/FindLAPACKE.cmake
@@ -141,8 +141,12 @@ ELSE(PC_LAPACKE_FOUND)
ENDIF(LAPACKE_ROOT_DIR)
ENDIF(PC_LAPACKE_FOUND)
-SET(LAPACK_LIBRARIES ${LAPACKE_LIB} ${LAPACK_LIB})
-SET(LAPACK_INCLUDE_DIR ${LAPACKE_INCLUDES})
+IF(LAPACKE_LIB AND LAPACK_LIB)
+ SET(LAPACK_LIBRARIES ${LAPACKE_LIB} ${LAPACK_LIB})
+ENDIF()
+IF(LAPACKE_INCLUDES)
+ SET(LAPACK_INCLUDE_DIR ${LAPACKE_INCLUDES})
+ENDIF()
INCLUDE(FindPackageHandleStandardArgs)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(LAPACK DEFAULT_MSG
diff --git a/src/backend/cpu/CMakeLists.txt b/src/backend/cpu/CMakeLists.txt
index 2032f0b..9387323 100644
--- a/src/backend/cpu/CMakeLists.txt
+++ b/src/backend/cpu/CMakeLists.txt
@@ -39,7 +39,15 @@ MESSAGE(STATUS "FFTW Found ? ${FFTW_FOUND}")
MESSAGE(STATUS "FFTW Library: ${FFTW_LIBRARIES}")
IF(APPLE)
- FIND_PACKAGE(LAPACK)
+ FIND_PACKAGE(LAPACKE QUIET) # For finding MKL
+ IF(NOT LAPACK_FOUND)
+ # UNSET THE VARIABLES FROM LAPACKE
+ UNSET(LAPACKE_LIB CACHE)
+ UNSET(LAPACK_LIB CACHE)
+ UNSET(LAPACKE_INCLUDES CACHE)
+ UNSET(LAPACKE_ROOT_DIR CACHE)
+ FIND_PACKAGE(LAPACK)
+ ENDIF()
ELSE(APPLE) # Linux and Windows
FIND_PACKAGE(LAPACKE)
ENDIF(APPLE)
diff --git a/src/backend/cuda/CMakeLists.txt b/src/backend/cuda/CMakeLists.txt
index 8cecd81..ae0690d 100644
--- a/src/backend/cuda/CMakeLists.txt
+++ b/src/backend/cuda/CMakeLists.txt
@@ -102,7 +102,15 @@ ELSE(CUDA_cusolver_LIBRARY)
IF(${CUDA_LAPACK_CPU_FALLBACK})
## Try to use CPU side lapack
IF(APPLE)
- FIND_PACKAGE(LAPACK)
+ FIND_PACKAGE(LAPACKE QUIET) # For finding MKL
+ IF(NOT LAPACK_FOUND)
+ # UNSET THE VARIABLES FROM LAPACKE
+ UNSET(LAPACKE_LIB CACHE)
+ UNSET(LAPACK_LIB CACHE)
+ UNSET(LAPACKE_INCLUDES CACHE)
+ UNSET(LAPACKE_ROOT_DIR CACHE)
+ FIND_PACKAGE(LAPACK)
+ ENDIF()
ELSE(APPLE) # Linux and Windows
FIND_PACKAGE(LAPACKE)
ENDIF(APPLE)
diff --git a/src/backend/opencl/CMakeLists.txt b/src/backend/opencl/CMakeLists.txt
index ce45c4b..bbe430d 100644
--- a/src/backend/opencl/CMakeLists.txt
+++ b/src/backend/opencl/CMakeLists.txt
@@ -21,7 +21,15 @@ ELSE(USE_OPENCL_MKL)
ENDIF()
IF(APPLE)
- FIND_PACKAGE(LAPACK)
+ FIND_PACKAGE(LAPACKE QUIET) # For finding MKL
+ IF(NOT LAPACK_FOUND)
+ # UNSET THE VARIABLES FROM LAPACKE
+ UNSET(LAPACKE_LIB CACHE)
+ UNSET(LAPACK_LIB CACHE)
+ UNSET(LAPACKE_INCLUDES CACHE)
+ UNSET(LAPACKE_ROOT_DIR CACHE)
+ FIND_PACKAGE(LAPACK)
+ ENDIF()
ELSE(APPLE) # Linux and Windows
FIND_PACKAGE(LAPACKE)
ENDIF(APPLE)
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-science/packages/arrayfire.git
More information about the debian-science-commits
mailing list