From 424051b7a44d41545844e89e841b16b09ac4f028 Mon Sep 17 00:00:00 2001 From: "russell@unturf.com" Date: Fri, 5 Jun 2026 18:16:08 -0400 Subject: [PATCH] =?UTF-8?q?catalog:=20cuda-secp256k1=20v3=20windowed-G=20?= =?UTF-8?q?=E2=80=94=2013.60=20Mkeys/s=20@=20n=3D1M=20(1.73x=20v1)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Form A Day-3 shipped at lumbda ecfe27a. Windowed-G ladder (w=4, 16-entry G-table built once via batch-inverse on the 15 Z-coords) landed clean. Bench on 3090, n=1M (best-of-3, --no-batch-inv): v1 (Day-1) 127.04 ms → 7.87 Mkeys/s v3 (Day-3 w=4) 73.54 ms → 13.60 Mkeys/s (1.73x v1, ~309x coincurve) Byte-identity PASS at n in {32, 1000, 10000, 100000, 1000000} plus known-small edge cases (k in {1, 2, 3, 7, 0xdeadbeef, n-1, n, 2^128-1}). Daemon default still serves v1; --window-w 4 flag selects v3 explicitly. Fox's call on flipping the daemon default. Day-4 plan: stack v3 + Day-2 batch-inv. v3 cut scalar_mul; the residual inversion cost now actually matters, which is what Day-2 needed to win. Three agents still in flight: walker promotion (#39), lever generator (#40), ai.foxhop.net second worker (#30). --- examples/cuda-fanout/CATALOG.md | 2 +- www/bend.html | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/examples/cuda-fanout/CATALOG.md b/examples/cuda-fanout/CATALOG.md index ab48b87..4e096be 100644 --- a/examples/cuda-fanout/CATALOG.md +++ b/examples/cuda-fanout/CATALOG.md @@ -22,7 +22,7 @@ form-status column says `planned` until numbers exist. | `cuda-shake-fanout` | `shake256-fanout` | 3090 | 12x over host hashlib at 1M x 16 B inputs | `(cuda-shake-fanout (quote (hex …)) out-bytes)` + BSHK binary | | `cuda-sim-ops-bin` | `ecdsa/cuda/demo_ops` | 3090 | 1.07x at 128 batches (8192 shots); crossover ~115 batches | `(cuda-sim-ops-bin "path/to/ops.bin" n-batches)` | | `cuda-bignum-cgbn` | `cgbn-batch-worker` | 3090 | 1.28 Gops/s kernel mod-mul at n=1M (256-bit, ~256x GMP CPU); 9 ops total | `BCGB` binary: op_id + bitwidth + n + modulus + a + b | -| `cuda-secp256k1-batched-mul`| `secp256k1-batch-mul` | 3090 | 6.51 Mkeys/s at n=100k (~148x coincurve CPU); Montgomery batch inv Day-2 → projected 6.5 Gkeys/s | `BSCP` binary: scalars + base-point | +| `cuda-secp256k1-batched-mul`| `secp256k1-batch-mul` | 3090 | v1 7.87 Mkeys/s @ n=1M; v3 (windowed-G w=4) **13.60 Mkeys/s @ n=1M** (1.73x v1; ~309x coincurve); Day-4 v3 + Montgomery batch inv stacking pending | `BSCP` binary: scalars + base-point | | `cuda-sim-axis-flip` | `ecdsa/cuda/demo_axis` | 3090 | 217 Mops/s @ K=32 M=4 (per-candidate parallel); 23.7x over per-shot N=4 at same M; LOSES to per-shot by 14% at full N=128 saturation | `(cuda-sim-axis (variant-paths …) n-shots)` | `cuda-sim-ops-bin` numbers are humbling on purpose: kickmix is diff --git a/www/bend.html b/www/bend.html index 4ddeb5a..8359109 100644 --- a/www/bend.html +++ b/www/bend.html @@ -143,7 +143,7 @@ make gpu-worker LUMBDA=asm # smallest footprint cuda-secp256k1-batched-mul live RTX 3090 - 6.51 Mkeys/s at n=100k (~148× coincurve CPU); Day-2 Montgomery batch inversion projected toward FixedPaul's 6.5 Gkeys/s on 4090 + v1 7.87 Mkeys/s @ n=1M; v3 (windowed-G w=4) 13.60 Mkeys/s @ n=1M — 1.73× v1, ~309× coincurve CPU. Day-4 v3 + Montgomery batch inv stacking is the next step toward FixedPaul's 6.5 Gkeys/s on 4090 BSCP binary: scalars + base-point → BSCR points