Digital Fauxice v0.2.0
What changed since v0.1.0
The v0.1.0 wheel was built before the compiled CPU backend and the host-side CUDA writer chain landed, so it shipped only the reference CPU path and the old device-writer CUDA design. This wheel carries all three current backends:
| Backend | Time per full 4000 dpi frame | Requires |
|---|---|---|
cpu (reference) |
roughly an hour | numpy only |
cpu-fast |
9.2 to 9.5 s (Apple M4) | the fast extra (numba) |
cuda |
5.3 to 5.8 s (RTX A4000) | the cuda extra (cupy, NVIDIA driver) |
Both compiled backends prove byte parity against the reference on a synthetic job at startup and refuse to run if that proof fails.
The fast and cuda extras now accept numba 0.65. The previous >=0.66 floor reflected the validation host rather than a requirement: the kernels use nothing that 0.66 added, and the byte-parity self-test, the full fast_cpu suite, and a complete process() run all pass identically under numba 0.65.1 with numpy 2.4.4. Applications already pinned to numba 0.65.x can use the compiled backend without moving their pin.
Install
python -m pip install \
"portable-digital-ice[fast] @ https://github.com/rohanpandula/digital-fauxice/releases/download/v0.2.0/portable_digital_ice-0.2.0-py3-none-any.whl"The parity receipts that bind this source tree are evidence/cpu-fast-frame-*-parity.json and evidence/cuda-frame-*-parity.json.