5.1. PopTorch
3.4.0
New features
None
Bug Fixes
Fix corner-case where model parameters with
requires_grad=Falsewere not handled correctly during training.Propagate the
requires_gradsetting for parameters that are set per-replica.
Other improvements
None
Known issues
PopTorch always uses the
tanhapproximation for GELU, even ifapproximateis set to ‘none’. (See the PyTorch documentation for torch.nn.functional.gelu and GELU).A workaround is to use a custom GELU implementation that uses the error function. See the DINO example for one approach (ERF GELU implementation and its use in the model).
Compatibility changes
None
3.3.0
New features
Added support for the following ops:
torch.nn.Mishtorch.bucketizetorch.cdisttorch.sorttorch.take_along_dimtorch.bincount
Added support for the following
torch_clusterops:radiusgridknn
Added drop-in replacements for the following
torch_clusteroperations (replace thetorch_clusterops withpoptorchops ones): *fps*nearestAdded a
condop for inference models only. This op conditionally executes one of two branches depending on the input condition.Extended the API for copying data structures to the IPU.
copyNamedBuffersToDeviceallows for a named buffer to be copied.FixedSizeCollatorcan now pad to different node and edge types.The PopTorch wheel now has dependencies on
torchvisionandtorchaudio. This will prevent upgrade to an unsupported PyTorch version when installing other third-party packages that depend ontorchvisionortorchaudio.Added support for the
largest=False`option in thetorch.topkop.Added the
compilationTimefunction to extract the total compilation time from the compiled PopTorch model.
Bug Fixes
Fixed compilation of models with
torch.norminside thefor_loopop.Fixed the
clampdtype mismatch error.torch.clampused to raise an incompatible type error.torch.varused to raise an error when an input dimension was negative. The fix converts the input negative integer to a positive integer so it can be used as an index of the input shape vector.Fixed the
torch.roundbehaviour in PopTorch to use a “round half down” method to match the behaviour in PyTorch. PopTorch previously used a “round half up” method.Fixed the Int32-Float32 op not being processed.
Other improvements
torch.compileis not supported in PopTorch. This has been documented in PyTorch for the IPU: User Guide.
Known issues
None
Compatibility changes
None