User guides, API references and technical notes for TensorFlow 2 on the IPU


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.

User guides

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

Keras with IPUs

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