[arrayfire] 44/75: Adding missing evals in cpu backend

Ghislain Vaillant ghisvail-guest at moszumanska.debian.org
Mon Feb 29 08:01:15 UTC 2016


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

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

commit cfe76f376f4f594a3ba340e09bd5177c44e4e72c
Author: Pavan Yalamanchili <pavan at arrayfire.com>
Date:   Mon Feb 22 12:28:48 2016 -0500

    Adding missing evals in cpu backend
---
 src/backend/cpu/histogram.cpp           | 3 ++-
 src/backend/cpu/kernel/sift_nonfree.hpp | 1 +
 src/backend/cpu/lu.cpp                  | 3 +++
 src/backend/cpu/nearest_neighbour.cpp   | 2 ++
 src/backend/cpu/qr.cpp                  | 3 +++
 src/backend/cpu/scan.cpp                | 3 +--
 src/backend/cpu/solve.cpp               | 3 +++
 src/backend/cpu/triangle.cpp            | 1 +
 8 files changed, 16 insertions(+), 3 deletions(-)

diff --git a/src/backend/cpu/histogram.cpp b/src/backend/cpu/histogram.cpp
index 6aa60e5..3c30402 100644
--- a/src/backend/cpu/histogram.cpp
+++ b/src/backend/cpu/histogram.cpp
@@ -23,7 +23,8 @@ namespace cpu
 
 template<typename inType, typename outType, bool isLinear>
 Array<outType> histogram(const Array<inType> &in,
-        const unsigned &nbins, const double &minval, const double &maxval)
+                         const unsigned &nbins,
+                         const double &minval, const double &maxval)
 {
     in.eval();
 
diff --git a/src/backend/cpu/kernel/sift_nonfree.hpp b/src/backend/cpu/kernel/sift_nonfree.hpp
index c1c92a9..e7ca191 100644
--- a/src/backend/cpu/kernel/sift_nonfree.hpp
+++ b/src/backend/cpu/kernel/sift_nonfree.hpp
@@ -969,6 +969,7 @@ unsigned sift_impl(Array<float>& x, Array<float>& y, Array<float>& score,
                    const bool compute_GLOH)
 {
     in.eval();
+    getQueue().sync();
     af::dim4 idims = in.dims();
 
     const unsigned min_dim = (double_input) ? min(idims[0]*2, idims[1]*2)
diff --git a/src/backend/cpu/lu.cpp b/src/backend/cpu/lu.cpp
index 265fdfa..24ca4ac 100644
--- a/src/backend/cpu/lu.cpp
+++ b/src/backend/cpu/lu.cpp
@@ -44,6 +44,9 @@ LU_FUNC(getrf , cdouble, z)
 template<typename T>
 void lu(Array<T> &lower, Array<T> &upper, Array<int> &pivot, const Array<T> &in)
 {
+    lower.eval();
+    upper.eval();
+    pivot.eval();
     in.eval();
 
     dim4 iDims = in.dims();
diff --git a/src/backend/cpu/nearest_neighbour.cpp b/src/backend/cpu/nearest_neighbour.cpp
index f1daba7..17e892f 100644
--- a/src/backend/cpu/nearest_neighbour.cpp
+++ b/src/backend/cpu/nearest_neighbour.cpp
@@ -31,6 +31,8 @@ void nearest_neighbour(Array<uint>& idx, Array<To>& dist,
         CPU_NOT_SUPPORTED();
     }
 
+    idx.eval();
+    dist.eval();
     query.eval();
     train.eval();
 
diff --git a/src/backend/cpu/qr.cpp b/src/backend/cpu/qr.cpp
index 34a39f6..f8dbfa2 100644
--- a/src/backend/cpu/qr.cpp
+++ b/src/backend/cpu/qr.cpp
@@ -59,6 +59,9 @@ GQR_FUNC(gqr , cdouble, zungqr)
 template<typename T>
 void qr(Array<T> &q, Array<T> &r, Array<T> &t, const Array<T> &in)
 {
+    q.eval();
+    r.eval();
+    t.eval();
     in.eval();
 
     dim4 iDims = in.dims();
diff --git a/src/backend/cpu/scan.cpp b/src/backend/cpu/scan.cpp
index 08431f8..78de414 100644
--- a/src/backend/cpu/scan.cpp
+++ b/src/backend/cpu/scan.cpp
@@ -27,8 +27,7 @@ template<af_op_t op, typename Ti, typename To>
 Array<To> scan(const Array<Ti>& in, const int dim)
 {
     dim4 dims     = in.dims();
-    Array<To> out = createValueArray<To>(dims, 0);
-    out.eval();
+    Array<To> out = createEmptyArray<To>(dims);
     in.eval();
 
     switch (in.ndims()) {
diff --git a/src/backend/cpu/solve.cpp b/src/backend/cpu/solve.cpp
index 48ea4de..367afa3 100644
--- a/src/backend/cpu/solve.cpp
+++ b/src/backend/cpu/solve.cpp
@@ -96,6 +96,9 @@ Array<T> solveLU(const Array<T> &A, const Array<int> &pivot,
 template<typename T>
 Array<T> triangleSolve(const Array<T> &A, const Array<T> &b, const af_mat_prop options)
 {
+    A.eval();
+    b.eval();
+
     Array<T> B = copyArray<T>(b);
     int N      = B.dims()[0];
     int NRHS   = B.dims()[1];
diff --git a/src/backend/cpu/triangle.cpp b/src/backend/cpu/triangle.cpp
index 57f61b1..eaad1b9 100644
--- a/src/backend/cpu/triangle.cpp
+++ b/src/backend/cpu/triangle.cpp
@@ -21,6 +21,7 @@ namespace cpu
 template<typename T, bool is_upper, bool is_unit_diag>
 void triangle(Array<T> &out, const Array<T> &in)
 {
+    in.eval();
     getQueue().enqueue(kernel::triangle<T, is_upper, is_unit_diag>, out, in);
 }
 

-- 
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