[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