5.1.1. TensorFlow changelog
2.6.0
New features
Migrated codebase from TensorFlow 2.5 to TensorFlow 2.6.
Add support for exporting models to Graphcore’s version of TensorFlow Serving. See the documentation for more details.
Bug fixes and optimisations
The Protobuf dependency issue has been addressed and manually downgrading the Protobuf version is no longer necessary.
Optimisations for loop based models (such as RNNs) to improve compile time, memory usage and runtime performance.
Optimisations for gather and scatter operations where the input tensor is a constant.
Scheduling optimisations to improve memory usage.
Wrapping Keras layers in
ipu.outlined_functionno longer causes compilation errors.To improve I/O performance for most use cases the default
prefetch_depthfor infeed queues has been changed from 1 to 3. See the documentation in Efficient IPU I/O for TensorFlow 2 and Efficient IPU I/O for TensorFlow 1 for information on the prefetch feature.
2.5.1
New features
Migrated codebase from TensorFlow 2.4 to TensorFlow 2.5.
Added efficient support for Keras Model subclasses, see the documentation for full details.
Added
ipu.ops.within_replica_opsmodule which provides within replica variants of all gather, all reduce and reduce scatter operations.Added
optimise_latencyoption toIPUInfeedQueueandIPUOutfeedQueue, which when enabled can speedup small data transfers.Expanded interface for
ipu.ops.reduce_scatterandipu.ops.all_gatherto support multiple inputs in a single operation.Improved integration with TensorBoard for TensorFlow 2 Keras models.
Added support for passing
tf.functiontoipu.application_compile_op.experimental_application_compile_opin TensorFlow 2.Added
ipu.control_flow_ops.barrierfor forcing the scheduling of operations, see the documentation for full details.
Bug fixes
Optimisations for loop based models (such as RNNs) to improve compile time, memory usage and runtime performance.
Memory usage optimisations for dynamic slices/update operations. This optimisation is on by default, but can be disabled with
IPUConfig.optimizations.enable_dynamic_slice_replacement.