diff --git a/tensorflow/compiler/xla/g3doc/_book.yaml b/tensorflow/compiler/xla/g3doc/_book.yaml index e05f69b1e8b..8d217b89ae3 100644 --- a/tensorflow/compiler/xla/g3doc/_book.yaml +++ b/tensorflow/compiler/xla/g3doc/_book.yaml @@ -17,6 +17,8 @@ upper_tabs: path: /xla - title: XLA architecture path: /xla/architecture + - title: Known issues + path: /xla/known_issues - title: Broadcasting semantics path: /xla/broadcasting - title: Develop a new backend for XLA diff --git a/tensorflow/compiler/xla/g3doc/index.md b/tensorflow/compiler/xla/g3doc/index.md index 60bde306266..51d666fba9a 100644 --- a/tensorflow/compiler/xla/g3doc/index.md +++ b/tensorflow/compiler/xla/g3doc/index.md @@ -177,30 +177,6 @@ a bug to a single XLA program by using the [`replay_computation`](https://github.com/tensorflow/tensorflow/blob/master/tensorflow/compiler/xla/tools/run_hlo_module_main.cc) and iteratively running it on generated programs. -## Known Issues - -Compilation with XLA can greatly improve the performance of your programs, but -the TensorFlow interop has a number of known sharp corners. - -### TensorArray TF/XLA Interconversion - -The problem manifests itself as an error message -`Support for TensorList crossing the XLA/TF boundary is not implemented`. - -XLA supports `tf.TensorArray`. However, the _interconversion_ between TF and -XLA representations is not implemented yet. -This error often arises when the `TensorArray` is used inside the compiled -block, but the derivative is taken outside. - -Workaround: compile the outermost scope which is taking the derivative. - -### Random Number Generation - -XLA currently ignores TF seeds to random operations. This affects stateful TF -random operations, such as `tf.random.normal`, or `tf.nn.dropout`. XLA will -behave as if the compilation was seeded with a new unique seed at each run. This -limitation does not apply to stateless random ops. - ## XLA Frontends Apart from TensorFlow, XLA programs can be generated by: diff --git a/tensorflow/compiler/xla/g3doc/known_issues.md b/tensorflow/compiler/xla/g3doc/known_issues.md new file mode 100644 index 00000000000..1c03c716a02 --- /dev/null +++ b/tensorflow/compiler/xla/g3doc/known_issues.md @@ -0,0 +1,32 @@ +# Known Issues + +Compilation with XLA can greatly improve the performance of your programs, but +the TensorFlow interop has a number of known sharp corners. + +## TensorArray TF/XLA interconversion + +The problem manifests itself as an error message +`Support for TensorList crossing the XLA/TF boundary is not implemented`. + +XLA supports `tf.TensorArray`. However, the _interconversion_ between TF and +XLA representations is not implemented yet. +This error often arises when the `TensorArray` is used inside the compiled +block, but the derivative is taken outside. + +Workaround: compile the outermost scope which is taking the derivative. + +## Dynamic `tf.TensorArray` is not supported + +Writes into `tf.TensorArray(..., dynamic_size=True)` are not compilable with +XLA, as such writes require an unknown number of reallocations when the array +exceeds the original bound. + +Workaround: provide a statically known bound to your arrays. + +## Random number generation + +XLA currently ignores TF seeds to random operations. This affects stateful TF +random operations, such as `tf.random.normal`, or `tf.nn.dropout`. XLA will +behave as if the compilation was seeded with a new unique seed at each run. This +limitation does not apply to stateless random ops. +