The accelerate-llvm package

[Tags:bsd3, library]

This library implements direct LLVM IR generation for the Accelerate language. For further information, refer to the main accelerate package.

Dependencies

Haskell dependencies are available from Hackage. The following external libraries are alse required:

Installing LLVM

Homebrew

Example using Homebrew on macOS:

brew install llvm-hs/homebrew-llvm/llvm-4.0

Debian & Ubuntu

For Debian/Ubuntu based Linux distributions, the LLVM.org website provides binary distribution packages. Check apt.llvm.org for instructions for adding the correct package database for your OS version, and then:

apt-get install llvm-4.0-dev

Building from source

If your OS does not have an appropriate LLVM distribution available, you can also build from source. Detailed build instructions are available on LLVM.org. Make sure to include the cmake build options -DLLVM_BUILD_LLVM_DYLIB=ON -DLLVM_LINK_LLVM_DYLIB=ON so that the libLLVM shared library will be built.

If using the accelerate-llvm-ptx backend, also ensure that the LLVM_TARGETS_TO_BUILD option includes the NVPTX target (if not specified, all targets are built).

Installing accelerate-llvm

To use accelerate-llvm it is important that the llvm-hs package is installed against the libLLVM shared library, rather than statically linked, so that we can use LLVM from GHCi and Template Haskell. This is the default configuration, but you can also enforce this explicitly by adding the following to your stack.yaml file:

flags:
  llvm-hs:
    shared-llvm: true

Or by specifying the shared-llvm flag to cabal:

cabal install llvm-hs -fshared-llvm

Properties

Versions 1.0.0.0
Dependencies abstract-deque (>=0.3), accelerate (==1.0.*), base (>=4.7 && <4.10), chaselev-deque (>=0.5), containers (==0.5.*), data-default-class (>=0.0.1), dlist (>=0.6), exceptions (>=0.6), fclabels (>=2.0), llvm-hs (==4.0.*), llvm-hs-pure (==4.0.*), mtl (>=2.0), mwc-random (>=0.13), unordered-containers (>=0.2), vector (>=0.10) [details]
License BSD3
Author Trevor L. McDonell
Maintainer Trevor L. McDonell <tmcdonell@cse.unsw.edu.au>
Category Compilers/Interpreters, Concurrency, Data, Parallelism
Bug tracker https://github.com/AccelerateHS/accelerate/issues
Source repository head: git clone https://github.com/AccelerateHS/accelerate-llvm.git
this: git clone https://github.com/AccelerateHS/accelerate-llvm.git(tag 1.0.0.0)
Uploaded Fri Mar 31 08:57:20 UTC 2017 by TrevorMcDonell
Updated Thu May 18 01:06:46 UTC 2017 by TrevorMcDonell to revision 7
Distributions NixOS:1.0.0.0
Downloads 162 total (22 in the last 30 days)
Votes
0 []
Status Docs uploaded by user
Build status unknown [no reports yet]
Hackage Matrix CI

Modules

  • Control
    • Parallel
      • Control.Parallel.Meta
        • Resource
          • Control.Parallel.Meta.Resource.Backoff
          • Control.Parallel.Meta.Resource.SMP
          • Control.Parallel.Meta.Resource.Single
        • Trans
          • Control.Parallel.Meta.Trans.LBS
        • Control.Parallel.Meta.Worker
  • Data
    • Array
      • Accelerate
        • LLVM
          • Analysis
            • Data.Array.Accelerate.LLVM.Analysis.Match
          • Array
            • Data.Array.Accelerate.LLVM.Array.Data
          • Data.Array.Accelerate.LLVM.CodeGen
            • Data.Array.Accelerate.LLVM.CodeGen.Arithmetic
            • Data.Array.Accelerate.LLVM.CodeGen.Array
            • Data.Array.Accelerate.LLVM.CodeGen.Base
            • Data.Array.Accelerate.LLVM.CodeGen.Constant
            • Data.Array.Accelerate.LLVM.CodeGen.Downcast
            • Data.Array.Accelerate.LLVM.CodeGen.Environment
            • Data.Array.Accelerate.LLVM.CodeGen.Exp
            • Data.Array.Accelerate.LLVM.CodeGen.IR
            • Data.Array.Accelerate.LLVM.CodeGen.Intrinsic
            • Data.Array.Accelerate.LLVM.CodeGen.Loop
            • Data.Array.Accelerate.LLVM.CodeGen.Module
            • Data.Array.Accelerate.LLVM.CodeGen.Monad
            • Data.Array.Accelerate.LLVM.CodeGen.Permute
            • Data.Array.Accelerate.LLVM.CodeGen.Ptr
            • Data.Array.Accelerate.LLVM.CodeGen.Skeleton
            • Data.Array.Accelerate.LLVM.CodeGen.Stencil
            • Data.Array.Accelerate.LLVM.CodeGen.Sugar
            • Data.Array.Accelerate.LLVM.CodeGen.Type
          • Data.Array.Accelerate.LLVM.Compile
          • Data.Array.Accelerate.LLVM.Execute
            • Data.Array.Accelerate.LLVM.Execute.Async
            • Data.Array.Accelerate.LLVM.Execute.Environment
            • Data.Array.Accelerate.LLVM.Execute.Marshal
          • Data.Array.Accelerate.LLVM.Foreign
          • Data.Array.Accelerate.LLVM.State
          • Data.Array.Accelerate.LLVM.Target
          • Data.Array.Accelerate.LLVM.Util
    • Range
      • Data.Range.Range
  • LLVM
    • AST
      • Type
        • LLVM.AST.Type.AddrSpace
        • LLVM.AST.Type.Constant
        • LLVM.AST.Type.Flags
        • LLVM.AST.Type.Global
        • LLVM.AST.Type.Instruction
          • LLVM.AST.Type.Instruction.Atomic
          • LLVM.AST.Type.Instruction.Compare
          • LLVM.AST.Type.Instruction.RMW
          • LLVM.AST.Type.Instruction.Volatile
        • LLVM.AST.Type.Metadata
        • LLVM.AST.Type.Name
        • LLVM.AST.Type.Operand
        • LLVM.AST.Type.Representation
        • LLVM.AST.Type.Terminator

[Index]

Flags

NameDescriptionDefaultType
debug

Enable debug tracing message flags. Note that debug must be enabled in the base accelerate package as well. See the accelerate package for usage and available options.

DisabledAutomatic
bounds-checks

Enable bounds checking

EnabledAutomatic
unsafe-checks

Enable bounds checking in unsafe operations

DisabledAutomatic
internal-checks

Enable internal consistency checks

DisabledAutomatic
chase-lev

Use a Chase-Lev deque for work stealing

EnabledAutomatic

Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info

Downloads

Maintainer's Corner

For package maintainers and hackage trustees