packages feed

accelerate-llvm-ptx-1.1.0.1: accelerate-llvm-ptx.cabal

name:                   accelerate-llvm-ptx
version:                1.1.0.1
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-5.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-5.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/5.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

Flag debug
  Default:              False
  Description:
    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.

Flag bounds-checks
  Default:              True
  Description:          Enable bounds checking

Flag unsafe-checks
  Default:              False
  Description:          Enable bounds checking in unsafe operations

Flag internal-checks
  Default:              False
  Description:          Enable internal consistency checks


-- 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.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.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

    Data.Array.Accelerate.LLVM.PTX.Execute.Environment
    Data.Array.Accelerate.LLVM.PTX.Execute.Event
    Data.Array.Accelerate.LLVM.PTX.Execute.Marshal

    Paths_accelerate_llvm_ptx

  build-depends:
          base                          >= 4.7 && < 4.11
        , accelerate                    == 1.1.*
        , accelerate-llvm               == 1.1.*
        , bytestring                    >= 0.10.4
        , containers                    >= 0.5 && <0.6
        , cuda                          >= 0.9
        , deepseq                       >= 1.3
        , directory                     >= 1.0
        , dlist                         >= 0.6
        , fclabels                      >= 2.0
        , file-embed                    >= 0.0.8
        , filepath                      >= 1.0
        , hashable                      >= 1.2
        , llvm-hs                       >= 4.1 && < 5.2
        , llvm-hs-pure                  >= 4.1 && < 5.2
        , mtl                           >= 2.2.1
        , nvvm                          >= 0.7.5
        , pretty                        >= 1.1
        , process                       >= 1.4.3
        , template-haskell
        , time                          >= 1.4
        , unordered-containers          >= 0.2

  default-language:
    Haskell2010

  ghc-options:                  -O2 -Wall -fwarn-tabs

  if impl(ghc >= 8.0)
    ghc-options:                -Wmissed-specialisations

  if flag(nvvm)
    cpp-options:                -DACCELERATE_USE_NVVM

  if flag(debug)
    cpp-options:                -DACCELERATE_DEBUG

  if flag(bounds-checks)
    cpp-options:                -DACCELERATE_BOUNDS_CHECKS

  if flag(unsafe-checks)
    cpp-options:                -DACCELERATE_UNSAFE_CHECKS

  if flag(internal-checks)
    cpp-options:                -DACCELERATE_INTERNAL_CHECKS


source-repository head
  type:                 git
  location:             https://github.com/AccelerateHS/accelerate-llvm.git

source-repository this
  type:                 git
  tag:                  1.1.0.1-ptx
  location:             https://github.com/AccelerateHS/accelerate-llvm.git

-- vim: nospell