Confidential · Patent Pending · Measured live on this machine

How much faster is WICK recall,
and does it still find the right thing?

A single script, run warm and single-threaded on an Apple M5 Max, times WICK associative recall against conventional memory retrieval as the corpus grows from 1,000 to 1,000,000 items — then proves, on real data, that the fast method returns the same answers as the exhaustive one. Every corpus is labeled real or synthetic; the baseline is named; the caveats are stated.

chip Apple M5 Max python 3.14.6 numpy 2.4.3 ANN baseline faiss 1.14.3 · IVF-Flat threads single PYTHONHASHSEED 0 median of 25 warm queries

01 Scaling — query latency vs corpus size

Synthetic community corpus (labeled synthetic — the same items feed all three methods). Brute-force exact cosine grows ~linearly; WICK-beam and a real ANN index stay ~flat. So the brute-vs-WICK advantage grows with N.

brute-force exact cosine (BLAS) WICK exhaustive field (reference) faiss IVF-Flat ANN WICK beam (associative)

Both axes log-scaled. Lower is faster. The gap between the amber and teal lines is the headline.

Corpus NBrute cosinefaiss ANN WICK beamExhaustive fieldBrute ÷ BeamBeam visits
1,0000.0084 ms0.0129 ms0.403 ms0.24 ms0.02×568 (1.8×)
10,0000.0619 ms0.0334 ms0.460 ms2.51 ms0.13×904 (11×)
100,0001.485 ms0.102 ms0.516 ms41.3 ms2.88×966 (104×)
1,000,00015.13 ms0.319 ms0.904 ms1,276 ms16.7×987 (1,013×)

At N=1k brute-force actually wins — WICK-beam carries a fixed ~0.4 ms setup cost. The crossover is near 50k; by 1M the beam visits only ~987 of a million nodes and is 16.7× faster than brute-force, while the exhaustive field it approximates costs 1.28 s. The advantage is the slope, not any single row.

02 The kernel — bit-ops vs floating point

One comparison, one stored item. WICK compares 256-bit hypervectors with a hardware popcount; a vector database computes a 256-dim float32 dot product. Measured per comparison.

8.14 ns
float32 dot · 256-d
numpy BLAS (optimized)
11.98 ns
popcount Hamming
numpy (un-fused — loses)
1.06 ns
popcount Hamming
compiled C-SIMD
7.7×
C-SIMD popcount vs
optimized BLAS float

Honest nuance a skeptic should hear: in pure numpy the bit-kernel is slower, because numpy's popcount isn't a fused SIMD loop. The real win needs the compiled kernel — where 256-bit popcount hits 1.06 ns (32× less memory per item, one CPU instruction), 7.7× faster than the best float path and 64× faster than a naive float loop.

03 Quality preserved — the credibility check

On the real 19,293-node co-access corpus (instrumented access trajectory, 200 held-out session queries): does the fast beam return the same answers as the exhaustive field?

0.974
top-10 agreement
beam vs exhaustive field
1.000
exhaustive top-1
recovered by beam
0.925
held-out task recall
WICK beam (exact: 0.930)
~245×
beam speedup vs field
on real data

The fast beam visits ~112 of 19,293 nodes yet reproduces the full-graph field's top-10 97% of the time and matches its held-out recall within half a point (0.925 vs 0.930). Speed here does not cost quality.

04 What this shows — and what it doesn't

✓ What it shows

  • Scale-invariant recall. WICK-beam is ~flat in N while brute-force grows linearly — the speedup grows with the corpus (16.7× at 1M and climbing).
  • A faster kernel. The 256-bit popcount runs at 1.06 ns/comparison compiled — 7.7× over optimized BLAS, using 32× less memory per item.
  • No quality loss. On real data the fast beam returns the exhaustive field's answers ~92–97% of the time.

✗ What it doesn't

  • Not the same task as vector search. WICK does associative recall over a co-access graph (it needs the graph = warm, related memories).
  • It does not beat a real ANN. faiss HNSW/IVF is also sublinear — we don't claim WICK is faster than a vector database at vector-NN.
  • The scaling ladder above 19k is synthetic; the quality numbers are real. In pure numpy the bit-kernel doesn't win — it needs the compiled SIMD path.
Reproduce: python3 wick_speed_demo.py — self-contained (numpy + scipy; optional faiss-cpu for the ANN baseline, optional cc for the bit-kernel; both degrade with a printed note). Engine (build_A / exact_field / beam) copied verbatim from run_beam_scaling_real_v1.py. Warm cache · single-thread · median of runs · PYTHONHASHSEED=0.
Outputs results/speed-demo-v1.json. Real corpus = instrumented access-trajectory co-access. Synthetic corpus = community graph + matched embeddings (labeled).
WICK Total Recall · confidential / patent pending · for Joseph Weinberg & Noah Baron.