wai-quantum 0.4.4: the fabric's CUDA member #243
Loading…
Reference in a new issue
No description provided.
Delete branch "wai/quantum-every-processor"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
What
A second accelerator member for the fabric, beside the WebGPU one: the gate kernel in CUDA C. The CUDA runtime compiler builds it at run time for each device's own architecture, and each device is certified bit-exact against the CPU reference's pinned corpus digests. It is behind the feature
quantum_fabric_cuda, which is opt-in and native-only. This is wai-quantum 0.4.4.Why it is bit-exact
src/quantum_fabric/lanes64.cutranscribeslanes::exact_rowandapply_wordsinto 64-bit integers, which every CUDA device has:fx(a, b) = (a·b + 2^29) >> 30is exact in 64 bits, and so is each row's sum;The member's probe checks the device's arithmetic before it joins. Its certificates check whole runs.
Shape
The member presents the same surface as the WebGPU member:
lanesand are shared by both members;run_lanesandrun_program;simulate_fromandsimulate_metered;certify,memberandmember_metered;Runnerfor theFabric.Its id is
local/gpu-cuda-<12 hex>, binding the device, its UUID, PCI location, driver, compiler and memory. Its CI key isgpu-cuda-sm<major><minor>.The driver and runtime compiler are loaded on first use, so a build with the feature runs on a host without CUDA. There it finds no member and says why (
Discovery::unavailable).Verified
On the RTX 4050 (sm_89),
tests/cuda_member.rspasses 9 of 9:run_wordsFabricrunOn a Mac without CUDA, the same tests pass over no member.
The mutation testing caught one weak mutant of my own. A sign flip on the imaginary part of the top-left entry changes nothing, because that entry is real for every gate in the set, so it was replaced with a flip on an entry
Ydoes have.CI
wai-quantum-cuda.ymladds two jobs:Lockfiles
Every lockfile that includes wai-quantum moves to 0.4.4 by its version line alone.
check-lockfilespasses on all seven.🤖 Generated with Claude Code