Test case test_minmax_nan_propagation from cxx11_tensor_expr fails on PPC
Submitted by Nishidha Panpaliya
Assigned to Nobody
Link to original bugzilla bug (#1494)
Version: 3.3 (current stable)
Operating system: Linux
Description
Testcase test_minmax_nan_propagation from unsupported/test/cxx11_tensor_expr fails on Power (ppc64le Linux) with following error -
[root@4614895ff275 test]# ./cxx11_tensor_expr
Initializing random number generator with seed 1514789803
Repeating each test 10 times
For tensor of size: 1 NaN compared to 0 outputs:
nan
For tensor of size: 2 NaN compared to 0 outputs:
nan nan
For tensor of size: 3 NaN compared to 0 outputs:
nan nan nan
For tensor of size: 4 NaN compared to 0 outputs:
0
Test test_minmax_nan_propagation() failed in /root/.cache/bazel/_bazel_root/7d6c9d3c54087a4af55f3ebce8d864ef/external/eigen_archive/unsupported/test/cxx11_tensor_expr.cpp (320)
(numext::isnan)(vec_res(i))
For tensors of size 1, 2 and 3 containing NaNs, when compared to zero returns nan as expected. However when the size of tensor starts increasing after 3, it starts giving zero. This behavior is weird.
On x86, it consistently returns NaN for any sized tensor.
This functionality although marked as unsupported on Eigen but is used by tensorflow and is covered by tensorflow's test case for Relu operator (which uses maximum operator).
I found an existing merged PR of Eigen addressing this issue on x86 http://eigen.tuxfamily.org/bz/show_bug.cgi?id=1373. Referring that I tried making similar change in Altivec related PacketMath.h but no luck.
In context of tensorflow, there is an issue logged for tensorflow's test case https://github.com/tensorflow/tensorflow/issues/11603 where I've put my findings about vec_max function on PPC and its behavior.
Could anyone please provide me some pointers on this?