name: accelerate-llvm-ptx
version: 1.2.0.0
cabal-version: >= 1.10
tested-with: GHC >= 7.10
build-type: Simple
synopsis: Accelerate backend for NVIDIA GPUs
description:
This library implements a backend for the /Accelerate/ language which
generates LLVM-IR targeting CUDA capable GPUs. For further information,
refer to the main <http://hackage.haskell.org/package/accelerate accelerate>
package.
.
[/Dependencies/]
.
Haskell dependencies are available from Hackage. The following external
libraries are alse required:
.
* <http://llvm.org LLVM>
.
* <https://developer.nvidia.com/cuda-downloads CUDA>
.
[/Installing LLVM/]
.
/Homebrew/
.
Example using Homebrew on macOS:
.
> brew install llvm-hs/homebrew-llvm/llvm-6.0
.
/Debian & Ubuntu/
.
For Debian/Ubuntu based Linux distributions, the LLVM.org website provides
binary distribution packages. Check <http://apt.llvm.org apt.llvm.org> for
instructions for adding the correct package database for your OS version,
and then:
.
> apt-get install llvm-6.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
<http://releases.llvm.org/6.0.0/docs/CMake.html 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. 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
.
license: BSD3
license-file: LICENSE
author: Trevor L. McDonell
maintainer: Trevor L. McDonell <tmcdonell@cse.unsw.edu.au>
bug-reports: https://github.com/AccelerateHS/accelerate/issues
category: Compilers/Interpreters, Concurrency, Data, Parallelism
extra-source-files:
CHANGELOG.md
README.md
-- Configuration flags
-- -------------------
Flag nvvm
Default: False
Description: Use the NVVM library to generate optimised PTX
-- Build configuration
-- -------------------
Library
exposed-modules:
Data.Array.Accelerate.LLVM.PTX
Data.Array.Accelerate.LLVM.PTX.Foreign
other-modules:
Data.Array.Accelerate.LLVM.PTX.Analysis.Device
Data.Array.Accelerate.LLVM.PTX.Analysis.Launch
Data.Array.Accelerate.LLVM.PTX.Array.Data
Data.Array.Accelerate.LLVM.PTX.Array.Prim
Data.Array.Accelerate.LLVM.PTX.Array.Remote
Data.Array.Accelerate.LLVM.PTX.Array.Table
Data.Array.Accelerate.LLVM.PTX.Context
Data.Array.Accelerate.LLVM.PTX.Debug
Data.Array.Accelerate.LLVM.PTX.Pool
Data.Array.Accelerate.LLVM.PTX.State
Data.Array.Accelerate.LLVM.PTX.Target
Data.Array.Accelerate.LLVM.PTX.Execute
Data.Array.Accelerate.LLVM.PTX.Execute.Async
Data.Array.Accelerate.LLVM.PTX.Execute.Environment
Data.Array.Accelerate.LLVM.PTX.Execute.Event
Data.Array.Accelerate.LLVM.PTX.Execute.Marshal
Data.Array.Accelerate.LLVM.PTX.Execute.Stream
Data.Array.Accelerate.LLVM.PTX.Execute.Stream.Reservoir
Data.Array.Accelerate.LLVM.PTX.CodeGen
Data.Array.Accelerate.LLVM.PTX.CodeGen.Base
Data.Array.Accelerate.LLVM.PTX.CodeGen.Fold
Data.Array.Accelerate.LLVM.PTX.CodeGen.FoldSeg
Data.Array.Accelerate.LLVM.PTX.CodeGen.Generate
Data.Array.Accelerate.LLVM.PTX.CodeGen.Intrinsic
Data.Array.Accelerate.LLVM.PTX.CodeGen.Loop
Data.Array.Accelerate.LLVM.PTX.CodeGen.Map
Data.Array.Accelerate.LLVM.PTX.CodeGen.Permute
-- Data.Array.Accelerate.LLVM.PTX.CodeGen.Queue
Data.Array.Accelerate.LLVM.PTX.CodeGen.Scan
Data.Array.Accelerate.LLVM.PTX.Compile
Data.Array.Accelerate.LLVM.PTX.Compile.Cache
Data.Array.Accelerate.LLVM.PTX.Compile.Libdevice
Data.Array.Accelerate.LLVM.PTX.Compile.Libdevice.Load
Data.Array.Accelerate.LLVM.PTX.Compile.Libdevice.TH
Data.Array.Accelerate.LLVM.PTX.Link
Data.Array.Accelerate.LLVM.PTX.Link.Cache
Data.Array.Accelerate.LLVM.PTX.Link.Object
Data.Array.Accelerate.LLVM.PTX.Embed
System.Process.Extra
Paths_accelerate_llvm_ptx
build-depends:
base >= 4.7 && < 4.12
, accelerate == 1.2.*
, accelerate-llvm == 1.2.*
, bytestring >= 0.10.4
, containers >= 0.5 && <0.6
, cuda >= 0.9
, deepseq >= 1.3
, directory >= 1.0
, dlist >= 0.6
, file-embed >= 0.0.8
, filepath >= 1.0
, hashable >= 1.2
, llvm-hs >= 4.1 && < 6.1
, llvm-hs-pure >= 4.1 && < 6.1
, mtl >= 2.2.1
, nvvm >= 0.7.5
, pretty >= 1.1
, process >= 1.4.3
, template-haskell
, time >= 1.4
, unordered-containers >= 0.2
hs-source-dirs:
src
default-language:
Haskell2010
ghc-options:
-O2
-Wall
-fwarn-tabs
ghc-prof-options:
-caf-all
-auto-all
if impl(ghc >= 8.0)
ghc-options:
-Wmissed-specialisations
if flag(nvvm)
cpp-options:
-DACCELERATE_USE_NVVM
test-suite nofib-llvm-ptx
type: exitcode-stdio-1.0
hs-source-dirs: test/nofib
main-is: Main.hs
build-depends:
base >= 4.7
, accelerate
, accelerate-llvm-ptx
default-language:
Haskell2010
ghc-options:
-Wall
-O2
-threaded
-rtsopts
-with-rtsopts=-A128M
-with-rtsopts=-n4M
source-repository head
type: git
location: https://github.com/AccelerateHS/accelerate-llvm.git
source-repository this
type: git
tag: 1.2.0.0
location: https://github.com/AccelerateHS/accelerate-llvm.git
-- vim: nospell