5.9. PopART

3.2.0

New features

  • Removed dependency on snap library. The related popart::PopOpx class has been removed. See Compatibility changes for more information.

  • Add support for scatter reduction mul operation.

Bug Fixes

  • Modify the PopART implementation of scatterreduce to match the PyTorch scatter_reduce implementation on the CPU.

Other improvements

  • Add support for grouped gather operations.

  • Add support for grouped scatterreduce operations.

  • Use multiUpdate instead of scatter in topk gradient implementation (improves performance for torch.max).

  • To save memory, prevent weight duplication for inference. The weight tensor can be treated as a constant for inference.

  • Add useLoopCandidateCreator for weights shared by loop operators and non-loop operators, in order to optimize the layout.

Known issues

None

Compatibility changes

  • The popart::PopOpx class has been removed. Please change your custom ops to inherit from popart::Opx instead.

3.1.0

New features

  • Added error trap if attempting to use a non-contiguous NumPy array to copy tensors off the device.

  • Added support for negative axes to the Split and Slice ops.

  • Added support for steps > 1 and steps < -1 to the Slice op.

  • Added support to the Resize op for both scales and sizes inputs (one of the two tensors is empty).

  • Added float16 support to cumsum.

  • Added support for custom transforms (experimental).

Bug Fixes

  • Fixed potential hang in device detach.

Other improvements

  • Load Poplar executable files lazily if they are named with a hash.

Known issues

None

Compatibility changes

  • The popart::PopOpx class has been marked as deprecated. Please change your custom ops to inherit from popart::Opx instead. The popart::PopOpx class will likely be removed in the next release.