OverviewFilesCommitsIssuesDocsReleasesPeers

atomspace-gpu commits / 1b1bde4

Step 3 DONE (with correction): mating located in gpu-substitute.cl, not connector-rewrite
Read-the-whole-file audit corrected a mislabel: gpu-connector-rewrite.cu is grammar-cost + class-MI aggregation, NOT connector-mating. The real pre-sheaf class-merge (Linas's "merge tab labels into classes") is gpu-substitute.cl: assign_classes -> substitute_pairs -> rebuild/merge -> substitute_section_words = sparse label-substitution + hash-dedup with count-summing. test-substitute.c builds+runs on the RTX 2070, 6/6 PASS, verified vs hand ground truth (merge 5+3=8, self-pair elim, 100K-pair benchmark merged 15284). Framing correction: mating = sparse hash-merge + count-dedup, NOT dense SpGEMM. "Disjuncts are tensors/SpGEMM" is Linas's abstract view; the sparse substitute+dedup is the correct concrete realization (sparsity forces symbolism). Clustering (which words merge) = gpu-cosine + components. OPEN (same as sections): tie to opencog learn gram-class on data. All three primitives now audited: Values/MI fully closed (formula+GPU+ data), Sections + Mating data-model-verified + GPU 6/6, opencog-data ties deferred. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
1b1bde4090a8d108fca2b20348d6fb118918cdd1
by plankatron <fleeky@gmail.com> · 2026-07-05T16:56:12.000Z

Changed files (1) +17 -6

spec/convergence-with-linas.md +17 -6
……@@ -25,7 +25,10 @@ writing refines this substantially:
25253. **Mating = contraction over MERGED connector-type classes (a pre-sheaf).**
2626 clique → erase edges → saw into jigsaws → label = **sheaf** (unique reassembly);
2727 merge labels into classes = **pre-sheaf** = a generative grammar (many
28 assemblies). This is the precise semantics of `mating = SpGEMM`.
28 assemblies). CONCRETE REALIZATION (audited 2026-07-05): this is **sparse
29 label-substitution + hash-dedup with count-summing** (`gpu-substitute.cl`), NOT
30 dense SpGEMM. "Disjuncts are tensors / SpGEMM" is Linas's *abstract* view; the
31 sparse hash-merge is the correct implementation ("sparsity forces symbolism").
29324. **Build direction: agents crawling a corpus, not batch.** *"the batch processing
3033 must be replaced by agents… that is absolutely the correct design point."* The
3134 minimal case: *"the simplest sensor detects word-pairs, and the world-model is
……@@ -80,9 +83,11 @@ Both prongs share one verification target per primitive.
8083 ├─ HyperStorageNode (event-sourced log) reproducible replay/fork/lineage (M0-M4 built)
8184 └─ P2P federation (autobase) a society of bounded agents (M4 built)
8285 Compute / shared middle (his transforms = our kernels)
83 ├─ counting, MI = Values dynamics (gpu-counting/gpu-mi; MI formula-verified)
84 ├─ sections = germ-as-tensor (gpu-sections; unaudited)
85 └─ connector-rewrite = mating / SpGEMM (gpu-connector-rewrite; unaudited)
86 ├─ counting, MI = Values dynamics (gpu-counting/gpu-mi; DATA-verified == opencog)
87 ├─ sections = germ-as-tensor (gpu-sections; data-model verified, GPU 6/6)
88 ├─ cosine + components = clustering (which words merge into a class)
89 ├─ substitute + dedup = MATING / pre-sheaf (gpu-substitute; label-merge+count-dedup, GPU 6/6)
90 └─ grammar-cost+class-MI (gpu-connector-rewrite; LG dict export)
8691 Automaton (his mind, our stub)
8792 ├─ menu {Tₐ} one kernel per tick
8893 └─ selector max-weight → softmax → sandpile-avalanche (pluggable)
……@@ -129,8 +134,14 @@ Both prongs share one verification target per primitive.
129134 STRUCTURAL — run the same parse through opencog's pseudo-cset extraction and match
130135 `(word, connector-multiset, count)`. Needs the opencog MST pipeline (word-pair MI →
131136 MST → cset) — a sub-project, deferred. Sections are at MI's pre-1b bar.
1323. **Audit `gpu-connector-rewrite.cu`** — does it implement the pre-sheaf
133 (type-class merge) mating semantics? Tie to opencog rewrite / matrix.
1373. **Audit mating** — DONE 2026-07-05 (with a correction). `gpu-connector-rewrite.cu`
138 is MISNAMED — it's grammar-cost + class-MI aggregation, NOT mating. The real
139 pre-sheaf class-merge is **`gpu-substitute.cl`** (assign_classes → substitute_pairs
140 → rebuild/merge → substitute_section_words): sparse label-substitution + hash-dedup
141 with count-summing. `test-substitute.c` builds+runs on the RTX 2070 → 6/6 PASS,
142 verified vs hand ground truth (merge 5+3=8, self-pair elimination). Clustering
143 (which words merge) = `gpu-cosine` + components. OPEN (same as sections): tie to
144 opencog's actual `learn` gram-class code on data.
1341454. **Selector stub** — a `{Tₐ}` dispatch loop over the verified kernels: one fired
135146 per tick, selection pluggable (max → softmax → avalanche). The first runnable
136147 piece of his automaton, on verified transforms.