5.9. PopART
3.3.0
New features
Added support for the
largest=falseoption in theTopKoperation.Added the
NormalizeImageop that normalises the data and pads to four channels on-device after the data has been transferred to the IPU. This can enable better performance for subsequent convolution operations.Added the
stashAllTensorsInferencePipelineoption to theSessionOptionsclass to enable all tensors to be stashed when doing inference. This may improve performance for certain use cases.Added the ability to fine-tune the auto virtual graph result with the
virtualGraphSplitRatiosoption in theSessionOptionsclass.Added the
SplineBasisandSplineWeightingops to support the PyTorch GeometricSplineConvoperator.Switched use of the deprecated
deviceIterationtodeviceIterations.
Bug Fixes
Fixed the
LoopandScanops so that any constant tensors are implicitly added into the subgraphs of these ops as inputs.Fixed the overflow in the
Clipoperator.
Other improvements
None
Known issues
None
3.2.1
New features
Added the environment variable
POPART_PRELOAD_POPEF. When this is set to “full-preload” it will cause a full sequential read of a PopEF file from the filesystem, enabling subsequent operations to be carried out on a cached file. This environment variable makes it viable to store PopEF files on S3 and have them loaded on demand when there is a cache hit.
3.2.0
New features
Removed dependency on
snaplibrary. The relatedpopart::PopOpxclass has been removed. See Compatibility changes for more information.Add support for scatter reduction
muloperation.
Bug Fixes
Modify the PopART implementation of
scatterreduceto match the PyTorchscatter_reduceimplementation on the CPU.
Other improvements
Add support for grouped
gatheroperations.Add support for grouped
scatterreduceoperations.Use
multiUpdateinstead ofscatterintopkgradient implementation (improves performance fortorch.max).To save memory, prevent weight duplication for inference. The weight tensor can be treated as a constant for inference.
Add
useLoopCandidateCreatorfor weights shared by loop operators and non-loop operators, in order to optimize the layout.
Known issues
None
Compatibility changes
The
popart::PopOpxclass has been removed. Please change your custom ops to inherit frompopart::Opxinstead.