[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