Summary
From the weights server to the systolic array
The weights server writes the model once through the 3R regenerator. The bundle of MCF cables circulates as a ring of spools joined by MC-PDFAs; pods tap it with 96:4 splitters, boost it, and pass it down a passive bus to the chassis.
Ring
Pod
Chassis
What travels on each cable
Each cable is a core group that feeds one accelerator position in every chassis. Cable k carries only the layers of pipeline stage k. All groups are offset by whole loops, so they circulate in phase.
Bundle cross-section
One loop of a cable
Streamed weight packet
The weights server unrolls each matrix into the array's consumption order before injection, so the accelerator needs no address translation or layout change.
Lanes of one cable
Loop time sets everything
The ring must hold C = M / (1 − s) at the bundle rate B, so the loop time is τ = C / B and the ring length is τ·v. Each pipeline stage takes one full loop.
Timing parameters
Pipeline occupancy
How many pods and chassis fit
Each 20 dB amplifier first pays for its spool. What is left funds the 0.18 dB through-loss of each pod tap. On the pod bus, the 4 % branch must stay above receiver sensitivity at the last chassis.
Ring segment
Pod bus, received power per λ
Against an HBM3e cluster of the same size
Weight-delivery power
Energy per token
Memory provisioned
Savings as slack grows
The same model, as code
Every number on this page comes from one pure function, compute(params). It ships as fiber_memory_model.js (browser and Node, with a CLI) and fiber_memory_model.py, which return identical results.
Current settings
// Node
const FM = require('./fiber_memory_model.js');
const r = FM.compute({ preset: 'llama3-405b', slackPct: 30 });
console.log(r.ring.tau_ms, r.ring.length_km, r.power.savingPct);
# Python
from fiber_memory_model import compute, sweep
r = compute(paramsB=405, slackPct=30)
curve = sweep({}, "slackPct", range(0, 81, 5), lambda r: r["power"]["energySavingPct"])
# Command line
node fiber_memory_model.js preset=llama3-405b slackPct=30
python fiber_memory_model.py accelerators=20000 json=true
Results are grouped as model, optics, ring, taps, cluster, pipeline, memory, power and warnings. KV-cache sizing, energy per token, HBM stack counts and attention-slack context coverage extend the paper's model; their assumptions are listed in the source header.