accelerate-llvm-ptx: Accelerate backend for NVIDIA GPUs
This is a package candidate release! Here you can preview how this package release will appear once published to the main package index (which can be accomplished via the 'maintain' link below). Please note that once a package has been published to the main package index it cannot be undone! Please consult the package uploading documentation for more information.
Warnings:
- 'ghc-options: -O2' is rarely needed. Check that it is giving a real benefit and not just imposing longer compile times on your users.
- 'ghc-prof-options: -fprof*' profiling flags are typically not appropriate for a distributed library package. These flags are useful to profile this package, but when profiling other packages that use this one these flags clutter the profile output with excessive detail. If you think other packages really want to see cost centres from this package then use '-fprof-auto-exported' which puts cost centres only on exported functions. Alternatively, if you want to use this, make it conditional based on a Cabal configuration flag (with 'manual: True' and 'default: False') and enable that flag during development.
This library implements a backend for the Accelerate language which generates LLVM-IR targeting CUDA capable GPUs. 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/llvm/llvm-9
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-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
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).
[Skip to Readme]
Properties
Versions | 1.0.0.0, 1.0.0.1, 1.1.0.0, 1.1.0.1, 1.2.0.0, 1.2.0.1, 1.3.0.0, 1.3.0.0 |
---|---|
Change log | CHANGELOG.md |
Dependencies | accelerate (>=1.3 && <1.4), accelerate-llvm (>=1.3 && <1.4), base (>=4.10 && <5), 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), ghc, ghc-heap, ghci, 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) [details] |
License | BSD-3-Clause |
Author | Trevor L. McDonell |
Maintainer | Trevor L. McDonell <trevor.mcdonell@gmail.com> |
Category | Accelerate, Compilers/Interpreters, Concurrency, Data, Parallelism |
Bug tracker | https://github.com/AccelerateHS/accelerate/issues |
Source repo | head: git clone https://github.com/AccelerateHS/accelerate-llvm.git this: git clone https://github.com/AccelerateHS/accelerate-llvm.git(tag v1.3.0.0) |
Uploaded | by TrevorMcDonell at 2020-08-27T17:52:05Z |
Modules
- Data
- Array
- Accelerate
- LLVM
- Data.Array.Accelerate.LLVM.PTX
- Data.Array.Accelerate.LLVM.PTX.Foreign
- Data.Array.Accelerate.LLVM.PTX
- LLVM
- Accelerate
- Array
Flags
Automatic Flags
Name | Description | Default |
---|---|---|
nvvm | Use the NVVM library to generate optimised PTX | Disabled |
Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info
Downloads
- accelerate-llvm-ptx-1.3.0.0.tar.gz [browse] (Cabal source package)
- Package description (as included in the package)
Maintainer's Corner
Package maintainers
For package maintainers and hackage trustees