[−][src]Crate ptx_builder
build.rs
helper crate for your CUDA experiments.
It helps to automatically build device crate in both single-source and separated-source projects.
Features the crate provide:
- Automatically notify Cargo about device crate sources, so it can reuild on changes,
- Provide output PTX assembly path to Rust via environment variable,
- Rich reporting of device crate errors,
- Hints and troubleshooting for missing tools.
Usage
Simply add the crate as build-dependency
:
[build-dependencies]
ptx-builder = "0.5"
And start using it in build.rs
script:
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); }
Now, on the host-side, the PTX assembly can be loaded and used with your favorite CUDA driver crate:
ⓘThis example is not tested
use std::ffi::CString; let ptx = CString::new(include_str!(env!("KERNEL_PTX_PATH")))?; // use the assembly contents ...
Modules
builder | Build helpers. |
error | Error handling. |
executable | External executables that are needed to build CUDA crates. |
prelude | Convenient re-exports of mostly used types. |
reporter | Build reporting helpers. |
Macros
bail |