💥💻💥 A data-parallel functional programming language
Haskell Python C Yacc Logos Shell Other
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
assets Add logo to README. Jan 9, 2018
docs module is a keyword and default is not. Jun 6, 2018
examples Actually remove the 'rearrange' construct. Jun 4, 2018
futhark-benchmarks @ 14d0c63 futhark-benchmarks: bump Jun 8, 2018
futlib Do not use deprecated operator. Jun 4, 2018
memory-block-merging/tests Make memory block merging work with the current compiler Feb 18, 2018
rts Associate specific sizes with entry points. Jun 7, 2018
src Fix handling of `..` in `import` paths. Jun 9, 2018
tests Fix #561. Jun 6, 2018
tools added domain-specific knowledge to the auto-tuner Jun 10, 2018
unittests Make context-returns explicit for functions and branches. Nov 5, 2017
.gitignore Fix the .gitignores. Jan 5, 2018
.gitmodules Submodule configuration fix, I think. Mar 25, 2018
.travis-setup.sh Switch to proper Stackage snapshot. May 10, 2018
.travis.yml futhark-mode moved to its own repository. Jun 5, 2018
CHANGELOG.md Fix handling of `..` in `import` paths. Jun 9, 2018
LICENSE More HIPERFIT->DIKU renames. Apr 15, 2018
README.md HIPERFIT was a centre. May 30, 2018
STYLE.md One of these functions is no more. Dec 16, 2017
Setup.hs Remove Build_futhark module. Apr 19, 2015
appveyor.yml GHC 8.0.1 is too buggy, stop testing on it. Dec 31, 2017
package.yaml Prereleases should be .0. Jun 8, 2018
stack-lts-10.0.yaml Add missing stack-lts-10.0.yaml. Apr 13, 2018
stack-lts-9.2.yaml Move to new stack snapshots. Sep 2, 2017
stack.yaml Switch to proper Stackage snapshot. May 10, 2018

README.md

The Futhark Programming Language

Join the chat at https://gitter.im/futhark-lang/LobbyBuild Status Project Stats

Futhark is a purely functional data-parallel programming language. Its optimising compiler is able to compile it to typically very performant GPU code. The language and compiler is developed at DIKU at the University of Copenhagen, originally as part of the HIPERFIT centre. Although still under heavy development, Futhark is already useful for practical high-performance programming.

For more information, see the website.

Also see the compiler and language documentation and the basis library documentation.

Installation instructions here.

Usage

To compile a Futhark program to sequential C:

futhark-c prog.fut -o prog

Or maybe OpenCL:

futhark-opencl prog.fut -o prog

And then run it:

./prog < prog.input

To interpret a Futhark program:

futharki prog.fut < prog.input

Hacking

We try to make use of Github issues for organising our work. Issues tagged with newbie-friendly do not require deep knowledge of the code base.

Testing

Run the futhark-test tests to check how well we're doing. Use futhark-test -t if you're in a hurry and only want to check that all the tests type-check.