FFI binding to the CUDA interface for programming NVIDIA GPUs
|Version on this page:||0.10.1.0@rev:1|
|LTS Haskell 19.7:||0.11.0.0|
|Stackage Nightly 2022-03-17:||0.11.0.0|
|Latest on Hackage:||0.11.0.0|
Module documentation for 0.10.1.0
Haskell FFI Bindings to CUDA
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.
The configure step will look for your CUDA installation in the standard places,
and if the
nvcc compiler is found in your
PATH, relative to that.
For important information on installing on Windows, see:
Notable changes to the project will be documented in this file.
The format is based on Keep a Changelog.
NOTE: The version numbers of this package roughly align to the latest version of the CUDA API this package is built against This means that this package DOES NOT follow the PVP, or indeed any sensible version scheme, because NVIDIA are A-OK introducing breaking changes in minor updates.
- Add support for CUDA-10.1
- The function
Foreign.CUDA.Driver.Graph.Capture.starthas an extra parameter to specify the capture mode
- The following functions have been deprecated (since at least CUDA-8) and are
0.10.0.0 - 2018-10-02
Device properties for SM7
Functions from CUDA-9.2
Functions from CUDA-10.0
Additional bindings from older CUDA releases
- Replace uses of
- Support for ghc-7.6
0.9.0.3 - 2018-03-12
- Build fix for Cabal-2.2 (ghc-8.4)
0.9.0.2 - 2018-03-07
- Build fix for Nix (#53)
0.9.0.1 - 2018-02-16
- Build fix for macOS High Sierra (10.13)
0.9.0.0 - 2017-11-15
- Build fixes for CUDA-9
- Changed type of
Stream.writeto support 64-bit values
0.8.0.1 - 2017-10-24
- Escape backslashes used in -D flags on Windows (#50)
0.8.0.0 - 2017-08-24
- Tested with CUDA toolkit 8.0
- Add operations for unified addressing in the device API
waitoperations for streams in the device API
- (internals) The paths this module was configured against are exposed by the
0.7.5.3 - 2017-03-23
- Bug fix in occupancy calculator
0.7.5.2 - 2017-01-06
- Build fails with library profiling (#43)
- On Windows, the Cabal installer is looking in the wrong place (#45)
- Windows install fix (#47)
0.7.5.1 - 2016-10-21
- Re-enable support for Cabal-1.22
- Unknown CUDA device compute capability 6.1 (#40)
- Compilation fails for CUDA-8 [was: ghc 7.10.3 fail to install] (#44)
0.7.5.0 - 2016-10-07
- Tested with CUDA toolkit 7.5
- Add functions from CUDA-7.5
- Add profiler control functions
- Add function
0.7.0.0 - 2015-11-30
- Add support for operations from CUDA-7.0
- Add support for online linking
- Add support for inter-process communication
- Bug fixes, extra documentation, improve library coverage.
- Mac OS X no longer requires the DYLD_LIBRARY_PATH environment variable in order to compile or run programs that use this package.
0.6.7.0 - 2015-09-12
- Add support for building on Windows (thanks to @mwu-tow)
0.6.6.2 - 2015-04-04
- Build fix
0.6.6.1 - 2015-04-04 [YANKED]
- Build fixes for ghc-7.6 and ghc-7.10
0.6.6.0 - 2015-03-10
- Add compute-capability data for 3.7, 5.2 devices.
Combine the definition of the ‘Event’ and ‘Stream’ data types. As of CUDA-3.1 these data structures are equivalent, and can be safely shared between runtime and driver API calls and libraries.
Mark FFI imports of potentially long-running API functions as safe. This allows them to be safely called from Haskell threads without blocking the entire HEC.
- Drop support for CUDA 3.0 and older.
0.6.5.1 - 2014-12-02
- Build fix for Mac OS X 10.10 (Yosemite)
0.6.5.0 - 2014-09-03
- Tested with CUDA toolkit 6.5
- Add functions from CUDA-6.5