[arrayfire] 107/284: moved fftconvolve reorder helper fn to kernel namespace
Ghislain Vaillant
ghisvail-guest at moszumanska.debian.org
Sun Feb 7 18:59:24 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 d1089f858eb15d2e74b2f63a5194ca8ab8db59a6
Author: pradeep <pradeep at arrayfire.com>
Date: Mon Dec 28 16:54:30 2015 -0500
moved fftconvolve reorder helper fn to kernel namespace
---
src/backend/cpu/fftconvolve.cpp | 32 +++-----------------------------
src/backend/cpu/kernel/fftconvolve.hpp | 29 +++++++++++++++++++++++++++++
2 files changed, 32 insertions(+), 29 deletions(-)
diff --git a/src/backend/cpu/fftconvolve.cpp b/src/backend/cpu/fftconvolve.cpp
index 2678c7b..c0a9a41 100644
--- a/src/backend/cpu/fftconvolve.cpp
+++ b/src/backend/cpu/fftconvolve.cpp
@@ -211,35 +211,9 @@ Array<T> fftconvolve(Array<T> const& signal, Array<T> const& filter,
Array<T> out = createEmptyArray<T>(oDims);
- auto reorderFunc = [=](Array<T> out, Array<convT> packed,
- const Array<T> filter, const dim_t sig_hald_d0, const dim_t fftScale,
- const dim4 sig_tmp_dims, const dim4 sig_tmp_strides,
- const dim4 filter_tmp_dims, const dim4 filter_tmp_strides) {
- T* out_ptr = out.get();
- const af::dim4 out_dims = out.dims();
- const af::dim4 out_strides = out.strides();
-
- const af::dim4 filter_dims = filter.dims();
-
- convT* packed_ptr = packed.get();
- convT* sig_tmp_ptr = packed_ptr;
- convT* filter_tmp_ptr = packed_ptr + sig_tmp_strides[3] * sig_tmp_dims[3];
-
- // Reorder the output
- if (kind == CONVOLVE_BATCH_KERNEL) {
- kernel::reorderHelper<T, convT, roundOut>(out_ptr, out_dims, out_strides,
- filter_tmp_ptr, filter_tmp_dims, filter_tmp_strides,
- filter_dims, sig_half_d0, baseDim, fftScale, expand);
- } else {
- kernel::reorderHelper<T, convT, roundOut>(out_ptr, out_dims, out_strides,
- sig_tmp_ptr, sig_tmp_dims, sig_tmp_strides,
- filter_dims, sig_half_d0, baseDim, fftScale, expand);
- }
- };
-
- getQueue().enqueue(reorderFunc, out, packed, filter, sig_half_d0, fftScale,
- sig_tmp_dims, sig_tmp_strides,
- filter_tmp_dims, filter_tmp_strides);
+ getQueue().enqueue(kernel::reorder<T, convT, roundOut, baseDim>, out, packed, filter,
+ sig_half_d0, fftScale, sig_tmp_dims, sig_tmp_strides, filter_tmp_dims,
+ filter_tmp_strides, expand, kind);
return out;
}
diff --git a/src/backend/cpu/kernel/fftconvolve.hpp b/src/backend/cpu/kernel/fftconvolve.hpp
index 6213cb2..ad586f7 100644
--- a/src/backend/cpu/kernel/fftconvolve.hpp
+++ b/src/backend/cpu/kernel/fftconvolve.hpp
@@ -223,5 +223,34 @@ void reorderHelper(To* out_ptr, const af::dim4& od, const af::dim4& os,
}
}
+template<typename T, typename convT, bool roundOut, int baseDim>
+void reorder(Array<T> out, Array<convT> packed,
+ const Array<T> filter, const dim_t sig_half_d0, const dim_t fftScale,
+ const dim4 sig_tmp_dims, const dim4 sig_tmp_strides,
+ const dim4 filter_tmp_dims, const dim4 filter_tmp_strides,
+ bool expand, ConvolveBatchKind kind)
+{
+ T* out_ptr = out.get();
+ const af::dim4 out_dims = out.dims();
+ const af::dim4 out_strides = out.strides();
+
+ const af::dim4 filter_dims = filter.dims();
+
+ convT* packed_ptr = packed.get();
+ convT* sig_tmp_ptr = packed_ptr;
+ convT* filter_tmp_ptr = packed_ptr + sig_tmp_strides[3] * sig_tmp_dims[3];
+
+ // Reorder the output
+ if (kind == CONVOLVE_BATCH_KERNEL) {
+ reorderHelper<T, convT, roundOut>(out_ptr, out_dims, out_strides,
+ filter_tmp_ptr, filter_tmp_dims, filter_tmp_strides,
+ filter_dims, sig_half_d0, baseDim, fftScale, expand);
+ } else {
+ reorderHelper<T, convT, roundOut>(out_ptr, out_dims, out_strides,
+ sig_tmp_ptr, sig_tmp_dims, sig_tmp_strides,
+ filter_dims, sig_half_d0, baseDim, fftScale, expand);
+ }
+}
+
}
}
--
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