Jul 07, 2020 \ Poplar, Software, Developer
New Graphcore Poplar SDK 1.2 released
Jul 07, 2020 \ Poplar, Software, Developer
Our Poplar® graph framework and SDK continues to go from strength to strength. Today we reached a major milestone and have open sourced our PopLibs™ Poplar Libraries on GitHub. We’ve also added many significant new features and optimisations to improve performance, accessibility and ease of use with the release of a major new software version – Poplar SDK 1.2.
Key new features include enhanced support for PyTorch and Keras, new sparsity libraries and enhanced convolutions support, the introduction of Streaming Memory – a significant optimisation to our Exchange Memory – and improved tools with v2 of PopVision™ Graph Analyser.
As our Poplar SDK matures and our user base grows, in addition to new fully stable features, we have introduced several preview experimental features with this release to meet demand. This is indicated below where appropriate.
What’s new in SDK 1.2?
Enhanced Frameworks Support:
PyTorch for IPU (preview feature)
PyTorch users can now develop and execute entire models in a PyTorch environment on the IPU. For large-scale models, multi-IPU constructs are supported. Several training and inferences examples and documentation are included.
Additional models, operator coverage and optimisations will be available in subsequent releases.
Keras for IPU
We have increased Keras functionality in TensorFlow 2. Examples are available in Targeting the IPU from TensorFlow for building Keras models in TensorFlow 2 via special TensorFlow functions:
These new functions take TensorFlow 2 Keras layers and produce a model that can be trained with the standard Keras API. IPU Keras layers can now be used to target PopLibs features such as PopLSTM, and we have added support for pipelined and single-IPU models, and training capability via the fit API with support for prediction and evaluation.
New libraries and features for improved model performance:
Optimised Convolution Libraries
The IPU architecture is naturally suited to state of the art computer vision models like ResNext and EfficientNet which offer higher levels of accuracy than traditional ResNets. We’ve introduced new and improved kernels for improving performance of convolutions-based models even further, including:
These new features enable models that are dependent on such convolutions, to achieve the highest levels of accuracy at record-breaking speed. You can find out more in our new blog Delving Deep Into Modern Computer Vision Models by Graphcore Research.
Sparsity Libraries (preview feature)
Previews of new sparsity kernel libraries are now available which allow sparse deep learning models to be run faster and more efficiently.
Dynamic sparsity library support: A new PopLibs™ library to perform sparse matrix by dense matrix multiplication (and other operations) efficiently when the sparsity pattern changes during training.
Exchange Memory Management: Introducing Streaming Memory
We have been looking forward to going public with our Exchange Memory management features for some time. These features take advantage of the IPU's existing unique hardware features and advanced architectural design with respect to memory and data access. You can find a short description of the features below and a more extensive deep dive in our new blog Intelligent Memory for Intelligent Computing.
New Remote Buffers features in Poplar 1.2 extend our Exchange Memory architecture to include Streaming Memory to complement the IPU’s extensive In-Processor Memory capacity.
PopVision™ Graph Analyser V.2
The PopVision Graph Analyser provides detailed insight into how machine intelligence applications run and perform on the IPU, helping to inform model optimisation. With our Poplar 1.2 release, we are adding over 25 new features for an even deeper performance analysis.
Key features include:
Multi-Chassis Data Parallel Training in TensorFlow & PopART (preview feature)
For large-scale training setups, we’re making a preview of multi-chassis data parallel training available in both TensorFlow and PopART using Horovod and remote buffers with host collective operations. This means that it will be possible to run multiple instances of the same TensorFlow or PopART application (potentially on different hosts) and instances will then collaborate for combined data parallel training. In future releases, we will continue to optimise this capability as demand for IPU scalability increases.
New OS Support for Ubuntu 18.04 and Centos 7.6
We continue to expand our OS support for IPU developers. With Poplar 1.2, we have included support for Ubuntu 18.04 and Centos 7.6.
Discover more Poplar Resources
Whether you’re new to the IPU or an experienced user looking to create new machine intelligence models, our Developer Portal has a wide variety of resources for programming the IPU and accelerating your models. Check out our documentation, video walkthroughs, coding tutorials and performance benchmarks to get up and running fast on the IPU.
Sign up for Graphcore updates:
Sign up below to get the latest news and updates: