Software Documents
Licensed Software
This software is made available under the terms of the Graphcore End User License Agreement (EULA) and the Graphcore Container License Agreement. Please ensure you have read and accept the terms of the corresponding license before using the software. The Graphcore EULA applies unless indicated otherwise.
There are release notes for each software release.
PyTorch
PyTorch for the IPU: User Guide
User guide and API reference for PyTorch on the IPU
PyTorch Geometric for the IPU: User Guide
User guide and API reference for PyTorch Geometric on the IPU
PyTorch technical notes
Memory and Performance Optimisation on the IPU
Optimising high-performance machine learning models running on the IPU
Creating Custom Operations for the IPU
An overview of the steps for implementing a custom op in each of the frameworks available in the Poplar SDK
Optimising Temporary Memory Usage for Convolutions and Matmuls on the IPU
Using the “available memory proportion” option to optimise memory use or performance
TensorFlow
Warning
The versions of TensorFlow included in Poplar SDK 2.5 and earlier are not compatible with protobuf
version 4 (see TensorFlow issue #56077).
When you install a TensorFlow wheel from the Poplar SDK, you must ensure you have a compatible version of protobuf
, downgrading if necessary.
See the getting started guides for more information.
Targeting the IPU from TensorFlow 1
User guide and API reference for the IPU implementation of TensorFlow 1
Targeting the IPU from TensorFlow 2
User guide and API reference for the IPU implementation of TensorFlow 2
The Graphcore implementation of TensorFlow 2 includes Keras support for IPUs
TensorFlow technical notes
Porting TensorFlow 2 Models Quick Start
A short description of how to port TensorFlow 2 models to the IPU, including code snippets to help
Porting TensorFlow 1 models to the IPU
A practical guide to porting TensorFlow models to the IPU using the Poplar SDK.
Memory and Performance Optimisation on the IPU
Optimising high-performance machine learning models running on the IPU
Creating Custom Operations for the IPU
An overview of the steps for implementing a custom op in each of the frameworks available in the Poplar SDK
Optimising for the IPU: Computational Graph Recompilation and Executable Switching in TensorFlow
Strategies to minimise recompilation when running code on the IPU
Model Parallelism on the IPU with TensorFlow: Sharding and Pipelining
Ways of parallelising TensorFlow models on IPU hardware
Optimising Temporary Memory Usage for Convolutions and Matmuls on the IPU
Using the “available memory proportion” option to optimise memory use or performance
PopART
PopXL User Guide and API (experimental)
User Guide and API reference for working with PopXL
The Poplar Advanced Runtime (PopART) for importing and executing models using the ONNX format
PopART technical notes
Memory and Performance Optimisation on the IPU
Optimising high-performance machine learning models running on the IPU
Creating Custom Operations for the IPU
An overview of the steps for implementing a custom op in each of the frameworks available in the Poplar SDK
Optimising Temporary Memory Usage for Convolutions and Matmuls on the IPU
Using the “available memory proportion” option to optimise memory use or performance
Profiling and debugging
PopVision Graph Analyser User Guide
The Graph Analyser can be downloaded from the PopVision tools web page
PopVision System Analyser User Guide
The System Analyser can be downloaded from the PopVision tools web page
PopVision Analysis Library (libpva) User Guide
The PopVision analysis library can be used for programmatic analysis of Poplar profiling information
PopVision Trace Instrumentation Library
The PopVision trace instrumentation library provides functions to capture data used by the PopVision System Analyser
Optimisation technical notes
Memory and Performance Optimisation on the IPU
Optimising high-performance machine learning models running on the IPU
Optimising Temporary Memory Usage for Convolutions and Matmuls on the IPU
Using the “available memory proportion” option to optimise memory use or performance
Optimising for the IPU: Computational Graph Recompilation and Executable Switching in TensorFlow
Strategies to minimise recompilation when running code on the IPU
Pre-Training and Fine-Tuning BERT for the IPU
BERT-Large implementation on Graphcore IPU-POD systems, using both TensorFlow and PyTorch
Poplar graph programming framework
Information on how to use the Poplar graph programming tools to write code for the IPU
Poplar and PopLibs API Reference
Description of the classes and functions in the Poplar and PopLibs libraries
GCL User Guide and API Reference
Description of the classes and functions in the GCL library
Tile Vertex Instruction Set Architecture
Tile vertex instruction set architecture (ISA) documents for the IPU. This contains the subset of instructions used by the worker threads.
Poplar technical notes
Memory and Performance Optimisation on the IPU
Optimising high-performance machine learning models running on the IPU
Optimising Temporary Memory Usage for Convolutions and Matmuls on the IPU
Using the “available memory proportion” option to optimise memory use or performance
Open source software
TensorFlow 2 for IPU
Keras for TensorFlow 2 on the IPU
IPU TensorFlow Addons for TensorFlow 2 on the IPU
TensorFlow 1 for IPU
IPU TensorFlow Addons for TensorFlow 1 on the IPU
PopTorch
PopLibs libraries
Poprithms
A library of graph algorithms used by the ML frameworks