diff options
author | Benoit Steiner <benoit.steiner.goog@gmail.com> | 2016-02-19 10:05:59 -0800 |
---|---|---|
committer | Benoit Steiner <benoit.steiner.goog@gmail.com> | 2016-02-19 10:05:59 -0800 |
commit | 180156ba1aefceae0bd93f056e5807a83ccbb1b5 (patch) | |
tree | de29c755cead6e1d6b1c55c58f78c003bd6799f6 /unsupported/test | |
parent | 5c4901b83a3ec15988521e195abc05e804c541dc (diff) |
Added support for tensor reductions on half floats
Diffstat (limited to 'unsupported/test')
-rw-r--r-- | unsupported/test/cxx11_tensor_of_float16_cuda.cu | 23 |
1 files changed, 16 insertions, 7 deletions
diff --git a/unsupported/test/cxx11_tensor_of_float16_cuda.cu b/unsupported/test/cxx11_tensor_of_float16_cuda.cu index d3cd94cd6..5ce96a1c2 100644 --- a/unsupported/test/cxx11_tensor_of_float16_cuda.cu +++ b/unsupported/test/cxx11_tensor_of_float16_cuda.cu @@ -93,7 +93,6 @@ void test_cuda_elementwise() { gpu_device.deallocate(d_res_half); gpu_device.deallocate(d_res_float); } - /* void test_cuda_contractions() { Eigen::CudaStreamDevice stream; @@ -139,7 +138,7 @@ void test_cuda_contractions() { gpu_device.deallocate(d_float2); gpu_device.deallocate(d_res_half); gpu_device.deallocate(d_res_float); -} +}*/ void test_cuda_reductions() { @@ -183,7 +182,7 @@ void test_cuda_reductions() { gpu_device.deallocate(d_res_half); gpu_device.deallocate(d_res_float); } -*/ + #endif @@ -191,9 +190,19 @@ void test_cuda_reductions() { void test_cxx11_tensor_of_float16_cuda() { #ifdef EIGEN_HAS_CUDA_FP16 - CALL_SUBTEST_1(test_cuda_conversion()); - CALL_SUBTEST_1(test_cuda_elementwise()); -// CALL_SUBTEST_2(test_cuda_contractions()); -// CALL_SUBTEST_3(test_cuda_reductions()); + Eigen::CudaStreamDevice stream; + Eigen::GpuDevice device(&stream); + if (device.majorDeviceVersion() > 5 || + (device.majorDeviceVersion() == 5 && device.minorDeviceVersion() >= 3)) { + CALL_SUBTEST_1(test_cuda_conversion()); + CALL_SUBTEST_1(test_cuda_elementwise()); +// CALL_SUBTEST_2(test_cuda_contractions()); + CALL_SUBTEST_3(test_cuda_reductions()); + } + else { + std::cout << "Half floats require compute capability of at least 5.3. This device only supports " << device.majorDeviceVersion() << "." << device.minorDeviceVersion() << ". Skipping the test" << std::endl; + } +#else + std::cout << "Half floats are not supported by this version of cuda: skipping the test" << std::endl; #endif } |