wiki:SIMD

The goal of the SIMD project is to allow GHC and Haskell libraries to take advantage of SIMD vector instructions. Please see the proposed design and the current implementation status for further details.

Building the SIMD branch

SIMD support currently requires a version of ghc built from the simd branch. Vectors primops only work when compiling with -fllvm. You will also need patched versions of the dph and vector libraries. Here are the steps to get the SIMD branch up and running.

  1. Set up a ghc tree as you normally would. See Building/GettingTheSources. Be sure to checkout out the simd branch, e.g.,
$ git clone -b simd http://git.haskell.org/ghc.git
  1. Replace libraries/dph with the simd branch checked out from git@github.com:mainland/dph.git.
  1. Replace libraries/vector with the simd branch checked out from git@github.com:mainland/vector.git.
  1. Use the fingerprint.py script to set your repository state to match the simd branch. The fingerint file is located in the github repository mainland/ghc-simd-test here.
$ ./utils/fingerprint/fingerprint.py restore -f simd.fp
  1. Configure and build as you would normally (see Building), but choose the perf-llvm BuildFlavour in your mk/build.mk file.

Obsolete sub-topics

Last modified 8 months ago Last modified on Aug 19, 2013 9:47:39 PM