Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Open work after stage localization

Status, 2026-10-30. The weight accounting in option 1 is done: lamina drive onto the medulla found the ON path held below rest by inhibitory L1 and the OFF path under threshold because L2 fires too slowly. The operating-point sweep then raised --r-base: the OFF medulla (Tm1, Tm2, Tm4) wakes at higher r_base, and T5 stays silent on the real imago. What reaches T5 found T5 both braked (CT1, modelled as one point cell per side, fires flat out) and under-powered (Tm9 silent). Open: a graded-rate early visual model (option (b)) and a per-column CT1, and why the lamina bias rule misses L1 and L3. The rest of this note is the 2026-09-16 record, annotated where it is out of date.

Goal

Record the next experiments and the machine layout after the stage-localization probe, so a later session does not have to reconstruct the discussion.

Setup

  • git: master at 5457ed1 when this note was written (stage-overlay code and notebook already pushed)
  • machines in play: Talos (no GPU), straylight (AMD Radeon 8060S, ROCm, gfx1151), titan (GPU), Mac M3 Max (mps)
  • layout: most machines share the same source paths (~/src/flatline, data/imagos/, connectome feathers under the same --source-dir)
  • imagos are runtime data and are never committed

What happened

After the stage-localization run showed the lamina firing and the medulla silent, the next science step and the CPU-vs-GPU machine split were discussed, then parked here instead of being implemented in the same session.

Options

Science (priority order)

  1. Lamina → medulla weight accounting (recommended next). On the real v1.0 imago, for each of Mi1, Tm3, Mi4, Mi9, Tm1, Tm2, Tm4: median effective incoming weight from L1/L2/L3, the sign of that input, and the fraction of cells with any lamina drive at all. Compare the shuffled control. A medulla cell with no lamina input, or with a net input that never crosses threshold at the measured lamina rates (L1 ~38 Hz, L2/L3 ~21 Hz), would explain the drop without touching the tonic-bias policy.
  2. Only if (1) says the medulla should fire and does not: revisit the spec 8.6 fallback (graded or resampled lamina). The stage-localization run already ruled this out as the first move: the lamina spikes.
  3. Not next: raising target_hz, encoder gain, --bias-undriven, or a longer --seconds to “wake” a silent lamina. The lamina is not silent.

Keep the probe’s T4/T5/HS/VS verdict unchanged. Stage rates stay a diagnostic overlay (report["stages"]). Every result still needs the shuffled-connectome control. Tests still never read the real dataset; real-imago commands are CLI tools.

Machines and imagos

Facts, not proposals:

  • build-imago is CPU ingest (pandas/feather). It does not use a GPU.
  • Imago.save writes CPU tensors through safetensors plus a JSON sidecar. Imago.load returns CPU tensors. Imago.to(device) is what places a run on cuda, mps, or cpu. An imago built on any host runs on any other.
  • Running the imago (probe, bench) is the GPU-shaped part. Full-imago bench on the Mac was about 0.13× realtime on cpu and 0.53× on mps. On Talos, pick_device("auto") already falls through to cpu. A four-direction probe there is minutes, not impossible.
  • make sync-straylight excludes data/, so a built imago does not travel with the code tree.

Deferred at this checkpoint (status as of 2026-10-30):

  • Built since: make push-imagos / make pull-imagos (IMAGO_HOST, default straylight) and make sync-titan now exist; see the Remote target section of AGENTS.md.
  • Remote checkout path is src/flatline on straylight; titan and Talos are expected to match.
  • Correction: titan is the M3 Max Mac (--device mps), not a CUDA host, and straylight runs --device cpu until a ROCm torch is set up; the --device cuda advice below is wrong for both.
  • Since 2026-10-30, wntrmute replaces Talos. Read “wntrmute” wherever this note says Talos; its checkout is src/flatline-imago, and the Remote target section of AGENTS.md has the current layout.

Recommended workflow until those targets exist: build on straylight or titan if the feathers live there, scp the imago pair onto Talos, run with --device cpu (or omit the flag). On straylight/titan run the same file with --device cuda. Superseded (2026-10-30): use make push-imagos / make pull-imagos instead of scp.

Conclusions

The next experiment is the lamina→medulla \(W_{\mathrm{in}}\) account, not a graded lamina and not more tonic-bias knobs. Imagos are already portable; Talos does not need a GPU to load one. GPU hosts are for running the engine, and for holding the large source and product files. Same paths on most machines. Do not commit data/.

Next steps

  1. Weight accounting in option 1, with a notebook entry, on whatever host is convenient (--device cpu on Talos, --device cuda on straylight or titan). Done 2026-10-30: lamina drive onto the medulla.
  2. Add the deferred rsync targets when copying imagos by hand gets old. Done: make push-imagos, make pull-imagos and make sync-titan.
  3. Only then consider the spec 8.6 graded-lamina fallback, and only if the accounting says the medulla should already be firing. Answered no (2026-10-30): at the measured lamina rates no medulla cell has a net lamina input above the threshold gap, so the condition is not met.