# 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