[arrayfire] 243/284: Fixes to build with MKL when INTEL_MKL_ROOT is exported
Ghislain Vaillant
ghisvail-guest at moszumanska.debian.org
Sun Feb 7 18:59:37 UTC 2016
This is an automated email from the git hooks/post-receive script.
ghisvail-guest pushed a commit to branch debian/experimental
in repository arrayfire.
commit cc2dda092b6b12684a42837a4784b9b9bc75cc8f
Author: Pavan Yalamanchili <pavan at arrayfire.com>
Date: Thu Jan 21 18:38:03 2016 -0500
Fixes to build with MKL when INTEL_MKL_ROOT is exported
---
CMakeModules/FindCBLAS.cmake | 64 +++++++++++++++++++++++++++++++--------
CMakeModules/FindLAPACKE.cmake | 56 +++++++++++++++++++++++-----------
src/backend/cpu/CMakeLists.txt | 1 +
src/backend/opencl/CMakeLists.txt | 4 +++
4 files changed, 95 insertions(+), 30 deletions(-)
diff --git a/CMakeModules/FindCBLAS.cmake b/CMakeModules/FindCBLAS.cmake
index b0cd3bd..efef36b 100644
--- a/CMakeModules/FindCBLAS.cmake
+++ b/CMakeModules/FindCBLAS.cmake
@@ -53,19 +53,40 @@ SET(CBLAS_ROOT_DIR CACHE STRING
INCLUDE(CheckTypeSize)
CHECK_TYPE_SIZE("void*" SIZE_OF_VOIDP)
-SET(CBLAS_LIB_DIR)
+IF (NOT INTEL_MKL_ROOT_DIR)
+ SET(INTEL_MKL_ROOT_DIR $ENV{INTEL_MKL_ROOT})
+ENDIF()
-SET(CBLAS_ROOT_DIR "${INTEL_MKL_ROOT_DIR}")
+IF(NOT CBLAS_ROOT_DIR)
-IF(CBLAS_ROOT_DIR)
- IF(INTEL_MKL_ROOT_DIR)
- IF ("${SIZE_OF_VOIDP}" EQUAL 8)
- SET(CBLAS_LIB_DIR "${INTEL_MKL_ROOT_DIR}/lib/intel64")
- ELSE()
- SET(CBLAS_LIB_DIR "${INTEL_MKL_ROOT_DIR}/lib/ia32")
- ENDIF()
+ IF (ENV{CBLASDIR})
+ SET(CBLAS_ROOT_DIR $ENV{CBLASDIR})
+ IF ("${SIZE_OF_VOIDP}" EQUAL 8)
+ SET(CBLAS_LIB64_DIR "${INTEL_MKL_ROOT_DIR}/lib64")
+ ELSE()
+ SET(CBLAS_LIB32_DIR "${INTEL_MKL_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")
+ ELSE()
+ SET(CBLAS_LIB32_DIR "${INTEL_MKL_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()
- SET(CBLAS_INCLUDE_DIR "${INTEL_MKL_ROOT_DIR}/include")
+ ENDIF()
+
+ SET(CBLAS_INCLUDE_DIR "${CBLAS_ROOT_DIR}/include")
ENDIF()
# Old CBLAS search
@@ -116,14 +137,14 @@ MACRO(CHECK_ALL_LIBRARIES
NAMES ${_library}
PATHS /usr/local/lib /usr/lib /usr/local/lib64 /usr/lib64
ENV DYLD_LIBRARY_PATH
- "{CBLAS_LIB_DIR}"
+ "${CBLAS_LIB_DIR}" "${CBLAS_LIB32_DIR}" "${CBLAS_LIB64_DIR}"
)
ELSE(APPLE)
FIND_LIBRARY(${_prefix}_${_library}_LIBRARY
NAMES ${_library}
PATHS /usr/local/lib /usr/lib /usr/local/lib64 /usr/lib64
ENV LD_LIBRARY_PATH
- "${CBLAS_LIB_DIR}"
+ "${CBLAS_LIB_DIR}" "${CBLAS_LIB32_DIR}" "${CBLAS_LIB64_DIR}"
PATH_SUFFIXES atlas
)
IF(NOT ${_prefix}_${library}_LIBRARY)
@@ -132,7 +153,7 @@ MACRO(CHECK_ALL_LIBRARIES
NAMES ${_library}
PATHS /usr/local/lib /usr/lib /usr/local/lib64 /usr/lib64
ENV LD_LIBRARY_PATH
- "${CBLAS_LIB_DIR}"
+ "${CBLAS_LIB_DIR}" "${CBLAS_LIB32_DIR}" "${CBLAS_LIB64_DIR}"
PATH_SUFFIXES atlas
)
ENDIF(NOT ${_prefix}_${library}_LIBRARY)
@@ -194,6 +215,23 @@ MACRO(CHECK_ALL_LIBRARIES
ENDIF(NOT _libraries_work)
ENDMACRO(CHECK_ALL_LIBRARIES)
+# MKL CBLAS library?
+IF(NOT CBLAS_LIBRARIES)
+ CHECK_ALL_LIBRARIES(
+ CBLAS_LIBRARIES
+ CBLAS
+ cblas_dgemm
+ ""
+ "mkl_rt"
+ "mkl_cblas.h"
+ FALSE,
+ TRUE)
+ENDIF(NOT CBLAS_LIBRARIES)
+
+IF(CBLAS_LIBRARIES)
+ SET(MKL_FOUND ON)
+ENDIF()
+
# Apple CBLAS library?
IF(NOT CBLAS_LIBRARIES)
CHECK_ALL_LIBRARIES(
diff --git a/CMakeModules/FindLAPACKE.cmake b/CMakeModules/FindLAPACKE.cmake
index 3bf8a1f..dc4a045 100644
--- a/CMakeModules/FindLAPACKE.cmake
+++ b/CMakeModules/FindLAPACKE.cmake
@@ -9,15 +9,33 @@
# LAPACK_INCLUDES ... LAPACKE include directory
#
-IF(NOT LAPACKE_ROOT AND ENV{LAPACKEDIR})
- SET(LAPACKE_ROOT $ENV{LAPACKEDIR})
+SET(LAPACKE_ROOT_DIR CACHE STRING
+ "Root directory for custom LAPACK implementation")
+
+IF (NOT INTEL_MKL_ROOT_DIR)
+ SET(INTEL_MKL_ROOT_DIR $ENV{INTEL_MKL_ROOT})
+ENDIF()
+
+IF(NOT LAPACKE_ROOT_DIR)
+
+ IF (ENV{LAPACKEDIR})
+ SET(LAPACKE_ROOT_DIR $ENV{LAPACKEDIR})
+ ENDIF()
+
+ IF (ENV{LAPACKE_ROOT_DIR_DIR})
+ SET(LAPACKE_ROOT_DIR $ENV{LAPACKE_ROOT_DIR})
+ ENDIF()
+
+ IF (INTEL_MKL_ROOT_DIR)
+ SET(LAPACKE_ROOT_DIR ${INTEL_MKL_ROOT_DIR})
+ ENDIF()
ENDIF()
# Check if we can use PkgConfig
FIND_PACKAGE(PkgConfig)
#Determine from PKG
-IF(PKG_CONFIG_FOUND AND NOT LAPACKE_ROOT)
+IF(PKG_CONFIG_FOUND AND NOT LAPACKE_ROOT_DIR)
PKG_CHECK_MODULES( PC_LAPACKE QUIET "lapacke")
ENDIF()
@@ -48,40 +66,41 @@ IF(PC_LAPACKE_FOUND)
ELSE(PC_LAPACKE_FOUND)
- IF(LAPACKE_ROOT)
+ IF(LAPACKE_ROOT_DIR)
#find libs
FIND_LIBRARY(
LAPACKE_LIB
- NAMES "lapacke" "LAPACKE" "liblapacke"
- PATHS ${LAPACKE_ROOT}
- PATH_SUFFIXES "lib" "lib64"
+ NAMES "lapacke" "LAPACKE" "liblapacke" "mkl_rt"
+ PATHS ${LAPACKE_ROOT_DIR}
+ PATH_SUFFIXES "lib" "lib64" "lib/ia32" "lib/intel64"
DOC "LAPACKE Library"
NO_DEFAULT_PATH
)
FIND_LIBRARY(
LAPACK_LIB
- NAMES "lapack" "LAPACK" "liblapack"
- PATHS ${LAPACKE_ROOT}
- PATH_SUFFIXES "lib" "lib64"
+ NAMES "lapack" "LAPACK" "liblapack" "mkl_rt"
+ PATHS ${LAPACKE_ROOT_DIR}
+ PATH_SUFFIXES "lib" "lib64" "lib/ia32" "lib/intel64"
DOC "LAPACK Library"
NO_DEFAULT_PATH
)
FIND_PATH(
LAPACKE_INCLUDES
- NAMES "lapacke.h"
- PATHS ${LAPACKE_ROOT}
+ NAMES "lapacke.h" "mkl_lapacke.h"
+ PATHS ${LAPACKE_ROOT_DIR}
PATH_SUFFIXES "include"
DOC "LAPACKE Include Directory"
NO_DEFAULT_PATH
)
-
ELSE()
FIND_LIBRARY(
LAPACKE_LIB
- NAMES "lapacke" "liblapacke" "openblas"
+ NAMES "lapacke" "liblapacke" "openblas" "mkl_rt"
PATHS
${PC_LAPACKE_LIBRARY_DIRS}
${LIB_INSTALL_DIR}
+ /opt/intel/mkl/lib/ia32
+ /opt/intel/mkl/lib/intel64
/usr/lib64
/usr/lib
/usr/local/lib64
@@ -92,10 +111,12 @@ ELSE(PC_LAPACKE_FOUND)
)
FIND_LIBRARY(
LAPACK_LIB
- NAMES "lapack" "liblapack" "openblas"
+ NAMES "lapack" "liblapack" "openblas" "mkl_rt"
PATHS
${PC_LAPACKE_LIBRARY_DIRS}
${LIB_INSTALL_DIR}
+ /opt/intel/mkl/lib/ia32
+ /opt/intel/mkl/lib/intel64
/usr/lib64
/usr/lib
/usr/local/lib64
@@ -106,17 +127,18 @@ ELSE(PC_LAPACKE_FOUND)
)
FIND_PATH(
LAPACKE_INCLUDES
- NAMES "lapacke.h"
+ NAMES "lapacke.h" "mkl_lapacke.h"
PATHS
${PC_LAPACKE_INCLUDE_DIRS}
${INCLUDE_INSTALL_DIR}
+ /opt/intel/mkl/include
/usr/include
/usr/local/include
/sw/include
/opt/local/include
DOC "LAPACKE Include Directory"
)
- ENDIF(LAPACKE_ROOT)
+ ENDIF(LAPACKE_ROOT_DIR)
ENDIF(PC_LAPACKE_FOUND)
SET(LAPACK_LIBRARIES ${LAPACKE_LIB} ${LAPACK_LIB})
diff --git a/src/backend/cpu/CMakeLists.txt b/src/backend/cpu/CMakeLists.txt
index b0ab17a..5dee6de 100644
--- a/src/backend/cpu/CMakeLists.txt
+++ b/src/backend/cpu/CMakeLists.txt
@@ -41,6 +41,7 @@ IF(NOT LAPACK_FOUND)
MESSAGE(WARNING "LAPACK not found. Functionality will be disabled")
ELSE(NOT LAPACK_FOUND)
ADD_DEFINITIONS(-DWITH_CPU_LINEAR_ALGEBRA)
+ MESSAGE(STATUS "LAPACK libraries found: ${LAPACK_LIBRARIES}")
ENDIF()
IF(NOT UNIX)
diff --git a/src/backend/opencl/CMakeLists.txt b/src/backend/opencl/CMakeLists.txt
index c9c47d0..6731c67 100644
--- a/src/backend/opencl/CMakeLists.txt
+++ b/src/backend/opencl/CMakeLists.txt
@@ -42,6 +42,10 @@ ELSE(NOT LAPACK_FOUND)
ENDIF()
ENDIF()
+IF(${MKL_FOUND})
+ ADD_DEFINITIONS(-DUSE_MKL)
+ENDIF()
+
IF(NOT UNIX)
ADD_DEFINITIONS(-DAFDLL)
ENDIF()
--
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