From 63fd88065526c6301569743b1cec12fd2561589f Mon Sep 17 00:00:00 2001 From: Benoit Steiner Date: Wed, 27 Apr 2016 18:10:42 -0800 Subject: Improved support for min and max on 16 bit floats when running on recent cuda gpus Updated the check numerics code to make it compatible with fp16 Change: 120980302 --- eigen.BUILD | 2 +- tensorflow/contrib/cmake/external/eigen.cmake | 4 ++-- tensorflow/core/kernels/check_numerics_op.cc | 5 ++--- tensorflow/workspace.bzl | 4 ++-- third_party/eigen3/Eigen/Cholesky | 2 +- third_party/eigen3/Eigen/Core | 2 +- third_party/eigen3/Eigen/Eigenvalues | 2 +- third_party/eigen3/Eigen/LU | 2 +- third_party/eigen3/Eigen/QR | 2 +- third_party/eigen3/unsupported/Eigen/CXX11/Tensor | 2 +- 10 files changed, 13 insertions(+), 14 deletions(-) diff --git a/eigen.BUILD b/eigen.BUILD index 6b12b8f8b6..b982e6feb1 100644 --- a/eigen.BUILD +++ b/eigen.BUILD @@ -1,6 +1,6 @@ package(default_visibility = ["//visibility:public"]) -archive_dir = "eigen-eigen-7bfd5612c330" +archive_dir = "eigen-eigen-50812b426b7c" cc_library( name = "eigen", diff --git a/tensorflow/contrib/cmake/external/eigen.cmake b/tensorflow/contrib/cmake/external/eigen.cmake index 601bebbcc2..dd771eed28 100644 --- a/tensorflow/contrib/cmake/external/eigen.cmake +++ b/tensorflow/contrib/cmake/external/eigen.cmake @@ -7,7 +7,7 @@ include (ExternalProject) -set(eigen_archive_hash "7bfd5612c330") +set(eigen_archive_hash "50812b426b7c") set(eigen_INCLUDE_DIRS ${CMAKE_CURRENT_BINARY_DIR} @@ -16,7 +16,7 @@ set(eigen_INCLUDE_DIRS ${tensorflow_source_dir}/third_party/eigen3 ) set(eigen_URL https://bitbucket.org/eigen/eigen/get/${eigen_archive_hash}.tar.gz) -set(eigen_HASH SHA256=7dd8fdfd1797f34ccff8f42c5dcb964f1f6de3385494bbf06eeafdd2b7b608f3) +set(eigen_HASH SHA256=fa95e425c379c2c7b8a49d9ef7bd0c5a8369171c987affd6dbae5de8a8911c1a) set(eigen_BUILD ${CMAKE_CURRENT_BINARY_DIR}/eigen/src/eigen) set(eigen_INSTALL ${CMAKE_CURRENT_BINARY_DIR}/eigen/install) diff --git a/tensorflow/core/kernels/check_numerics_op.cc b/tensorflow/core/kernels/check_numerics_op.cc index cc93bf36f4..0811457e15 100644 --- a/tensorflow/core/kernels/check_numerics_op.cc +++ b/tensorflow/core/kernels/check_numerics_op.cc @@ -64,11 +64,10 @@ class CheckNumericsOp : public OpKernel { // Check to see if any element of the tensor is NaN or Inf. int fp_props = std::accumulate(data, data + size, 0, [](const int& x, const T& y) { - int prop = std::fpclassify(y); int result = x; - if (prop == FP_INFINITE) { + if (Eigen::numext::isinf(y)) { result |= kInfBit; - } else if (prop == FP_NAN) { + } else if (Eigen::numext::isnan(y)) { result |= kNaNBit; } return result; diff --git a/tensorflow/workspace.bzl b/tensorflow/workspace.bzl index 991dc0b2a2..74c55fe7fc 100644 --- a/tensorflow/workspace.bzl +++ b/tensorflow/workspace.bzl @@ -13,8 +13,8 @@ def tf_workspace(path_prefix = "", tf_repo_name = ""): native.new_http_archive( name = "eigen_archive", - url = "https://bitbucket.org/eigen/eigen/get/7bfd5612c330.tar.gz", - sha256 = "7dd8fdfd1797f34ccff8f42c5dcb964f1f6de3385494bbf06eeafdd2b7b608f3", + url = "https://bitbucket.org/eigen/eigen/get/50812b426b7c.tar.gz", + sha256 = "fa95e425c379c2c7b8a49d9ef7bd0c5a8369171c987affd6dbae5de8a8911c1a", build_file = path_prefix + "eigen.BUILD", ) diff --git a/third_party/eigen3/Eigen/Cholesky b/third_party/eigen3/Eigen/Cholesky index 483bdaf70f..2c4d205219 100644 --- a/third_party/eigen3/Eigen/Cholesky +++ b/third_party/eigen3/Eigen/Cholesky @@ -1 +1 @@ -#include "eigen-eigen-7bfd5612c330/Eigen/Cholesky" +#include "eigen-eigen-50812b426b7c/Eigen/Cholesky" diff --git a/third_party/eigen3/Eigen/Core b/third_party/eigen3/Eigen/Core index 1f83147025..001c5ff52d 100644 --- a/third_party/eigen3/Eigen/Core +++ b/third_party/eigen3/Eigen/Core @@ -1 +1 @@ -#include "eigen-eigen-7bfd5612c330/Eigen/Core" +#include "eigen-eigen-50812b426b7c/Eigen/Core" diff --git a/third_party/eigen3/Eigen/Eigenvalues b/third_party/eigen3/Eigen/Eigenvalues index 212463a3fb..22487254ec 100644 --- a/third_party/eigen3/Eigen/Eigenvalues +++ b/third_party/eigen3/Eigen/Eigenvalues @@ -1 +1 @@ -#include "eigen-eigen-7bfd5612c330/Eigen/Eigenvalues" +#include "eigen-eigen-50812b426b7c/Eigen/Eigenvalues" diff --git a/third_party/eigen3/Eigen/LU b/third_party/eigen3/Eigen/LU index 88ef51dd6d..0be650f68e 100644 --- a/third_party/eigen3/Eigen/LU +++ b/third_party/eigen3/Eigen/LU @@ -1 +1 @@ -#include "eigen-eigen-7bfd5612c330/Eigen/LU" +#include "eigen-eigen-50812b426b7c/Eigen/LU" diff --git a/third_party/eigen3/Eigen/QR b/third_party/eigen3/Eigen/QR index f65f0ad04e..cbf13bc274 100644 --- a/third_party/eigen3/Eigen/QR +++ b/third_party/eigen3/Eigen/QR @@ -1 +1 @@ -#include "eigen-eigen-7bfd5612c330/Eigen/QR" +#include "eigen-eigen-50812b426b7c/Eigen/QR" diff --git a/third_party/eigen3/unsupported/Eigen/CXX11/Tensor b/third_party/eigen3/unsupported/Eigen/CXX11/Tensor index b0b20a5cdc..d404891e15 100644 --- a/third_party/eigen3/unsupported/Eigen/CXX11/Tensor +++ b/third_party/eigen3/unsupported/Eigen/CXX11/Tensor @@ -1 +1 @@ -#include "eigen-eigen-7bfd5612c330/unsupported/Eigen/CXX11/Tensor" +#include "eigen-eigen-50812b426b7c/unsupported/Eigen/CXX11/Tensor" -- cgit v1.2.3