lumbda/factory/GPU-BACKEND-NOTE.md
russell@unturf.com 1665893321
factory + quantum + sweep-doctrine: AGPLv3 share-back from foxhop ecdsa
29 new files publish factory infra (V2 autoscaler with live VRAM
sampling + EWMA peak tracking, HUGE solo-dispatch, two-tier DLQ/rDLQ
classifier + retry), general quantum circuit primitives (Cuccaro
ripple-carry adder, Clifford gate library, Clifford tableau simulator,
mod-arith family, dialog GCD reversible inverse, Karatsuba multiplier,
Solinas fast reduction), and a TCRAUDT reducer harness. Originally
developed in ~/git/www.foxhop.net/ecdsa/ for secp256k1 attack-surface
research; published upstream as obligated by AGPLv3.

Parametrization contract at factory/CONTRACT.md. Consumers export
LUMBDA_REPO_DIR + LUMBDA_QUEUE_DIR + LUMBDA_BACKEND_CMD + LUMBDA_EMITTER_CMD
then exec factory scripts. No fork-and-modify; single source of truth
upstream.

Integration tests gate 7 V2 defect classes that wedged a live factory
on 2026-06-12 (skewed-demand starve, zero-floor reservation,
multi-tier greedy, +-25%% damping, cold-start ramp, DLQ surge halve,
post-damp CPU ceiling) + 28 DLQ classifier cases (auto-retry vs
escalate partition) + bash -n syntax lint across every script.

GPU backend stays in consumer trees; rationale in
factory/GPU-BACKEND-NOTE.md. Bend wire protocol + gpu-worker.lsp
already upstream at examples/cuda-fanout/.

make factory-lint                bash -n on every factory/*.sh
make test-integration            V2 reducer + DLQ classifier + syntax gate
make sweep-doctrine              TCRAUDT reducer gate (serial)
make sweep-doctrine-parallel     xargs -P fan-out

Verified on neoblanka: factory-lint 12 scripts PASS; test-integration
14 V2 cases + 28 DLQ classifier cases + 12 syntax cases all PASS.
2026-06-14 10:37:35 -04:00

2 KiB

GPU backend — scope note

What lives upstream

  • bend wire protocolexamples/cuda-fanout/ (gpu-worker.lsp, bend.lsp, bend-macros.lsp, wire.lsp). S-expression + binary (BSHK magic) modes. Tier-agnostic — runs under Python, C, or asm tier.
  • GPU launchermake gpu-worker LUMBDA={c,python,asm} PORT=NNNN. Spawns gpu-worker.lsp on chosen tier.
  • Factoryfactory/ orchestrates a queue of cells against any backend reachable via LUMBDA_BACKEND_CMD. Backend-agnostic.

What stays in a domain consumer

Specific GPU simulator backends (Clifford tableau, stabilizer, surface-code) couple deeply to a research domain's operation set. They live in domain consumers:

  • Foxhop ecdsa Clifford tableau simulator: ~/git/www.foxhop.net/ecdsa/cuda/ — secp256k1 group operations, BSHK binary ops format with secp-specific opcodes.

These backends accept a portal-file interface and expose LUMBDA_BACKEND_CMD-compatible call shape. Consumers point factory at their backend; factory provides everything around it (queue, autoscaling, DLQ, tier admission).

Why a generic Clifford backend stays out of this port

A truly upstream Clifford simulator would need:

  1. Generic ops format — abstract over per-domain instruction sets (currently main_ops.c carries secp-specific group ops).
  2. Domain-agnostic memory model — current tableau layout sized for n=257 qubits + ancilla; would need width-parametric VRAM accounting.
  3. Standalone test coverage — current correctness gates run against secp256k1 truth tables.

Each is several days' work + a research-quality decision (which Clifford simulator family becomes canonical upstream). Out of scope for this AGPLv3 share-back. Filed as future work.

What this means for AGPLv3 compliance

The factory + lumbda quantum primitives discharge the share-back. The domain-specific backend belongs to consumer repos under their own license (AGPLv3 if derivative). Foxhop's ecdsa/cuda/ remains AGPLv3 in its tree.