18 个版本

0.5.3 2019 年 2 月 13 日
0.5.2 2018 年 11 月 10 日
0.5.1 2018 年 10 月 11 日
0.3.7 2018 年 6 月 24 日
0.3.1 2018 年 3 月 31 日

#362图形 API

MIT 许可证

44KB
914

Rust PTX Builder

Build Status Build status Current Version Docs

新版本:0.5 🎉

告别代理 crate 方法

这允许我们在仅二进制 crate(没有 lib.rs)中使用单源 CUDA。

开发中断性更改

该 crate 不再提供默认的 panic_handler。从现在起,它取决于用户或其他 crate(例如,即将推出的 ptx-support crate)。

下一个解决方案应该适用于常见情况,尽管它不会在运行时提供任何 panic 详情

#![feature(core_intrinsics)]

#[panic_handler]
unsafe fn breakpoint_panic_handler(_: &::core::panic::PanicInfo) -> ! {
    core::intrinsics::breakpoint();
    core::hint::unreachable_unchecked();
}

API 破坏性更改 - 更少的样板代码

build.rs 脚本以前从未如此紧凑和清晰

use ptx_builder::error::Result;
use ptx_builder::prelude::*;

fn main() -> Result<()> {
    let builder = Builder::new(".")?;
    CargoAdapter::with_env_var("KERNEL_PTX_PATH").build(builder);
}

文档改进

此版本附带显著的文档改进!查看它 :)

目的

该库应简化 Rust 的 CUDA 开发。它可以用在宿主 crate 的 cargo 构建脚本 中,并负责构建设备 crate。

特性

  1. 显然,设备 crate 构建。
  2. 向 cargo 通知设备 crate 的源代码,以便在更改后自动重建。
  3. 报告缺少的工具,例如
[PTX] Unable to get target details
[PTX]
[PTX] caused by:
[PTX]   Command not found in PATH: 'rust-ptx-linker'. You can install it with: 'cargo install ptx-linker'.

先决条件

该库依赖于最新的 Nightly 和 ptx-linker。后者可以从 crates.io 安装

cargo install ptx-linker

Windows 用户!

很遗憾,由于 rustc-llvm-proxy#1 的原因,目前尚不支持 MSVS 目标。

您可能会遇到类似的错误。

Unable to find symbol 'LLVMContextCreate' in the LLVM shared lib

目前唯一的解决方案是使用 GNU 目标。

使用方法

首先,您需要在宿主crate的 Cargo.toml 中指定一个构建脚本,并将库声明为 构建依赖

[build-dependencies]
ptx-builder = "0.5"

然后,典型的 build.rs 可能如下所示:

use ptx_builder::error::Result;
use ptx_builder::prelude::*;

fn main() -> Result<()> {
    let builder = Builder::new(".")?;
    CargoAdapter::with_env_var("KERNEL_PTX_PATH").build(builder);
}

依赖项

~4–12MB
~130K SLoC