SIMD instructions in GHC

The goal of the SIMD project is to allow GHC and Haskell libraries to take advantage of SIMD vector instructions. Please see more information on

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 wip/simd branch, e.g.,
$ git clone -b wip/simd
  1. Replace libraries/dph with the simd branch checked out from
  1. Replace libraries/vector with the simd branch checked out from
  1. Use the 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/ restore -f simd.fp
  1. Configure and build as you would normally (see Building), but choose the perf-llvm BuildFlavour in your mk/ file.

Obsolete sub-topics

Last modified 9 months ago Last modified on Jun 24, 2017 2:49:02 PM