[arrayfire] 216/284: Clean up cusolver finding in cmake
Ghislain Vaillant
ghisvail-guest at moszumanska.debian.org
Sun Feb 7 18:59:35 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 f6e309bfbc9a0571ae805576acca0a4e3e0c1d9b
Author: Shehzan Mohammed <shehzan at arrayfire.com>
Date: Tue Jan 12 17:43:20 2016 -0500
Clean up cusolver finding in cmake
---
src/backend/cuda/CMakeLists.txt | 52 ++++++++++++++++++++++++-----------------
1 file changed, 30 insertions(+), 22 deletions(-)
diff --git a/src/backend/cuda/CMakeLists.txt b/src/backend/cuda/CMakeLists.txt
index 601e6c9..4c74070 100644
--- a/src/backend/cuda/CMakeLists.txt
+++ b/src/backend/cuda/CMakeLists.txt
@@ -70,7 +70,30 @@ ENDIF()
ADD_DEFINITIONS(-DAF_CUDA)
-IF(${CUDA_VERSION_MAJOR} LESS 7 OR ${CUDA_COMPUTE_53})
+# CMake 3.2 Adds CUDA_cusolver_LIBRARY variable to FindCUDA
+# Older version, use FIND_LIBRARY
+IF(CMAKE_VERSION VERSION_LESS 3.2)
+ IF(${CUDA_cusolver_LIBRARY} MATCHES " ")
+ UNSET(CUDA_cusolver_LIBRARY CACHE) # When going from higher version to lower version
+ ENDIF()
+ FIND_LIBRARY (
+ CUDA_cusolver_LIBRARY
+ NAMES "cusolver"
+ PATHS ${CUDA_TOOLKIT_ROOT_DIR}
+ PATH_SUFFIXES "lib64" "lib/x64" "lib"
+ DOC "CUDA cusolver Library"
+ NO_DEFAULT_PATH
+ )
+ENDIF(CMAKE_VERSION VERSION_LESS 3.2)
+
+IF(${CUDA_VERSION_MAJOR} LESS 7 AND CUDA_cusolver_LIBRARY)
+ UNSET(CUDA_cusolver_LIBRARY CACHE) # Failsafe when going from higher version to lower version
+ENDIF()
+
+IF(CUDA_cusolver_LIBRARY)
+ MESSAGE(STATUS "CUDA cusolver library available in CUDA Version ${CUDA_VERSION_STRING}")
+ ADD_DEFINITIONS(-DWITH_CUDA_LINEAR_ALGEBRA)
+ELSE(CUDA_cusolver_LIBRARY)
# Use CPU Lapack as fallback?
OPTION(CUDA_LAPACK_CPU_FALLBACK "Use CPU LAPACK as fallback for CUDA LAPACK when cusolver is not available" OFF)
MARK_AS_ADVANCED(CUDA_LAPACK_CPU_FALLBACK)
@@ -96,24 +119,8 @@ IF(${CUDA_VERSION_MAJOR} LESS 7 OR ${CUDA_COMPUTE_53})
ELSE()
MESSAGE(STATUS "CUDA Version ${CUDA_VERSION_STRING} does not contain cusolver library. Linear Algebra will not be available.")
ENDIF()
- IF(CMAKE_VERSION VERSION_LESS 3.2)
- SET(CUDA_cusolver_LIBRARY)
- MARK_AS_ADVANCED(CUDA_cusolver_LIBRARY)
- ENDIF(CMAKE_VERSION VERSION_LESS 3.2)
-ELSE(${CUDA_VERSION_MAJOR} LESS 7 OR ${CUDA_COMPUTE_53})
- MESSAGE(STATUS "CUDA cusolver library available in CUDA Version ${CUDA_VERSION_STRING}")
- ADD_DEFINITIONS(-DWITH_CUDA_LINEAR_ALGEBRA)
- IF(CMAKE_VERSION VERSION_LESS 3.2)
- FIND_LIBRARY(
- CUDA_cusolver_LIBRARY
- NAMES "cusolver"
- PATHS ${CUDA_TOOLKIT_ROOT_DIR}
- PATH_SUFFIXES "lib64" "lib/x64" "lib"
- DOC "CUDA cusolver Library"
- NO_DEFAULT_PATH
- )
- ENDIF(CMAKE_VERSION VERSION_LESS 3.2)
-ENDIF(${CUDA_VERSION_MAJOR} LESS 7 OR ${CUDA_COMPUTE_53})
+ UNSET(CUDA_cusolver_LIBRARY CACHE) # Failsafe when going from higher version to lower version
+ENDIF(CUDA_cusolver_LIBRARY)
INCLUDE_DIRECTORIES(
${CMAKE_INCLUDE_PATH}
@@ -310,7 +317,6 @@ ADD_DEPENDENCIES(afcuda ${ptx_targets})
TARGET_LINK_LIBRARIES(afcuda PRIVATE ${CUDA_CUBLAS_LIBRARIES}
PRIVATE ${CUDA_LIBRARIES}
- PRIVATE ${CUDA_cusolver_LIBRARY}
PRIVATE ${FreeImage_LIBS}
PRIVATE ${CUDA_CUFFT_LIBRARIES}
PRIVATE ${CUDA_NVVM_LIBRARIES}
@@ -320,8 +326,10 @@ IF(FORGE_FOUND)
TARGET_LINK_LIBRARIES(afcuda PRIVATE ${FORGE_LIBRARIES})
ENDIF()
-IF(CUDA_LAPACK_CPU_FALLBACK)
- TARGET_LINK_LIBRARIES(afcuda PRIVATE ${LAPACK_LIBRARIES})
+IF(CUDA_cusolver_LIBRARY)
+ TARGET_LINK_LIBRARIES(afcuda PRIVATE ${CUDA_cusolver_LIBRARY})
+ELSEIF(CUDA_LAPACK_CPU_FALLBACK)
+ TARGET_LINK_LIBRARIES(afcuda PRIVATE ${LAPACK_LIBRARIES})
ENDIF()
SET_TARGET_PROPERTIES(afcuda PROPERTIES
--
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