[XLA] Fix BF16 normalizer for CrossReplicaSum.
authorYuanzhong Xu <yuanzx@google.com>
Mon, 5 Mar 2018 20:54:27 +0000 (12:54 -0800)
committerTensorFlower Gardener <gardener@tensorflow.org>
Mon, 5 Mar 2018 20:59:01 +0000 (12:59 -0800)
commit84c9f71b20309029d5816091c27968564e775c70
tree37fe875e89fcb9e892b6de9e0a2490ef59e52bed
parent39e04e5d02cb98db90f1052e328c3c73718c8603
[XLA] Fix BF16 normalizer for CrossReplicaSum.

1. It may produce incorrect result when mixed precision is not supported and
BF16 is not support only for a particular operand. Then the pass may introduce
new mixed precision for an all-BF16 CRS. This is unlikely in practical
settings, but removing this constraint can enable auto-generating corner case
tests using this pass.

2. A cycle can be introduced in the tuple-shaped output output. This wasn't
caught by the test because the DFS happened to succeed. Now add verifier
explicitly.

PiperOrigin-RevId: 187908099
tensorflow/compiler/xla/service/BUILD
tensorflow/compiler/xla/service/bfloat16_normalization.cc
tensorflow/compiler/xla/service/bfloat16_normalization_test.cc