simd: simple interface to GHC's SIMD instructions

[ bsd3, library, math ] [ Propose Tags ]

SIMD (Single Instruction Multiple Data) CPU instructions provide a simple and fast way to parallelize numeric computations. GHC 7.8 provides primops that let us access these instructions. This package wraps thos primops in a more user friendly form.

The API is in two parts. First, it provides a thin wrapper around the primops in the same style as the Data.Primitive API. Second, it provides an interface for working with vectors in parallel. This interface consists of Unbox and Storable instances for the SIMD types, and efficient methods for converting between a SIMD Vector and a standard vector.

At the github repository, there is an example that uses criterion to measure the performance of calculating the l2 distance between vectors. There are many different versions of this function in the example. Each is written in different styles that demonstrate correct (and incorrect!) use of the library.


[Skip to Readme]

Modules

  • Data
    • Data.SIMD
      • Data.SIMD.SIMD16
      • Data.SIMD.SIMD4
      • Data.SIMD.SIMD8

Downloads

Maintainer's Corner

For package maintainers and hackage trustees

Candidates

  • No Candidates
Versions [RSS] 0.1.0.0, 0.1.0.1
Dependencies base (>=4.7 && <4.8), ghc-prim (>=0.3 && <0.4), primitive (>=0.5 && <0.6), vector (>=0.10.9) [details]
License BSD-3-Clause
Author Mike Izbicki
Maintainer mike@izbicki.me
Category Math
Home page http://github.com/mikeizbicki/simd
Uploaded by MikeIzbicki at 2014-05-19T07:43:13Z
Distributions NixOS:0.1.0.1
Downloads 1562 total (1 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs not available [build log]
All reported builds failed as of 2016-12-15 [all 6 reports]

Readme for simd-0.1.0.0

[back to package description]

simd

simple interface to ghc's simd vector support

Performance graphs

graph

graph

graph

graph