packages feed

accelerate-llvm-ptx-1.3.0.0: accelerate-llvm-ptx.cabal

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