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 中
44KB
914 行
Rust PTX Builder
新版本: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。
特性
- 显然,设备 crate 构建。
- 向 cargo 通知设备 crate 的源代码,以便在更改后自动重建。
- 报告缺少的工具,例如
[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