We use the the Haskell Tool Stack to handle dependencies and
compilation of the Futhark compiler, so you will need to install the
stack tool. Fortunately, the stack developers provide ample
documentation about installing Stack on a multitude of operating
systems. If you’re lucky, it may even be in your local package
repository.

To get all the prerequisites for building the Futhark compiler
(including, if necessary, the appropriate version of the Haskell
compiler), run:

$ stack setup

Note that this will not install anything system-wide and will have no
effect outside the Futhark build directory. Now you can run the
following command to build the Futhark compiler, including all
dependencies:

$ stack build

The Futhark compiler and its tools will now be built. You can copy
them to your $HOME/.local/bin directory by running:

Tarballs of binary releases can be found online, but are available only for
very few platforms (as of this writing, only GNU/Linux on x86_64).

Furthermore, every day a program automatically clones the Git
repository, builds the compiler, and packages a simple tarball
containing the resulting binaries, built manpages, and a simple
Makefile for installing. The implication is that these tarballs
are not vetted in any way, nor more stable than Git HEAD at any
particular moment in time. They are provided for users who wish to
use the most recent code, but are unable to compile Futhark
themselves.

At the moment, we build such snapshots only for a single operating
system:

Futhark is available on Homebrew, and the latest release can be
installed via:

$ brew install futhark

Or you can install the unreleased development version with:

$ brew install --HEAD futhark

This has to compile from source, so it takes a little while (20-30
minutes is common).

macOS ships with one OpenCL platform and various devices. One of
these devices is always the CPU, which is not fully functional, and is
never picked by Futhark by default. You can still select it manually
with the usual mechanisms (see Executable Options), but it is
unlikely to be able to run most Futhark programs. Depending on the
system, there may also be one or more GPU devices, and Futhark will
simply pick the first one as always. On multi-GPU MacBooks, this is
is the low-power integrated GPU. It should work just fine, but you
might have better performance if you use the dedicated GPU instead.
On a Mac with an AMD GPU, this is done by passing -dAMD to the
generated Futhark executable.

While the Futhark compiler itself is easily installed on Windows via
stack (see above), it takes a little more work to make the OpenCL
and PyOpenCL backends functional. This guide was last updated on the
5th of May 2016, and is for computers using 64-bit Windows along with
CUDA 7.5 and Python 2.7 (Anaconda preferred).

Also Git for Windows is required for its Linux command line tools.
If you have not marked the option to add them to path, there are
instructions below how to do so. The GUI alternative to git,
Github Desktop is optional and does not come with the required
tools.

For a Futhark compatible C/C++ compiler, that you will also need to
install pyOpenCL later, install MingWpy. Do this using the pipinstall-ihttps://pypi.anaconda.org/carlkl/simplemingwpy
command.

Assuming you have the latest Anaconda distribution as your primary
one, it will get installed to a place such as
C:\Users\UserName\Anaconda2\share\mingwpy. The pip installation
will not add its bin or include directories to path.

To do so, open the Rapid Environment Editor and add
C:\Users\UserName\Anaconda2\share\mingwpy\bin to the system-wide
PATH variable.

If you have other MingW or GCC distributions, make sure MingWpy takes
priority by moving its entry above the other distributions. You can
also change which Python distribution is the default one using the
same trick should you need so.

If have done so correctly, typing wheregcc in the command prompt
should list the aforementioned MingWpy installation at the top or show
only it.

To finish the installation, add the
C:\Users\UserName\Anaconda2\share\mingwpy\include to the CPATH
environment variable (note: notPATH). Create the variable if
necessary.

The header files and the .dll for OpenCL that comes with the CUDA
7.5 distribution also need to be installed into MingWpy. Go to
C:\ProgramFiles\NVIDIAGPUComputingToolkit\CUDA\v7.5\include
and copy the CL directory into the MingWpy include directory.

Next, go to C:\ProgramFiles\NVIDIACorporation\OpenCL and copy
the OpenCL64.dll file into the MingWpy lib directory (it is
next to include).

The CUDA distribution also comes with the static OpenCL.lib, but
trying to use that one instead of the OpenCL64.dll will cause
programs compiled with futhark-opencl to crash, so ignore it
completely.

Now you should be able to compile futhark-opencl and run Futhark
programs on the GPU.

The following instructions are for how to setup the
futhark-pyopencl backend.

First install Mako using pipinstallmako.

Also install PyPNG using pipinstallpypng (not stricly necessary,
but some examples make use of it).

Clone the PyOpenCL repository to your hard drive. Do
this instead of downloading the zip, as the zip will not contain
some of the other repositories it links to and you will end up with
missing header files.

If you have ignored the instructions and gotten Python 3.x instead
2.7, you will have to do some extra work.

If everything went in order, pyOpenCL should be installed on your machine now.

Lastly, Pygame needs to be installed. Again, not stricly
necessary, but some examples make use of it. To do so on Windows,
download pygame-1.9.2a0-cp27-none-win_amd64.whl from here. cp27
means Python 2.7 and win_amd64 means 64-bit Windows.

Go to the directory you have downloaded the file and execute pipinstallpygame-1.9.2a0-cp27-none-win_amd64.whl from the command
line.

To run the makefiles, first setup make by going to the bin
directory of MingWpy and making a copy of
mingw32-make.exe. Then simply rename mingw32-make–Copy.exe or similar to make.exe. Now you will be able to run
the makefiles.

Also, if you have not selected to add the optional Linux command
line tools to PATH during the GitforWindows
installation, add the C:\ProgramFiles\Git\usr\bin directory
to PATH manually now.

This guide has been written off memory, so if you are having
difficulties - ask on the issues page. There might be errors in
it.