In this talk I will detail about the effort to run Julia code on the Intelligence Processing Unit (IPU), a massively parallel accelerator developed by Graphcore and powered by 1472 cores.
While Julia natively runs only on capable enough CPUs, the GPUCompiler.jl
package allows generating code for other devices where Julia itself wouldn't be able to run (for example because of memory constraints or lack of support), thus offloading specific tasks to accelerators or other dedicated hardware.
The Intelligence Processing Unit (IPU) is an accelerator for massively parallel workflows developed by Graphcore and powered by 1472 cores. The IPU is typically employed in machine-learning applications through the optimised libraries developed by Graphcore, but the flexibility of this processor makes it suitable also for many other numerical programs. Julia offers the opportunity to write high-level custom code that can be compiled down to native code for the IPU with GPUCompiler.jl
, without having to directly interface to the SDK provided by Graphcore.
In this talk I will detail about the effort, in collaboration with researchers at the Simula Research Laboratory, to use Julia code on the IPU, presenting simple benchmarks and applications involving also DifferentialEquations.jl
and Enzyme.jl
.