open-standards/wai/wai-pack-gpu/Cargo.toml
Transaction Science 6b62aa482b wai-pack-gpu: per-call error scopes; the backends claimed are the one shown (#438 review S6, S7, N12)
- #438 review S7. Device errors were collected in one uncaptured-error sink per
  device, and `settled()` took them all, so under `--jobs N` one thread could consume
  another call's validation or out-of-memory error and that call returned its output
  as Ok. Each `run` now pushes its own Validation and OutOfMemory error scopes and
  pops them after its read-back, refusing the call on either; wgpu 30's scopes are
  thread-local with its `std` feature, which this crate enables.
- #438 review S6. The crate docs, both Cargo.toml comments and the CHANGELOG said the
  kernels are exact on Metal, Vulkan and DX12; they were shown on Metal only. They now
  say so, that Vulkan and DX12 were not run and nothing is claimed for them, and that
  qualification at open is the gate on any adapter.
- #438 review N12. The CHANGELOG entry says a verifier before this revision refuses a
  claim carrying `fabrics`; it also states the meter's new class, its sampled sole use,
  the share of more than 0, and the `npu` term.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-24 21:11:34 -04:00

35 lines
1.4 KiB
TOML

# The steps of WAI's packaging extension that a GPU computes exactly, as WGSL compute
# kernels through wgpu (shown exact on Metal only; Vulkan and DX12 built, not run): the
# integer encoder's motion search, the
# sum of squared differences, and BLAKE3's chunk function. Every kernel is integer, in
# 32-bit words, so a device that runs it gives the CPU's result for every input
# (extensions/packaging.md §11.6).
#
# A SEPARATE crate with its own lockfile, as wai-ops-gpu is, so that wai-pack builds
# without wgpu by default; wai-pack's `gpu` feature is the only way it enters a pack.
[package]
name = "wai-pack-gpu"
version = "0.1.0"
edition = "2024"
rust-version = "1.97"
license = "Apache-2.0"
publish = false
description = "WAI packaging steps on GPUs: the integer motion search, SSE and BLAKE3's chunk function as WGSL kernels through wgpu, exact in 32-bit words"
repository = "https://git.transaction.science/Transaction-Science/open-standards"
# Its own workspace and Cargo.lock.
[workspace]
[lib]
name = "wai_pack_gpu"
path = "src/lib.rs"
[dependencies]
wgpu = { version = "30.0.1", default-features = false, features = ["std", "wgsl", "metal", "vulkan", "dx12"] }
# The parent nodes of a message of several chunks are merged on the host, by the BLAKE3
# reference crate's subtree functions (`blake3::hazmat`); the device computes the chunks.
blake3 = "1"
[profile.release]
debug = false
overflow-checks = true