This repository contains sample applications and code examples for use with Graphcore IPUs.
If you are interested in finding out more about Graphcore, including getting preview access to IPUs to run these examples, please register your interest here.
Please note we are not currently accepting pull requests or issues on this repository. If you are actively using this repository and want to report any issues, please raise a ticket through the Graphcore support portal: https://www.graphcore.ai/support.
The latest version of the documentation for the Poplar software stack, and other developer resources, is available at https://www.graphcore.ai/developer.
The code presented here requires using Poplar SDK 1.3.x
Please install and enable the Poplar SDK following the instructions in the Getting Started guide for your IPU system.
Note that for SDK 1.3 and later you no longer need to source a separate enable.sh
for the Graphcore drivers.
Unless otherwise specified by a LICENSE file in a subdirectory, the LICENSE referenced at the top level applies to the files in this repository.
Example | Link |
---|---|
BERT | code |
DeepVoice3 | code |
CNN Training (including ResNet, ResNeXt & EfficientNet | code |
CNN Inference (including ResNet, MobileNet & EfficientNet | code |
ResNext Inference | code |
Recommendation using Autoencoders | code |
Sales forecasting example | code |
Recurrent layer kernel benchmarks | code |
Constrastive Divergence VAE using MCMC methods | code |
Example reinforcement learning policy model | code |
MCMC methods example | code |
CosmoFlow example using 3D Convolutions | code |
Grouped convolution kernel benchmarks | code |
Click through rate: DIN (Deep Interest Network) | code |
The applications/
folder contains example applications written in different frameworks targeting the IPU. See the READMEs in each folder for details on how to use these applications.
The code_examples/
folder contains small code examples showing you how to use various software features when developing for IPUs. See the READMEs in each folder for details.
The tutorials/
folder contains tutorials to help you get started using the Graphcore tools. Currently, this contains:
tutorials/poplar
- A set of tutorials to introduce the Poplar framework and the Poplibs libraries.
The utils/
folder contains utilities libraries and scripts that are used across the other code examples. Currently this is split into:
utils/examples_tests
- Common Python helper functions for the repo's unit tests.utils/benchmarks
- Common Python helper functions for running benchmarks on the IPU in different frameworks.