Fork me on GitHub

Developer Blog

This is where we post announcements or guides that do not fit anywhere else. Blog posts are not necessarily updated when the language and compiler changes, so not all information may be up to date. If you find something that doesn't work, please notify us, and we'll fix it (if it's small) or put a notice in the blog post.

Atom feed.


Futhark 0.17.2 released

September 19, 2020

Inching towards doubling the number of bits in a size. Read more...


An unavoidable performance regression

September 1, 2020

Our generated code got a bit slower for some programs. Read more...


How Futhark implements bounds checking on the GPU

July 13, 2020

GPUs present challenges for something as common as bounds checking. Here is how we do it. Read more...


Futhark 0.16.1 released

July 7, 2020

Incremental flattening is finally on by default! Read more...


Is Futhark getting faster or slower?

July 1, 2020

A historical investigation of the performance of the Futhark compiler over time. Read more...


Attributes in Futhark

June 28, 2020

A design rationale for Futhark's attributes, a mechanism for attaching freeform metadata to expressions. Read more...


Higher-order parallel programming

May 3, 2020

An explanation of the higher-order parallel programming model used by Futhark, and why we think it is superior to simpler first-order models. Read more...


Statically linking the Futhark compiler

April 13, 2020

My experiences with placing statically linked binaries in the Futhark binary releases. Read more...


Futhark 0.15.1 released - now with size types!

March 15, 2020

Size types are here. Read more...


How we keep the lights on

February 9, 2020

An exciting tour of the various free services we leech on, as well as the dubious server setups that keep the Futhark project running. Read more...


Futhark 0.14.1 released

January 24, 2020

First release of the decade. Read more...


Design Flaws in Futhark

December 18, 2019

Futhark is imperfect, and some of its imperfections are harder to fix than others. Read more...


Futhark 0.13.1 released

November 27, 2019

Very little changed, but many bugs fixed Read more...


Beating C with Futhark running on GPU

October 25, 2019

With Futhark, you don't have to be smart to make your code run fast, you just need to be able to afford an expensive GPU. Read more...


Beginning a collection of Futhark examples

August 31, 2019

All the cool languages are writing collections of examples, so I guess we do the same and see if cargo shows up. Read more...


Futhark 0.12.1 released

August 21, 2019

Sum types! Read more...


Towards Size Types in Futhark

August 3, 2019

As is the fate of every language to come out of a university department, it is time to make the Futhark type system more complicated. Read more...


Running Futhark on the NVIDIA Jetson Nano

June 22, 2019

How to run Futhark code, and the Futhark compiler, on NVIDIAs small SoC. Read more...


Futhark 0.11.1 released

June 8, 2019

A release with few user-visible features, but significantly improved performance and memory consumption for some programs. Read more...


What is the minimal basis for Futhark?

April 10, 2019

An investigation into how much we can reduce the compiler intrinsics while still maintaining asymptotic guarantees. Read more...


Futhark 0.10.1 released

March 25, 2019

Another one of these managed to escape. Read more...


Incremental flattening for nested data parallelism on the GPU

February 18, 2019

The presentation given at PPoPP 2019 turned into a blog post. Read more...


Futhark 0.9.1 released - now with CUDA backend

February 8, 2019

The main addition in this release is a new student-developed compiler backend Read more...


Giving programmers what they want, or what they ask for

January 13, 2019

How exactly should the Futhark compiler behave when programmers use tiny arrays for convenience? Read more...


Futhark 0.8.1 released, with reflections on Advent of Code

December 25, 2018

It's a Christmas miracle! Read more...


Why Futhark (sometimes) goes wrong

December 8, 2018

The Futhark compiler will sometimes refuse to compile a program, possibly with an incomprehensible apology about some compiler limitation. In this post, I will try to explain what exactly that means, why it's not easy to fix, and how we might fix it eventually. Read more...


Futhark 0.7.1 released, now with C# backend and efficient histograms on GPU

September 21, 2018

We sure did break compatibility this time. Read more...


The Futhark Debugger

September 16, 2018

We implemented some tooling to make it easier to debug faulty Futhark programs. Read more...


Futhark 0.6.3 released

August 24, 2018

We didn't even break compatibility this time. Read more...


The Present Futhark Package Manager

August 3, 2018

We wrote a package manager for Futhark. Read more...


The Future Futhark Package Manager

July 20, 2018

It's time to write a package manager for Futhark. Read more...


Futhark 0.6.1 released

July 9, 2018

Hot off the presses, get it while the cache is still warm! Read more...


Python gotta go faster

July 5, 2018

A higher-performance way to call Futhark from Python. Read more...


Designing a Programming Language for the Desert

June 18, 2018

The design of Futhark and its assorted tools is driven by constraints based on its narrow niche. This blog post explains some of them. Read more...


Futhark 0.5.1 released

May 31, 2018

We made another one! Read more...


Futhark 0.4.0 released

April 10, 2018

We released another version of Futhark, with very large improvements to the source language (higher-order functions and type inference). Read more...


Futhark with Fangs!

April 1, 2018

The first web framework (sort of) for Futhark. Also an attempt at bringing us into compliance with Wirth's Law. Read more...


Futhark 0.3.0 released

February 2, 2018

We released another version of Futhark. This one doesn't have that many externally visible changes, but still contains some solid improvements. Read more...


How Futhark manages GPU memory

January 28, 2018

We recently changed our memory allocation strategy for code generated by the Futhark compiler. The impact was fairly dramatic. Read more...


Reflections on a PhD accidentally spent on language design

December 27, 2017

I spent over three years on researching compiler optimisations, and accidentally also designed a programming language along the way. Here are some thoughts on how that came about. Read more...


A strategy for documenting Futhark

December 5, 2017

A discussion of our plans for how to structure Futhark's current and future documentation. Read more...


Futhark 0.2.0 released

November 19, 2017

We released another version of Futhark. This post elaborates on some of the changes. Read more...


Dot Notation for Records

November 11, 2017

Futhark has switched from using an SML-style notation for accessing the fields of records, to more conventional dot notation. This post discusses why, and the challenges we encountered. Read more...


Block Comments are a Bad Idea

October 10, 2017

Futhark does not support block comments, and this post elaborates why. Read more...


Futhark 0.1.0 released

October 4, 2017

Announcement for the first ever release of the Futhark compiler. Read more...


Calling Futhark from C and Haskell

September 26, 2017

We recently taught the Futhark native code generator how to generate reusable library code. This post shows how to call the generated code directly from C, or through Haskell's FFI. Any language that has a C FFI can use the same technique. Read more...


Streaming Combinators and Extracting Flat Parallelism

June 25, 2017

The presentation given at PLDI 2017 turned into a blog post. Basic introduction to Futhark, including novel parallel combinators used for efficient sequentialisation, as well as Futhark's approach to handling nested parallelism. Read more...


Language Design Checklist for Futhark

May 23, 2017

Filling out the Language Design Checklist form for Futhark. Read more...


Syntactic Support for Roman Numerals

April 1, 2017

The motivation behind Futhark's newest syntactical addition. Read more...


Videos from FOSDEM and Lambda Days now available

March 21, 2017

Videos from recent talks on Futhark have been published. Read more...


The Futhark Record System

March 6, 2017

The design of the record system in Futhark, with some notes on the design space and why we chose what we did. Read more...


The Futhark Module System

January 25, 2017

We recently added a higher-order module system to Futhark - this posts describes how it works, and why we chose the design we did. Read more...


Futhark at LambdaDays 2017

January 15, 2017

There will be a presentation on Futhark at the Lambda Days 2017 conference. Read more...


Futhark is going to FOSDEM'17

December 28, 2016

A Futhark presentation will be given at the HPC track at FOSDEM in 2017 Read more...


Two Syntax Design Problems in Futhark and Their Resolution

December 9, 2016

A tale of two times we had to put some serious thought into details of the Futhark syntax. Read more...


A Port of Falling Turnip to Futhark

December 4, 2016

Falling Turnip is a falling-sand style physics playground implemented using Haskell and the Repa library. I ported this program to Futhark and gave it a Pygame-based frontend. Read more...


Designing a Functional Language for GPU Execution

September 3, 2016

Why Futhark has so few features. Read more...


Futhark as target language for an APL compiler

June 20, 2016

We have been experimenting with using Futhark as an optimisation and code generation backend for a research APL compiler. Read more...


Creating Interactive Futhark GUIs

April 25, 2016

Using PyGame, NumPy, and PyOpenCL to interact with Futhark programs in simple graphical user interfaces. Read more...


Using Futhark with PyOpenCL

April 15, 2016

Compiling a Futhark program into an ordinary reusable Python module with calls to PyOpenCL. Read more...