Skip to content

Digital Fauxice v0.2.0

Choose a tag to compare

@rohanpandula rohanpandula released this 18 Jul 08:33

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.