diff options
author | Soumith Chintala <soumith@gmail.com> | 2016-11-18 23:37:05 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-11-18 23:37:05 +0300 |
commit | 2d75d411560df62f4ac291143f6b0f2e15378031 (patch) | |
tree | 9b4315a516593115a32b54a5191f7cab332c6ffe | |
parent | dd86d97777e3cbca33ffbb0eb8a333abe522e44e (diff) | |
parent | 6f40334e146d38834c669f511fead3d706879325 (diff) |
Merge pull request #607 from killeent/half-guard
guard random functions for half
-rw-r--r-- | lib/THC/THCTensorRandom.cu | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/lib/THC/THCTensorRandom.cu b/lib/THC/THCTensorRandom.cu index 4493fe8..08efc0a 100644 --- a/lib/THC/THCTensorRandom.cu +++ b/lib/THC/THCTensorRandom.cu @@ -218,19 +218,22 @@ __global__ void NAME(curandStateMtgp32 *state, int size, T *result, ARG1, ARG2) GENERATE_KERNEL2(generate_uniform, float, double a, double b, float, curand_uniform, x * (b-a) + a) GENERATE_KERNEL2(generate_uniform, double, double a, double b, double, curand_uniform_double, x * (b-a) + a) -GENERATE_KERNEL2(generate_uniform, half, double a, double b, float, curand_uniform, (ScalarConvert<float, half>::to(x * (b-a) + a))) GENERATE_KERNEL2(generate_normal, float, double mean, double stdv, float, curand_normal, (x * stdv) + mean) GENERATE_KERNEL2(generate_normal, double, double mean, double stdv, double, curand_normal_double, (x * stdv) + mean) -GENERATE_KERNEL2(generate_normal, half, double mean, double stdv, float, curand_normal, (ScalarConvert<float, half>::to((x * stdv) + mean))) GENERATE_KERNEL1(generate_exponential, float, double lambda, float, curand_uniform, (float)(-1. / lambda * log(1-x))) GENERATE_KERNEL1(generate_exponential, double, double lambda, double, curand_uniform_double, (double)(-1. / lambda * log(1-x))) -GENERATE_KERNEL1(generate_exponential, half, double lambda, float, curand_uniform, (ScalarConvert<float, half>::to((float)(-1. / lambda * log(1-x))))) GENERATE_KERNEL2(generate_cauchy, float, double median, double sigma, float, curand_uniform, (float)(median + sigma * tan(M_PI*(x-0.5)))) GENERATE_KERNEL2(generate_cauchy, double, double median, double sigma, double, curand_uniform_double, (double)(median + sigma * tan(M_PI*(x-0.5)))) + +#ifdef CUDA_HALF_TENSOR +GENERATE_KERNEL2(generate_uniform, half, double a, double b, float, curand_uniform, (ScalarConvert<float, half>::to(x * (b-a) + a))) +GENERATE_KERNEL2(generate_normal, half, double mean, double stdv, float, curand_normal, (ScalarConvert<float, half>::to((x * stdv) + mean))) +GENERATE_KERNEL1(generate_exponential, half, double lambda, float, curand_uniform, (ScalarConvert<float, half>::to((float)(-1. / lambda * log(1-x))))) GENERATE_KERNEL2(generate_cauchy, half, double median, double sigma, float, curand_uniform, (ScalarConvert<float, half>::to((float)(median + sigma * tan(M_PI*(x-0.5)))))) +#endif // CUDA_HALF_TENSOR #include "generic/THCTensorRandom.cu" #include "THCGenerateAllTypes.h" |