nvptx 0.2.1

Rust to PTX compiler using LLVM/NVPTX target
Documentation

nvptx toolchain

Crate docs.rs CircleCI

Compile Rust into PTX

Install

nvptx command for manging nvptx-toolchain for Rust can be installed from crate.io

cargo install nvptx

And then, you can install nvptx-toolchain (including rustc, rust-std for nvptx64-nvidia-cuda target):

nvptx install

This installs accel-nvptx toolchain to rustup like:

$ rustup toolchain list
stable-x86_64-unknown-linux-gnu
nightly-x86_64-unknown-linux-gnu (default)
accel-nvptx

This toolchain is built from

Build crate to nvptx64-nvidia-cuda target

You can build your crate using accel-nvptx toolchain into a PTX file

nvptx build

This consists of following three steps:

  • Compile Rust into LLVM bitcode. This step corresponds to the following command:
cargo +accel-nvptx build --target nvptx64-nvidia-cuda
  • Link rlib into a LLVM bitcode using llvm-link
  • Compile LLVM bitcode into PTX using llc

You can load the PTX file into your stdout using

nvptx build --load

or

nvptx load