BSD-3-Clause licensed by Trevor L. McDonell
Maintained by Trevor L. McDonell
This version can be pinned in stack with:nvvm-,2349

Module documentation for

Haskell FFI Bindings to NVVM

Travis build status AppVeyor build status Stackage LTS Stackage Nightly Hackage

The NVVM library compiles NVVM IR (a subset of LLVM IR) into PTX code which can then be executed on NVIDIA GPUs.

In contrast to the standard NVPTX target built in to the LLVM toolchain, NVVM includes a set of proprietary optimisations which are otherwise only available by compiling CUDA code with the nvcc compiler. On the other hand, the version of LLVM that NVVM is internally based on typically lags the public release by several generations (years), so these secret optimisations may or may not be worthwhile to your application.

The resulting PTX code can be loaded onto the GPU and executed using the cuda package.

The NVVM library is a compiler component available a part of the CUDA 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.


Revision history for nvvm

Notable changes to the project will be documented in this file.

The format is based on Keep a Changelog. - 2018-03-12


  • Build fix for Cabal-2.2 (ghc-8.4) - 2018-01-05


  • Fix profiling build - 2017-11-15


  • Fix nvvm library path on windows (#2) - 2017-08-24


  • Build setup improvements - 2017-04-10


  • Add support for older c2hs versions - 2016-11-08


  • Add support for Cabal-1.22 - 2016-10-08

  • First version. Released on an unsuspecting world.