5.11. Graphcore Communication Library (GCL)

3.1.0

New features

None

Bug Fixes

  • Ensured that ReduceScatter always chooses the same collective method as AllGather that follows it and consumes its output.

  • Fixed the AllReduce performance glitch for 1 IPU per replica models with 90-100MB tensors.

Other improvements

  • Simplified public API for collectives.

  • Improved GCL documentation.

  • Optimized AllToAll collective on SlidingWindow-routed fabrics.

  • Allowed specifying chains of collective methods.

  • Prevent AllReduce outputs from being flagged as always-live.

Known issues

None

Compatibility changes

  • Removed support for syncless collectives. Use the default (syncful) collectives implementation instead. The option to select a collective implementation has been deprecated.

3.0.0

New features

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

    By doing through-routing over intermediate replicas, sliding window reachability is extended for certain configurations. For a replica size equal to 1, this option avoids deadlocks.

Bug Fixes

  • The broadcast method is no longer selected when the stride is greater than 1.

  • Three-phase collective operations are now scheduled properly for consecutive communication groups that span multiple ILDs.

Other improvements

  • The GCL documentation has been updated and split out into a separate document: GCL User Guide and API Reference. More detail on collective operations and logical topologies has been added.

  • Added getters to the public API.

Known issues

None

Compatibility changes

  • Removed the useSynclessCollectives option from the public API. The option was deprecated in SDK 2.6 and has now been removed.

  • Renamed libgcl_ct.so to libgcl.so. The GCL shared library was renamed which means that programs directly linking with GCL need to pass the -lgcl flag to the linker instead of -lgcl_ct.