Disable cuda Eigen::half vectorization on host.

All cuda `__half` functions are device-only in CUDA 9, including
conversions. Host-side conversions were added in CUDA 10.
The existing code doesn't build prior to 10.0.

All arithmetic functions are always device-only, so there's
therefore no reason to use vectorization on the host at all.

Modified the code to disable vectorization for `__half` on host,
which required also updating the `TensorReductionGpu` implementation
which previously made assumptions about available packets.
4 files changed
tree: b2b07e694bbfab6548be8dc95da5f1cb2865d041
  1. .gitlab/
  2. bench/
  3. blas/
  4. ci/
  5. cmake/
  6. debug/
  7. demos/
  8. doc/
  9. Eigen/
  10. failtest/
  11. lapack/
  12. scripts/
  13. test/
  14. unsupported/
  15. .gitignore
  16. .gitlab-ci.yml
  17. .hgeol
  18. CMakeLists.txt
  19. COPYING.APACHE
  20. COPYING.BSD
  21. COPYING.GPL
  22. COPYING.LGPL
  23. COPYING.MINPACK
  24. COPYING.MPL2
  25. COPYING.README
  26. CTestConfig.cmake
  27. CTestCustom.cmake.in
  28. eigen3.pc.in
  29. INSTALL
  30. README.md
  31. signature_of_eigen3_matrix_library
README.md

Eigen is a C++ template library for linear algebra: matrices, vectors, numerical solvers, and related algorithms.

For more information go to http://eigen.tuxfamily.org/.

For pull request, bug reports, and feature requests, go to https://gitlab.com/libeigen/eigen.