[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