These tutorials provide hands-on programming exercises to enable you to familiarise yourself with creating, running and profiling programs on the IPU. They are part of the Developer resources provided by Graphcore: https://www.graphcore.ai/developer.
Each of the tutorials contains its own README file with full instructions.
Poplar is the underlying C++ framework for developing and executing code on the Graphcore IPU. It provides a generic interface on which the other frameworks are built.
- Tutorial 1: Programs and variables
- Tutorial 2: Using PopLibs
- Tutorial 3: Writing vertex code
- Tutorial 4: Profiling output
- Tutorial 5: Matrix-vector multiplication
- Tutorial 6: Matrix-vector multiplication optimisation
Getting started with the IPU:
Exchanging data between the host and the IPU:
Debugging and analysis:
Getting started with the IPU:
Exchanging data between the host and the IPU:
Maximising compute on the IPU:
Using multiple IPUs and handling large models:
Debugging and analysis:
Running a Hugging Face model on the IPU:
PopVision is Graphcore's suite of graphical application analysis tools.
- Instrumenting applications and using the PopVision System Analyser
- Accessing profiling information with libpva
- Reading application instrumentation from PVTI files
- Profiling output with the PopVision Graph Analyser is currently included in Poplar Tutorial 4: profiling output
PopXL and popxl.addons are Graphcore frameworks which provide low level control of the IPU through an expressive Python interface designed for machine learning applications.
Improving performance and optimising throughput:
- Tutorial 3: Data Parallelism
- Tutorial 4: Pipelining
- Tutorial 5: Remote Variables
- Tutorial 6: Phased Execution
In this folder you will find explanations of how to use standard deep learning tools with the Graphcore IPU. Guides included are: