# `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