https://github.com/tmcdonell/nvvm
Haskell FFI bindings to NVVM
https://github.com/tmcdonell/nvvm
Last synced: 10 months ago
JSON representation
Haskell FFI bindings to NVVM
- Host: GitHub
- URL: https://github.com/tmcdonell/nvvm
- Owner: tmcdonell
- License: other
- Created: 2016-06-01T02:22:50.000Z (about 10 years ago)
- Default Branch: master
- Last Pushed: 2023-08-15T13:41:45.000Z (almost 3 years ago)
- Last Synced: 2025-08-25T07:41:53.011Z (10 months ago)
- Language: Haskell
- Size: 90.8 KB
- Stars: 7
- Watchers: 4
- Forks: 4
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
Haskell FFI Bindings to NVVM
============================
[](https://travis-ci.org/tmcdonell/nvvm)
[](https://ci.appveyor.com/project/tmcdonell/nvvm)
[](https://stackage.org/lts/package/nvvm)
[](https://stackage.org/nightly/package/nvvm)
[](https://hackage.haskell.org/package/nvvm)
The NVVM library compiles [NVVM IR][nvvm-ir-spec] (a subset of LLVM IR) into PTX code which can
then be executed on NVIDIA GPUs.
In contrast to the standard [NVPTX][nvptx-spec] 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][hs-cuda].
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.
[nvptx-spec]: http://llvm.org/docs/NVPTXUsage.html
[nvvm-ir-spec]: http://docs.nvidia.com/cuda/nvvm-ir-spec/index.html
[hs-cuda]: https://github.com/tmcdonell/cuda