[arrayfire] 167/284: Fix bug in CUDA JIT when calling functions that return same value
Ghislain Vaillant
ghisvail-guest at moszumanska.debian.org
Sun Feb 7 18:59:30 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 ac25f5bb19c0f0db90d47576f29bfa81f6e060d6
Author: Shehzan Mohammed <shehzan at arrayfire.com>
Date: Thu Jan 7 18:15:41 2016 -0500
Fix bug in CUDA JIT when calling functions that return same value
* Such as calling conj on float
---
src/backend/cuda/JIT/numeric.cu | 13 +++++++++++++
src/backend/cuda/complex.hpp | 22 +++++++++++-----------
2 files changed, 24 insertions(+), 11 deletions(-)
diff --git a/src/backend/cuda/JIT/numeric.cu b/src/backend/cuda/JIT/numeric.cu
index 8253db6..2bcb15a 100644
--- a/src/backend/cuda/JIT/numeric.cu
+++ b/src/backend/cuda/JIT/numeric.cu
@@ -119,6 +119,19 @@ MATH_CAST(lgamma, intl , float)
MATH_CAST(lgamma, ushort, float)
MATH_CAST(lgamma, short , float)
+MATH_NOOP(noop, float)
+MATH_NOOP(noop, double)
+MATH_NOOP(noop, cfloat)
+MATH_NOOP(noop, cdouble)
+MATH_NOOP(noop, int)
+MATH_NOOP(noop, uint)
+MATH_NOOP(noop, char)
+MATH_NOOP(noop, uchar)
+MATH_NOOP(noop, uintl)
+MATH_NOOP(noop, intl)
+MATH_NOOP(noop, ushort)
+MATH_NOOP(noop, short)
+
__device__ float ___abs(cfloat a) { return cuCabsf(a); }
__device__ double ___abs(cdouble a) { return cuCabs(a); }
diff --git a/src/backend/cuda/complex.hpp b/src/backend/cuda/complex.hpp
index 82304b9..b7de74a 100644
--- a/src/backend/cuda/complex.hpp
+++ b/src/backend/cuda/complex.hpp
@@ -17,25 +17,25 @@
namespace cuda
{
- template<typename T> static const std::string cplx_name() { return "@___noop"; }
- template<> STATIC_ const std::string cplx_name<cfloat >() { return cuMangledName<float , true>("___cplx"); }
- template<> STATIC_ const std::string cplx_name<cdouble>() { return cuMangledName<double, true>("___cplx"); }
+ template<typename T> static const std::string cplx_name() { return cuMangledName<T, false>("___noop"); }
+ template<> STATIC_ const std::string cplx_name<cfloat >() { return cuMangledName<float , true>("___cplx"); }
+ template<> STATIC_ const std::string cplx_name<cdouble>() { return cuMangledName<double, true>("___cplx"); }
- template<typename T> static const std::string real_name() { return "@___noop"; }
+ template<typename T> static const std::string real_name() { return cuMangledName<T, false>("___noop"); }
template<> STATIC_ const std::string real_name<cfloat >() { return cuMangledName<cfloat , false>("___real"); }
template<> STATIC_ const std::string real_name<cdouble>() { return cuMangledName<cdouble, false>("___real"); }
- template<typename T> static const std::string imag_name() { return "@___noop"; }
+ template<typename T> static const std::string imag_name() { return cuMangledName<T, false>("___noop"); }
template<> STATIC_ const std::string imag_name<cfloat >() { return cuMangledName<cfloat , false>("___imag"); }
template<> STATIC_ const std::string imag_name<cdouble>() { return cuMangledName<cdouble, false>("___imag"); }
- template<typename T> static const std::string abs_name() { return "@___noop"; }
- template<> STATIC_ const std::string abs_name<float >() { return cuMangledName<float , false>("___abs"); }
- template<> STATIC_ const std::string abs_name<double >() { return cuMangledName<double , false>("___abs"); }
- template<> STATIC_ const std::string abs_name<cfloat >() { return cuMangledName<cfloat , false>("___abs"); }
- template<> STATIC_ const std::string abs_name<cdouble>() { return cuMangledName<cdouble, false>("___abs"); }
+ template<typename T> static const std::string abs_name() { return cuMangledName<T, false>("___noop"); }
+ template<> STATIC_ const std::string abs_name<float >() { return cuMangledName<float , false>("___abs"); }
+ template<> STATIC_ const std::string abs_name<double >() { return cuMangledName<double , false>("___abs"); }
+ template<> STATIC_ const std::string abs_name<cfloat >() { return cuMangledName<cfloat , false>("___abs"); }
+ template<> STATIC_ const std::string abs_name<cdouble>() { return cuMangledName<cdouble, false>("___abs"); }
- template<typename T> static const std::string conj_name() { return "@___noop"; }
+ template<typename T> static const std::string conj_name() { return cuMangledName<T, false>("___noop"); }
template<> STATIC_ const std::string conj_name<cfloat >() { return cuMangledName<cfloat , false>("___conj"); }
template<> STATIC_ const std::string conj_name<cdouble>() { return cuMangledName<cdouble, false>("___conj"); }
--
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