Get the latest tech news

What it takes to add a new back end to Futhark


A high-performance and high-level purely functional data-parallel array programming language that can execute on the GPU and CPU.

For example, in the middle-end of the Futhark compiler, we initially use an IR dialect called SOACS, where parallelism is expressed using nested higher order operations quite similar to the source language. While it is true that an action can be arbitrary imperative code, in practice all of Futhark’s C-based backends (and even the Python ones) make use of significant shared infastructure to avoid having to reimplement the wheel too often. In contrast to the functional middle-end IR, which is very well defined, with type checking rules and a well-defined external syntax, Imp is a lot more ad hoc, and does not for example have a parser.

Get the Android app

Or read this on Hacker News

Read more on:

Photo of Futhark

Futhark

Photo of new back end

new back end

Related news:

News photo

NumPy-style broadcasting in Futhark