name: accelerate-llvm-ptx
version: 1.3.0.0
cabal-version: >= 1.10
tested-with: GHC >= 8.6
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/llvm/llvm-9
.
/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-9-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/9.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).
.
license: BSD3
license-file: LICENSE
author: Trevor L. McDonell
maintainer: Trevor L. McDonell <trevor.mcdonell@gmail.com>
bug-reports: https://github.com/AccelerateHS/accelerate/issues
category: Accelerate, 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.Scan
Data.Array.Accelerate.LLVM.PTX.CodeGen.Stencil
Data.Array.Accelerate.LLVM.PTX.CodeGen.Transform
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
GHC.Heap.NormalForm
Paths_accelerate_llvm_ptx
build-depends:
base >= 4.10 && < 5
, accelerate == 1.3.*
, accelerate-llvm == 1.3.*
, bytestring >= 0.10.4
, containers >= 0.5 && < 0.7
, cuda >= 0.10
, deepseq >= 1.3
, directory >= 1.0
, dlist >= 0.6
, file-embed >= 0.0.8
, filepath >= 1.0
, hashable >= 1.2
, llvm-hs >= 4.1 && < 9.1
, llvm-hs-pure >= 4.1 && < 9.1
, mtl >= 2.2.1
, nvvm >= 0.9
, pretty >= 1.1
, process >= 1.4.3
, template-haskell
, unordered-containers >= 0.2
if impl(ghc >= 8.6)
build-depends:
ghc-heap
else
build-depends:
ghc
, ghci
cpp-options:
-DUNBOXED_TUPLES=1
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.10
, accelerate
, accelerate-llvm-ptx
default-language:
Haskell2010
ghc-options:
-Wall
-O2
-threaded
-rtsopts
-with-rtsopts=-A128M
-with-rtsopts=-n4M
-- -with-rtsopts=-N
source-repository head
type: git
location: https://github.com/AccelerateHS/accelerate-llvm.git
source-repository this
type: git
tag: v1.3.0.0
location: https://github.com/AccelerateHS/accelerate-llvm.git
-- vim: nospell