This package allows you to interface the Intelligence Processing Unit (IPU) by Graphcore using the Julia programming language.
Disclaimer: at the moment this is package is in a proof-of-concept stage, not suitable for production usage.
The package is called IPUToolkit
because it provides different tools to interface the IPU from Julia:
- you can use functionalities in the Poplar SDK;
- you can use Julia's code generation capabilities to automatically compile native code that can be run on the IPU;
- there is a small embedded Domain-Specific Language (eDSL) to automatically generate the code of a program.
These approaches are exploratory of the functionalities, and are often limited in scope and are described in more details in the documentation.
For examples of usage of this package, see the examples/
directory of the official repository.
Here is some material that you may find useful for learning more about Julia on the IPU and trying it out yourself:
- Pluto notebook of presentation given at Graphcore and at JuliaCon in July 2023
- Talk "Julia meets the Intelligence Processing Unit" at JuliaCon 2023
- Talk "Automatic differentiation on the IPU with Enzyme.jl" at EnzymeCon 2024