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_function
no longer causes compilation errors.To improve I/O performance for most use cases the default
prefetch_depth
for 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_ops
module which provides within replica variants of all gather, all reduce and reduce scatter operations.Added
optimise_latency
option toIPUInfeedQueue
andIPUOutfeedQueue
, which when enabled can speedup small data transfers.Expanded interface for
ipu.ops.reduce_scatter
andipu.ops.all_gather
to support multiple inputs in a single operation.Improved integration with TensorBoard for TensorFlow 2 Keras models.
Added support for passing
tf.function
toipu.application_compile_op.experimental_application_compile_op
in TensorFlow 2.Added
ipu.control_flow_ops.barrier
for 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
.