packages feed

cuda-0.13.0.0: cuda.cabal

cabal-version:          1.24

Name:                   cuda
Version:                0.13.0.0
Synopsis:               FFI binding to the CUDA driver interface for programming NVIDIA GPUs
Description:
    The CUDA library provides a direct, general purpose C-like SPMD programming
    model for NVIDIA graphics cards (G8x series onwards). This is a collection
    of bindings to allow you to call and control, although not write, such
    functions from Haskell-land. You will need to install the CUDA driver and
    developer toolkit.
    .
    <http://developer.nvidia.com/cuda-downloads>
    .
    The setup script will look for your CUDA installation by checking, in the
    following order:
    .
      1. The @CUDA_PATH@ environment variable
    .
      2. Searching for @nvcc@ on the @PATH@
    .
      3. Checking at @\/usr\/local\/cuda@
    .
      4. Environment variables of the form @CUDA_PATH_Vx_y@ (deprecated)
    .
    This library provides bindings to the CUDA Driver API, not the Runtime API.
    To get started, see "Foreign.CUDA.Driver"; a short tutorial is available
    there.
    .
    Tested with library versions up to and including CUDA-13.0.
    .
    [/NOTES:/]
    .
    For additional notes on installing on Windows, see:
    .
    * <https://github.com/tmcdonell/cuda/blob/master/WINDOWS.md>
    .
    This library is currently in __maintenance mode__. While we are happy to
    release updates to keep the existing interface working with newer CUDA
    versions (as long as the underlying APIs remain available), no binding of
    new features is planned at the moment. Get in touch if you want to
    contribute.

License:                BSD3
License-file:           LICENSE
Copyright:              Copyright (c) [2009..2023]. Trevor L. McDonell <trevor.mcdonell@gmail.com>
Author:                 Trevor L. McDonell <trevor.mcdonell@gmail.com>
Maintainer:             Trevor L. McDonell <trevor.mcdonell@gmail.com>,
                        Tom Smeding <tom@tomsmeding.com>
Homepage:               https://github.com/tmcdonell/cuda
Bug-reports:            https://github.com/tmcdonell/cuda/issues
Category:               Foreign
Tested-with:            GHC >= 8.0
Build-type:             Custom

Extra-tmp-files:
  cuda.buildinfo.generated

Extra-source-files:
  cbits/stubs.h

Extra-doc-files:
  CHANGELOG.md
  README.md
  WINDOWS.md

custom-setup
  setup-depends:
      base              >= 4.7  && < 5
    , Cabal             >= 1.24 && < 3.17
    , directory         >= 1.0
    , filepath          >= 1.0

Library
  hs-source-dirs:       src
  exposed-modules:
      Foreign.CUDA.Path
      Foreign.CUDA.Ptr

      -- Kernel and device analysis
      Foreign.CUDA.Analysis
      Foreign.CUDA.Analysis.Device
      Foreign.CUDA.Analysis.Occupancy

      -- Driver API
      Foreign.CUDA.Driver
      Foreign.CUDA.Driver.Context
      Foreign.CUDA.Driver.Context.Base
      Foreign.CUDA.Driver.Context.Config
      Foreign.CUDA.Driver.Context.Peer
      Foreign.CUDA.Driver.Context.Primary
      Foreign.CUDA.Driver.Device
      Foreign.CUDA.Driver.Error
      Foreign.CUDA.Driver.Event
      Foreign.CUDA.Driver.Exec
      Foreign.CUDA.Driver.Graph.Base
      Foreign.CUDA.Driver.Graph.Build
      Foreign.CUDA.Driver.Graph.Capture
      Foreign.CUDA.Driver.Graph.Exec
      Foreign.CUDA.Driver.IPC.Event
      Foreign.CUDA.Driver.IPC.Marshal
      Foreign.CUDA.Driver.Marshal
      Foreign.CUDA.Driver.Module
      Foreign.CUDA.Driver.Module.Base
      Foreign.CUDA.Driver.Module.Link
      Foreign.CUDA.Driver.Module.Query
      Foreign.CUDA.Driver.Profiler
      Foreign.CUDA.Driver.Stream
      Foreign.CUDA.Driver.Unified
      Foreign.CUDA.Driver.Utils

      -- Extras
      Foreign.C.Extra
      Foreign.CUDA.Internal.C2HS
      Foreign.CUDA.Internal.Describe

  include-dirs:         .
  c-sources:            cbits/stubs.c
                        cbits/init.c

  build-tools:          c2hs >= 0.21
  build-depends:
      base              >= 4.7 && < 5
    , bytestring        >= 0.10.4
    , containers
    , filepath          >= 1.0
    , template-haskell
    , uuid-types        >= 1.0

  default-language:     Haskell98

  ghc-options:
      -Wall
      -O2
      -funbox-strict-fields
      -fwarn-tabs
      -fno-warn-unused-imports

  if impl(ghc == 8.0.1)
    cpp-options:        -DCUDA_PRELOAD


Executable nvidia-device-query
  main-is:              DeviceQuery.hs
  hs-source-dirs:       examples/src/deviceQueryDrv

  build-depends:
      base              >= 4 && < 5
    , cuda
    , pretty

  default-language:     Haskell98


source-repository head
    type:               git
    location:           https://github.com/tmcdonell/cuda

source-repository this
    type:               git
    location:           https://github.com/tmcdonell/cuda
    tag:                v0.13.0.0

-- vim: nospell