Software Documents

Licensed Software

This software is made available under the terms of the Graphcore End User License Agreement (EULA). Please ensure you have read and accept the terms of the license before using the software.

There are release notes for each software release.

TensorFlow

User guides and API reference for the IPU implementation of TensorFlow and Keras.

Porting TensorFlow models to the IPU

Technical Note: A summary of the process of porting your TensorFlow application to the IPU.

Model parallelism with TensorFlow: sharding and pipelining

Technical Note: Exploiting the parallelism of the IPUs for your TensorFlow application.

Optimising for the IPU: Computational Graph Recompilation and Executable Switching in TensorFlow

Technical Note: Tips for managing graph compilation in TensorFlow.

Creating Custom Operations for the IPU

Technical Note: Adding custom operations to TensorFlow and other frameworks

Optimising Temporary Memory Usage for Convolutions and Matmuls on the IPU

Technical Note: Using the availableMemoryProportion for optimising temporary memory use for convolutions and matrix multiplies on the IPU.

PyTorch

PyTorch for the IPU: User Guide

User guide and API reference for PyTorch on the IPU.

Creating Custom Operations for the IPU

Technical Note: Adding custom operations to PyTorch and other frameworks

Optimising Temporary Memory Usage for Convolutions and Matmuls on the IPU

Technical Note: Using the availableMemoryProportion for optimising temporary memory use for convolutions and matrix multiplies on the IPU.

PopART

The Poplar Advanced Runtime (PopART) for importing and executing models from industry standard ML frameworks, using the ONNX format.

Creating Custom Operations for the IPU

Technical Note: Adding custom operations to PopART and other frameworks

Optimising Temporary Memory Usage for Convolutions and Matmuls on the IPU

Technical Note: Using the availableMemoryProportion for optimising temporary memory use for convolutions and matrix multiplies on the IPU.

Poplar Graph Programming Framework

Poplar and PopLibs User Guide

Information on how to use the Poplar graph programming tools to write code for the IPU.

Poplar and PopLibs API Reference

Details of the functions in the Poplar and PopLibs libraries provided in the Poplar SDK.

Optimising Temporary Memory Usage for Convolutions and Matmuls on the IPU

Technical Note: Using the availableMemoryProportion for optimising temporary memory use for convolutions and matrix multiplies on the IPU.

Running code on the IPU

PopDist and PopRun: User Guide

PopRun and PopDist support running applications across multiple IPUs.

Graphcore Command Line Tools

Monitor and control the IPU hardware (see also Supporting Tools).

Profiling and Debugging

PopVision User Guide

The documentation for the PopVision Graph Analyser and System Analyser. This information is also available as context-sensitive help in the tools.

PopVision Analysis Library (libpva) User Guide

The PopVision analysis library (libpva) can be used for programmatic analysis of Poplar profiling information.

PopVision Trace Instrumentation Library

The PopVision trace instrumentation library (libpvti) provides functions to control the capture of profiling information for the host-code of your IPU application. This data can then be explored with the PopVision System Analyser.

Open Source Software

The following software is available as open source:

See also the Examples and Tutorials.

License Agreements