Commit 93f9caba authored by Peter Hawkins's avatar Peter Hawkins Committed by TensorFlower Gardener
Browse files

[TF:XLA] Refactor TF/XLA operator registration.

Rather than requiring an explicit registration for each (operator, backend) pair, by default register all operators for all backends, for all types supported by each backend.

As we are beginning to see out-of-tree backends, as XLA translations of operators are added to the TF/XLA bridge, per-backend explicit registration lists will become stale. Registering all operators on all backends is both less verbose and more maintainable for backend authors.

Since not all operators work on all backends, we add several constraint mechanisms:
* operators may specify type constraints that are shared across all backends.
* operators may specify a whitelist of backends on which they work. This is useful if an operator is CPU-only because of a CustomCall.
* backends may register a function that specifies operators to blacklist or whose registrations to modify. This is necessary since operator implementations cannot know the set of all out-of-tree backends.

This change also lays the ground-work for removing the list of compile-time constant inputs in const_analysis.cc. In a subsequent CL, compile-time constant inputs can be annotated on the XLA operator registration.
Change: 151724100
parent 4d35ecb8
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment