This repository provides a comprehensive collection of optimized machine learning examples for Graphcore Intelligence Processing Units (IPUs), covering domains like NLP, Computer Vision, Speech, and GNNs. It targets researchers and developers seeking to leverage IPUs for high-performance training and inference, offering reproducible code and integration with popular ML frameworks.
How It Works
The examples are designed to run on Graphcore IPUs, utilizing the Poplar SDK. They are structured by problem domain and model, with implementations available across various frameworks including PyTorch, TensorFlow 2, Hugging Face Optimum, and PopXL. This approach allows users to easily access and adapt state-of-the-art models optimized for IPU hardware.
Quick Start & Requirements
- Installation: Requires Poplar SDK 3.2.x.
- Environment: Tested with Ubuntu 20.04 and Python 3.8.
- Resources: Users must install and enable the Poplar SDK according to their IPU system's Getting Started guide.
- Documentation: Software documentation, tutorials, and how-to videos are available.
Highlighted Details
- Extensive model coverage: NLP (BERT, GPT2, GPT-J, Bloom), Computer Vision (ResNet, EfficientNet, ViT, DINO), Speech (Conformer, wav2vec2, Whisper), GNNs, and more.
- Framework integration: Supports PyTorch, TensorFlow 2, Hugging Face Optimum, PopXL, and PaddlePaddle.
- Benchmarking tools: Includes
examples-utils
for running and reproducing performance benchmarks.
- PopVision Tools: For visualizing and optimizing model performance on IPUs.
Maintenance & Community
- Active development with regular model additions and framework updates.
- Support channels include GitHub issues, email (support@graphcore.ai), and a Slack community (#help).
- Roadmap and performance results are available on linked pages.
Licensing & Compatibility
- The top-level LICENSE file applies unless specified otherwise in subdirectories. Specific licenses for individual models are not detailed in the README.
- Compatibility for commercial use or closed-source linking is not explicitly stated.
Limitations & Caveats
- PopART applications are deprecated and removed. TensorFlow 1 applications are also deprecated.
- Specific hardware configurations (e.g., POD128/POD256) may require direct engineering support.