One squashed history of three stacked PRs, onto main atb16816671: - #426 (wai/pack-efficiency): a title's whole AV1 ladder in one package over one integer base; several floor rungs (packaging §7.1), a re-pack from a parent (§11.5), a floor that is the ladder's own CMAF (§7.7), a floor-only profile (§7.8), a streaming pack (§11.4), and the independent verifier at scale (§9.4). - #438 (wai/cross-fabric): each pack and verify step on the fabric with the least measured energy (§11.6); the `fabrics` member of measurement claims (jwp-receipts §2.4.8, energy-measurement §6.3); the wai-pack-gpu crate; `wai-pack fabric`; `wai-pack floor-decode`. - #452 (wai/gpu-int-tier), its GPU-tier part only: claiming decode-equivalence on a GPU (determinism-tiers §5), the WGSL integer semantics suite, the rules check on naga's IR, and the kernels' shift masks and min(max()) clamps. Left out, by the review's split (EN-C takes it over): #452's platform decode in dispatch, its commits6ad92e2e8,8695bc75fandfed8694f4and its CHANGELOG entry: extensions/platform-decode.md, platform-decode-conformance/, wai::platform_decode, wai-web's platform_decode bundle and demo, and its two SPEC.md sentences. #438's research note is not carried as written: it is rewritten as wai/research/cross-fabric.md, with hardware named by architecture, PCI id and OS version, and every table marked as one run. floor_decode.rs and a wai_pack.rs comment name the platform's media engine and a full-length film the same way. wai/CHANGELOG.md is the union of both sides' entries, the stack's first. Co-Authored-By: Claude Opus 5.5 <[email protected]>
39 lines
1.7 KiB
TOML
39 lines
1.7 KiB
TOML
# `wai-ops/1-i32` on GPUs: the integer operator set's graph operators as WGSL compute
|
|
# kernels through wgpu (Metal, Vulkan, DX12 natively; a browser's WebGPU on
|
|
# wasm32-unknown-unknown), exact at both accumulator profiles, `acc32` in one 32-bit
|
|
# word per value and `acc64` in exact 64- and 128-bit arithmetic built from 32-bit
|
|
# words (extensions/integer-operators.md §7.3).
|
|
#
|
|
# A SEPARATE crate with its own lockfile, so that `wai-ops` stays `no_std` with no
|
|
# dependencies and `wai-rs` builds without wgpu by default; `wai-rs`'s `ops_gpu`
|
|
# feature is the only way it enters a decode.
|
|
[package]
|
|
name = "wai-ops-gpu"
|
|
version = "0.1.0"
|
|
edition = "2024"
|
|
rust-version = "1.97"
|
|
license = "Apache-2.0"
|
|
publish = false
|
|
description = "WAI integer operator set wai-ops/1-i32 on GPUs: WGSL kernels through wgpu, exact at acc32 and acc64"
|
|
|
|
[lib]
|
|
name = "wai_ops_gpu"
|
|
path = "src/lib.rs"
|
|
|
|
[dependencies]
|
|
wai-ops = { path = "../wai-ops" }
|
|
|
|
[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
|
|
wgpu = { version = "30.0.1", default-features = false, features = ["std", "wgsl", "metal", "vulkan", "dx12"] }
|
|
|
|
[target.'cfg(all(target_arch = "wasm32", target_os = "unknown"))'.dependencies]
|
|
wgpu = { version = "30.0.1", default-features = false, features = ["std", "wgsl", "webgpu"] }
|
|
|
|
# The WGSL rules test (tests/wgsl_rules.rs) reads the shipped modules on the IR of the
|
|
# translator wgpu compiles them with: naga, the same release wgpu 30.0.1 depends on, so
|
|
# the lockfile gains no package.
|
|
[target.'cfg(not(target_arch = "wasm32"))'.dev-dependencies]
|
|
naga = { version = "30.0.1", default-features = false, features = ["wgsl-in", "msl-out", "hlsl-out", "spv-out"] }
|
|
|
|
[profile.release]
|
|
debug = false
|