Optimum documentation

Optimum Graphcore

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Optimum Graphcore

πŸ€— Optimum Graphcore is the interface between the πŸ€— Transformers library and Graphcore IPUs. It provides a set of tools enabling model parallelization and loading on IPUs, training and fine-tuning on all the tasks already supported by Transformers while being compatible with the Hugging Face Hub and every model available on it out of the box.

What is an Intelligence Processing Unit (IPU)?

Quote from the Hugging Face blog post:

IPUs are the processors that power Graphcore’s IPU-POD datacenter compute systems. This new type of processor is designed to support the very specific computational requirements of AI and machine learning. Characteristics such as fine-grained parallelism, low precision arithmetic, and the ability to handle sparsity have been built into our silicon.

Instead of adopting a SIMD/SIMT architecture like GPUs, Graphcore’s IPU uses a massively parallel, MIMD architecture, with ultra-high bandwidth memory placed adjacent to the processor cores, right on the silicon die.

This design delivers high performance and new levels of efficiency, whether running today’s most popular models, such as BERT and EfficientNet, or exploring next-generation AI applications.

Supported Models

The following model architectures and tasks are currently supported by πŸ€— Optimum Graphcore:

Pre-Training Masked LM Causal LM Seq2Seq LM (Summarization, Translation, etc) Sequence Classification Token Classification Question Answering Multiple Choice Image Classification
BART βœ… ❌ βœ… βœ… ❌
BERT βœ… βœ… ❌ βœ… βœ… βœ… βœ…
ConvNeXt βœ… βœ…
DeBERTa ❌ ❌ βœ… βœ… βœ…
DistilBERT ❌ βœ… βœ… βœ… βœ… βœ…
GPT-2 βœ… βœ… βœ… βœ…
HuBERT ❌ βœ…
LXMERT ❌ βœ…
RoBERTa βœ… βœ… ❌ βœ… βœ… βœ… βœ…
T5 βœ… βœ…
ViT ❌ βœ…
Wav2Vec2 βœ…