#llvm #gpgpu #cuda #cli

bin+lib nvptx

Rust 到 PTX 编译器,使用 LLVM/NVPTX 目标

5 个版本

使用旧的 Rust 2015

0.2.3 2018年8月16日
0.2.2 2018年7月30日
0.2.1 2018年7月28日
0.2.0 2018年7月16日
0.1.0 2018年6月14日

#53 in #gpgpu

MIT 许可证

32KB
860 代码行

nvptx 工具链

docs.rs CircleCI

将 Rust 编译成 PTX/cubin

安装

nvptx 命令

nvptx 是一个 CLI 工具,用于

  • 将 Rust crate 构建为 PTX/cubin 文件
  • 安装 accel-nvptx 工具链(用于 rustup)
cargo install nvptx

accel-nvptx 工具链

accel-nvptx 是 rustup 的工具链名称。它包含具有 nvptx64-nvidia-cuda 目标的 rustc 和运行时库。

nvptx install

这将在 rustup 中安装 accel-nvptx 工具链,如下所示:

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

此工具链是由以下构建的:

构建

您可以使用 accel-nvptx 工具链将您的 crate 构建为 PTX 文件

nvptx build

这包括以下三个步骤

  • 将 Rust 编译为 LLVM 位码。此步骤对应以下命令:
cargo +accel-nvptx build --target nvptx64-nvidia-cuda
  • 使用 llvm-link 将 rlib 链接到 LLVM 位码
  • 使用 opt 删除未使用的位码
  • 使用 llc 将 LLVM 位码编译为 PTX
  • (可选)使用 nvcc 将 PTX 转换为 cubin

依赖关系

~4–14MB
~153K SLoC