Repa array processing using LLVM JIT http://hub.darcs.net/thielema/knead/
|Latest on Hackage:||0.2.3|
This package is not currently in any snapshots. If you're interested in using it, we recommend adding it to Stackage Nightly. Doing so will make builds more reliable, and allow stackage.org to host generated Haddocks.
This library processes arrays like
but it uses the just-in-time compiler of
for generating the machine code.
That is, you get very efficient vectorised code
that can be run without a GPU.
You do not need to care about inlining and strictness annotations,
because the LLVM code is by default inlined and strict.
The package is the basis for an LLVM backend for the
Very flexible index handling, even more flexible than the one of
Data.Array. It is much more expressive and type-safe than that of
Extensible element types, e.g. complex numbers. (Maybe this is also possible with accelerate, e.g. with RGB type.)
Every compilable program also runs. In contrast to that,
acceleratemay accept a program that cannot be run by a particular backend, like
The functions do not check array bounds. (Of course, we can think about temporary bound checking for debugging purposes.)
The package does not try to distribute work across multiple processors. It is certainly simpler, more efficient and more reliable if you do that at a higher level.
The name of the package is inspired by the visualization of typical operations like reshaping, collapsing a dimension and extruding another one.