2. Release overview

2.1. PopTorch

Compatible with PyTorch 1.10

  • Dispatcher frontend enabled by default (replacing the tracing frontend) contributing to improved performance and fewer PopTorch-specific coding requirements.

  • Fixed BatchNorm running statistics, now using the unbiased estimator to update running_var at training time.

2.2. TensorFlow

TensorFlow 1.15.5 and TensorFlow 2.6.3

  • Extend the API for exporting models for tf.serving with the possibility of passing an optional pre- or post-processing function to be executed on the CPU as part of the exported model graph.

2.3. Keras

Keras 2.6.0

  • Add indices_are_sorted to Keras embedding layer to allow Poplar to optimise in scenarios where the given indices to look up are in order.

  • Fix support for keras.Input when calling build on a Model subclass.

2.4. TensorFlow Serving

TensorFlow Serving 1.15.0 and TensorFlow Serving 2.6.3

  • Change component readiness level from Preview to GA.

2.5. PopART

  • Add support for scatterreduce with max and min reductions providing additional operation coverage.

  • Support Nesterov momentum for SGD providing additional optimiser functionality.

2.6. Poplar Libraries

  • Optimisations for gather and scatter operations.

2.7. Poplar

  • Improve the formatting for the output of PrintTensor to make it easier to read, including summarisation for large tensors. The PrintTensorFmt class can be used to customise output.

  • Additional 8-bit floating point support.

  • Poplar will detect mismatches between graph construction and runtime Poplar options. Mismatches that will have a functional impact will throw an error, otherwise it is reported as a warning.

2.8. Graphcore communication library (GCL)

  • The GCL option syncful.useForwardingToSupportStridedGroups=auto is now exposed externally.

2.9. PopRun and PopDist

  • Add debug mode to PopRun. Add --debug on the command line for advanced diagnostics.

  • Host SSH keys for multi-node systems should be automatically populated for all users. This is supported by the ability to forward the SSH key to the hosts specified.

  • Eliminate the need for passing of IP addresses/hostnames to PopRun. Host names can be read from a file.

2.10. PopVision analysis library (libpva)

  • Add information about the location in the source code where a debug context was created.

  • Add support for compute set debug contexts.

  • Improve performance and bug fixes for reading PopVision Trace Information files.

2.11. PopEF

  • General popef_dump improvements for output formatting and readability and to allow data filtering.

  • Add remote buffers support.

  • Add ModelBuilder Python bindings.

2.12. Model Runtime

  • Initial publication of API documentation and user guide for the Model Runtime library used by the Poplar Triton Backend and Graphcore’s version of TensorFlow Serving.

2.13. Poplar Triton Backend

  • Change component readiness level from Preview to GA.

  • Add handling of directories to model files stored in config.

2.14. Driver and utilities

  • IPUoF client: Add get_contiguous_remote_buffer() to decrease host memory usage.