baracuda-cutlass-sys
Header acquisition for NVIDIA CUTLASS
as a baracuda workspace dependency. Use this crate as a [build-dependencies]
or [dependencies] entry to make CUTLASS headers available to other
build.rs files (e.g., baracuda-forge) and to downstream cc /
cxx / bindgen invocations.
What it does
- Sparse-checks-out CUTLASS headers from GitHub at build time.
- Caches under
~/.baracuda-cutlass-sys/git/checkouts/(file-locked for concurrent-build safety, derived from the cudaforge fetch logic). - Emits Cargo metadata (
cargo:include,cargo:root,cargo:rustc-env=BARACUDA_CUTLASS_INCLUDE_DIR) so consumers find the headers without hand-rolling path discovery. - Exposes
INCLUDE_DIRat the Rust level for runtime access.
Version selection
| How | Default | Result |
|---|---|---|
| (none) | CUTLASS 4.x (CUDA 12+) | tag v4.2.0 |
feature cutlass-2-11 |
CUTLASS 2.11.x (CUDA 11.4 floor) | tag v2.11.0 |
env CUTLASS_DIR=/path |
local checkout | use that path |
env BARACUDA_CUTLASS_COMMIT=<sha> |
specific commit | sparse-checkout to commit |
The cutlass-2-11 feature is the supported escape hatch for users who
want to keep baracuda's CUDA-11.4 floor across the CUTLASS path. CUTLASS 4.x
requires CUDA 12+.
Usage
# Cargo.toml
[]
= "0.0.1-alpha.5"
// build.rs
When pairing with baracuda-forge, the wiring is automatic — forge picks up
the DEP_CUTLASS_INCLUDE set by this crate and uses it for with_cutlass,
skipping forge's own fetch.
License
Dual MIT / Apache-2.0 (matches the workspace and CUTLASS-adjacent ecosystem). The CUTLASS source itself remains under NVIDIA's BSD-3-Clause; this crate fetches it at build time but does not redistribute it.
See NOTICE for attribution to upstream cudaforge for the
sparse-checkout fetch logic.