[arrayfire] 22/29: Fixes for building without lapack

Ghislain Vaillant ghisvail-guest at moszumanska.debian.org
Mon Oct 19 17:48:54 UTC 2015


This is an automated email from the git hooks/post-receive script.

ghisvail-guest pushed a commit to branch master
in repository arrayfire.

commit f944c753430334ecd24ab3ba8db664a72869c5a5
Author: Shehzan Mohammed <shehzan at arrayfire.com>
Date:   Mon Oct 12 18:21:19 2015 -0400

    Fixes for building without lapack
---
 src/backend/cpu/CMakeLists.txt    |  5 ++++-
 src/backend/opencl/CMakeLists.txt | 26 +++++++++++++++++---------
 src/backend/opencl/svd.cpp        | 20 ++++++++++++++++++--
 3 files changed, 39 insertions(+), 12 deletions(-)

diff --git a/src/backend/cpu/CMakeLists.txt b/src/backend/cpu/CMakeLists.txt
index ab1e0a6..6ab6624 100644
--- a/src/backend/cpu/CMakeLists.txt
+++ b/src/backend/cpu/CMakeLists.txt
@@ -52,9 +52,12 @@ INCLUDE_DIRECTORIES(
     "${CMAKE_SOURCE_DIR}/src/backend/cpu"
     ${FFTW_INCLUDES}
     ${CBLAS_INCLUDE_DIR}
-    ${LAPACK_INCLUDE_DIR}
     )
 
+IF(LAPACK_FOUND)
+    INCLUDE_DIRECTORIES(${LAPACK_INCLUDE_DIR})
+ENDIF()
+
 FILE(GLOB cpu_headers
     "*.hpp"
     "*.h")
diff --git a/src/backend/opencl/CMakeLists.txt b/src/backend/opencl/CMakeLists.txt
index 222d804..86ba1b2 100644
--- a/src/backend/opencl/CMakeLists.txt
+++ b/src/backend/opencl/CMakeLists.txt
@@ -91,8 +91,10 @@ INCLUDE_DIRECTORIES(
     ${Boost_INCLUDE_DIR}
     ${BoostCompute_INCLUDE_DIRS}
     ${CBLAS_INCLUDE_DIR}
-    ${LAPACK_INCLUDE_DIR}
     )
+IF(LAPACK_FOUND)
+    INCLUDE_DIRECTORIES(${LAPACK_INCLUDE_DIR})
+ENDIF()
 
 FILE(GLOB opencl_headers
   "*.hpp"
@@ -103,12 +105,6 @@ FILE(GLOB opencl_sources
     "*.cpp"
     "sort_by_key/*.cpp")
 
-FILE(GLOB magma_sources
-    "magma/*.cpp")
-
-FILE(GLOB magma_headers
-    "magma/*.h")
-
 FILE(GLOB jit_sources
     "jit/*.hpp")
 
@@ -135,8 +131,20 @@ source_group(backend\\opencl\\kernel\\cl FILES ${opencl_kernels})
 source_group(backend\\opencl\\kernel\\Sources FILES ${kernel_sources})
 source_group(backend\\opencl\\kernel\\convolve\\Headers FILES ${conv_ker_headers})
 source_group(backend\\opencl\\kernel\\convolve\\Sources FILES ${conv_ker_sources})
-source_group(backend\\opencl\\magma\\Sources FILES ${magma_sources})
-source_group(backend\\opencl\\magma\\Headers FILES ${magma_headers})
+
+IF(LAPACK_FOUND)
+    FILE(GLOB magma_sources
+        "magma/*.cpp")
+
+    FILE(GLOB magma_headers
+        "magma/*.h")
+
+    source_group(backend\\opencl\\magma\\Sources FILES ${magma_sources})
+    source_group(backend\\opencl\\magma\\Headers FILES ${magma_headers})
+ELSE()
+    SET(magma_sources)
+    SET(magma_headers)
+ENDIF()
 
 FILE(GLOB backend_headers
     "../*.hpp"
diff --git a/src/backend/opencl/svd.cpp b/src/backend/opencl/svd.cpp
index 1a9bb43dd..77f7c8a 100644
--- a/src/backend/opencl/svd.cpp
+++ b/src/backend/opencl/svd.cpp
@@ -15,11 +15,12 @@
 #include <blas.hpp>
 #include <transpose.hpp>
 
+#if defined(WITH_OPENCL_LINEAR_ALGEBRA)
+
 #include <magma/magma.h>
 #include <magma/magma_cpu_lapack.h>
 #include <magma/magma_helper.h>
 
-#if defined(WITH_OPENCL_LINEAR_ALGEBRA)
 namespace opencl
 {
 
@@ -217,8 +218,22 @@ void svd(Array<Tr> &s, Array<T> &u, Array<T> &vt, const Array<T> &in)
     }
 }
 
+#define INSTANTIATE(T, Tr)                                              \
+    template void svd<T, Tr>(Array<Tr> &s, Array<T> &u, Array<T> &vt, const Array<T> &in); \
+    template void svdInPlace<T, Tr>(Array<Tr> &s, Array<T> &u, Array<T> &vt, Array<T> &in);
+
+INSTANTIATE(float, float)
+INSTANTIATE(double, double)
+INSTANTIATE(cfloat, float)
+INSTANTIATE(cdouble, double)
+
+}
+
 #else
 
+namespace opencl
+{
+
 template<typename T, typename Tr>
 void svd(Array<Tr> &s, Array<T> &u, Array<T> &vt, const Array<T> &in)
 {
@@ -230,7 +245,6 @@ void svdInPlace(Array<Tr> &s, Array<T> &u, Array<T> &vt, Array<T> &in)
 {
     AF_ERROR("Linear Algebra is disabled on OpenCL", AF_ERR_NOT_CONFIGURED);
 }
-#endif
 
 #define INSTANTIATE(T, Tr)                                              \
     template void svd<T, Tr>(Array<Tr> &s, Array<T> &u, Array<T> &vt, const Array<T> &in); \
@@ -242,3 +256,5 @@ INSTANTIATE(cfloat, float)
 INSTANTIATE(cdouble, double)
 
 }
+
+#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