💥💻💥 A data-parallel functional programming language
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
assets Add logo to README. Jan 9, 2018
docs Better man page titles. Jan 17, 2019
examples Write this more efficiently (also now works with futhark-csopencl). Oct 25, 2018
futhark-benchmarks @ 1bdaccc Fix #699. Jan 19, 2019
futlib Fixed tabulate_3d. Oct 25, 2018
memory-block-merging/tests Make memory block merging work with the current compiler Feb 18, 2018
pkgtests Unify all the binaries into a single 'futhark' binary. Jan 16, 2019
rts More robust names for threshold parameters. Jan 18, 2019
src Multi-line errors should actually be multi-line. Jan 19, 2019
tests Fix #699. Jan 19, 2019
tools futhark-autotune: fixes for the brave new world. Jan 19, 2019
unittests Bring the tests into the brave new world. Oct 2, 2018
.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 Switch to a Stack snapshot that uses GHC 8.6. Oct 25, 2018
.travis_rsa.enc Also copy to webserver. Aug 8, 2018
CHANGELOG.md Fix #699. Jan 19, 2019
CODE_OF_CONDUCT.md Create CODE_OF_CONDUCT.md Sep 18, 2018
CONTRIBUTING.md Add CONTRIBUTING.md. Sep 18, 2018
LICENSE More HIPERFIT->DIKU renames. Apr 15, 2018
README.md Less humility. Jan 14, 2019
STYLE.md One of these functions is no more. Dec 16, 2017
Setup.hs Remove Build_futhark module. Apr 19, 2015
appveyor.yml Unify all the binaries into a single 'futhark' binary. Jan 16, 2019
package.yaml Also have a futhark-pkg wrapper. Jan 16, 2019
stack-lts-11.22.yaml Need base-prelude 1.3. Oct 2, 2018
stack-lts-12.11.yaml Switch to a Stack snapshot that uses GHC 8.6. Oct 25, 2018
stack-lts-9.2.yaml Oops. Oct 2, 2018
stack.yaml No need to stick to the older version of containers anymore. Nov 2, 2018

README.md

The Futhark Programming Language

Join the chat at https://gitter.im/futhark-lang/LobbyBuild StatusWindows build statusProject 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. The language and compiler is quite stable, and suitable for practical 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 good first issue 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.