Skip to content

Commit 7ce1562

Browse files
authored
Merge pull request #405 from AdaWorldAPI/ccr-45a41fb4-0j3i0l
Synergy map R7.6: reconcile with lance-graph #1853/#1854, re-scope N22/L21/H13
2 parents 5c6d98b + 18b59d5 commit 7ce1562

1 file changed

Lines changed: 54 additions & 0 deletions

File tree

‎.claude/knowledge/synergy-map-2026-10-29.md‎

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -438,6 +438,60 @@ five backends.
438438
All four finished with success on `de03001` after the merge (run
439439
41053380600).
440440

441+
### R7.6 Amendments after lance-graph #1853 and #1854 (2026-10-30)
442+
443+
R7 was written before lance-graph #1853 and #1854 merged. Its L11–L15 row
444+
("unchanged") and R5's census are stale. The measured findings in R7.1–R7.5
445+
stand.
446+
447+
| R7 item | status now | evidence |
448+
|---|---|---|
449+
| L11–L12: Unsqueeze, Shape, Concat | registered (registry v2): Shape `0x0F60–63`, Unsqueeze `0x0F65/66`, Concat `0x0F67/68` over `ndarray::concatenate` | lance-graph #1853 |
450+
| L13: Gather | int64 Gather registered (`0x0F64`, ndarray `select`). The f32 (embedding) and bool cases remain: 2 nodes | #1853 |
451+
| L14: f32 MatMul | the ndarray word exists (`matmul_f32`, #400); Tract registration still open. MatMul is 252 of the 2,461 runtime nodes | #1854 census |
452+
| L15: f16 Cast | still open | — |
453+
| int64 Add/Sub/Mul/Div/Range | ndarray side done (#401, `hpc::checked_i64`). Tract integration is not yet established; #1854 pins the refusal (`int64_arithmetic_is_refused_until_checked_words_exist`, fixture `i64_arith`) | ndarray #401, lance-graph #1854 |
454+
455+
Jina coverage, inputs pinned to `[1,10]`, as [WHEN-true, WHEN-not-true,
456+
unregistered]: **6,581 / 114 / 925**, with **4,499** folded nodes (registry
457+
v3, #1854). This supersedes R5's census. The 56 Reshape and 57 Expand UNKNOWNs
458+
all wait on int64 `Mul`/`Div`, so wiring #401 into Tract is what moves them.
459+
460+
#1854 also confirms N23 from the consumer side: `Erf` is admitted as Bounded
461+
at 2 ULP over `vserf`, and #1853 measured `vserf` about 4× slower than
462+
Tract's `erf` on its host (it trades accuracy for speed, see N23).
463+
464+
**N22, L21 and H13, re-scoped.** The question behind N22 is not "who calls
465+
`full_add_mask`" but whether the adders enable arithmetic the typed SIMD
466+
words cannot express: isolated-carry adds across packed fields such as
467+
`5×U24/I24` (120 payload bits + 8 metadata bits) or `14×U9/I9` (126 + 2
468+
spare) in one 128-bit carrier.
469+
470+
- **L21 is one antenna, not the gateway to H13.** A carry-save count fold in
471+
mask-risc is a candidate consumer. So are a packed microtile and the KPEA
472+
method graph.
473+
- **H13 stays deferred.** It means proving one consumer that binds a kernel,
474+
then exposing only the arithmetic that consumer needs. `Abacus` is not
475+
promoted because its arithmetic is correct; #402's cost gate stands.
476+
- **L20 and H12 are tracked separately**, as backend-lowering work. H12
477+
(AVX2 compare-mask packing for `select`) is a shared cost: `simd_exp_f32`
478+
and the exp-based ONNX ops, the U9 sign-plane work (`mask_blend`, #388,
479+
#389, #395) and any packed microkernel that selects per field.
480+
481+
**Next falsifier: its own PR, not this map.** One small executable proof of
482+
"one register, many virtual arithmetic lanes; one prepared method, many
483+
thoughts":
484+
- MICRO: `5×U24/I24` and `14×U9/I9` over 128-bit carriers. Compare packed
485+
bitwise, isolated-carry and widened SIMD realizations; test cross-field
486+
carry isolation, sign extension, overflow, a stencil and an exact fold.
487+
- MACRO: a method-binding interface between DR64³/DT64 and ndarray that
488+
reuses Thought-0 invariant work across sparse alternative thoughts without
489+
dense intermediates. Ownership stays `MailboxSoaView`/`MailboxSoaOwner`. No
490+
new scheduling: any work sharing happens inside the interlaced stages of a
491+
method already admitted.
492+
- First proof: borrowed positional inputs, one exact packed primitive, one
493+
correct fold, each checked against an existing oracle.
494+
441495
## 0. What the six ndarray PRs did
442496

443497
| PR | closed | opened or left |

0 commit comments

Comments
 (0)