Seventeen linear systems, from a pick-and-place robot's Kalman gain to 256×256 random matrices. Each one is solved digitally (Exact, CG), on an emulated thermodynamic chip (plain thermox), and on the same chip inside iterative refinement (IR cold, IR warm).
Emulator: thermox 0.0.3 (Ornstein–Uhlenbeck sampler) · robot: Franka Panda in MuJoCo · accuracy target: 1e-4 relative error unless stated
Exact: digital Cholesky solve, the reference answer
CG: digital conjugate gradient, the standard iterative method
Plain thermox: one chip run of N samples, averaged
IR cold: the chip inside iterative refinement, starting from zero
IR warm: the same, starting from the previous answer
Findings
Iterative refinement fixes the chip's accuracy problem on 16 of 17 problems.To reach 1e-4, plain thermox would need 10⁸–10¹² samples. IR needs 40–33,000.
Chip time tracks the condition number κ, not the matrix size.IR needs about 200 samples at κ = 10 and 17,000 at κ = 1000, at d = 16 and d = 256 alike.
For robot-sized problems, the CPU wins.Kalman gains, arm IK and a 70-variable MPC take 0.3–10 µs on one CPU core. An optimistic future chip needs 4–330 µs.
The chip pulls ahead only on large dense systems.Measured at d = 256: from 1.3× slower to 2× faster than the CPU. Extrapolated to d ≥ 1024: 1.3–5× faster than one core.
IR survives imperfect hardware, but 1% mismatch makes κ ≈ 1000 problems physically unstable.At 10% coupling mismatch, plain thermox is 30–290% off. IR still reaches the target.
How the solvers work
On its own, the chip gets accurate very slowly. Wrap it in a cheap digital check-and-correct loop and it gets accurate fast.
The common task
Every problem here is a linear system: find x in A·x = b. Both A and b are known. A is square, symmetric and positive definite.
Robots solve thousands of these a second. A Kalman filter uses one to weigh a camera reading against a prediction. Inverse kinematics uses one to turn a desired hand motion into joint motions. Model predictive control uses one to plan torques a fraction of a second ahead.
Two numbers say how hard a system is. The size d is the number of unknowns. The condition number κ says how unequal the matrix's eigenvalues are: κ = 1 is trivial, κ = 10,000 is hard. On a thermodynamic chip κ matters most, because the system's slowest direction relaxes κ times slower than its fastest.
How a thermodynamic chip solves A·x = b
The chip is d coupled analog cells. In Normal Computing's prototype, that's 8 RLC circuits on a circuit board. You program the couplings so the cells' voltages get pulled toward the solution x*. Meanwhile, heat noise keeps kicking them around.
So the voltages never settle. They wander around x*, and the time average of the readings is your estimate. thermox simulates exactly this: an Ornstein–Uhlenbeck process.
Two things limit how good that average gets:
Start-up bias. The chip starts at x₀ = 0, so the early readings drag the average toward zero.
Slow averaging. Noise averages out like 1/√time. Ten times more accuracy costs 100 times more chip time.
After 80 relaxation times, the running average (black dot) is still about 50% off the true solution (cross). The matrix's slow direction takes 4 relaxation times to forget each kick of noise.
Iterative refinement: check the answer, then solve only for the mistake
The chip's error is a fixed fraction ε of whatever you ask it to solve. So iterative refinement (IR) only ever asks it for the part that's still wrong:
The digital computer checks the current answer exactly: r = b − A·x.
It scales that leftover r up to the chip's full input range.
The chip solves for the missing piece d.
The computer adds it: x ← x + d.
Each round multiplies the remaining error by ε. With ε = 0.5, that's 50% → 25% → 12.5%. Accuracy improves geometrically with rounds, not like 1/√time.
IR cold starts from zero. IR warm starts from the robot's previous answer. The robot solves a slightly different system every few milliseconds, so with a warm start the first leftover is already tiny.
Only the two highlighted arrows cross between computer and chip. On real hardware, each crossing costs converter time.
Same 30 samples: plain thermox lands 42% off, IR (3 rounds of 10) lands 9% off. Medians over 300 solves of a 2-cell system (κ = 4). At 1,000 samples IR reaches machine precision; plain thermox is still about 8% off.
The digital baselines
Exact (Cholesky) factorises the matrix and solves directly, in about d³/3 operations. It's the reference answer.
CG (conjugate gradient) is the standard iterative method. Each step is one matrix–vector product (about 2d² operations), the same digital cost as one IR round. We also tried Jacobi-preconditioned CG (PCG), cold and warm, and report the best.
Rules that keep the comparison fair
Same targets. Relative error 1e-2, 1e-4 and 1e-6 against numpy's exact answer. A configuration counts only if at least 95% of its solves reach the target.
Chip time in samples. One sample is the chip's fastest relaxation time. The matrix is scaled so its largest eigenvalue maps to that speed.
Full converter range. Each input is scaled so its largest entry uses its converter's full range, because every cell has its own converter.
Best configuration for every method. IR: N from 10 to 1,000 samples per round, with or without Jacobi scaling, cold or warm. CG: plain or Jacobi, cold or warm.
Equal chip time in every comparison picture. Plain thermox gets exactly as many samples as IR used. Each picture shows the same chip time spent two ways.
For wall-clock time we model one x86 CPU core and three chip scenarios. The core runs at about 1 GFLOP/s on tiny matrices and 20 GFLOP/s at d = 256.
Eight problems come from the robot and from physics simulation. The other nine are synthetic matrices that vary size and difficulty separately. Every problem card has the same layout:
a strip of facts and two verdict chips;
a short explanation in plain language;
the methods' solutions side by side, at equal chip time;
convergence curves for one representative solve, with chip time on the left and digital work on the right;
the numbers: chip samples and digital steps to reach 1e-4, then estimated time per solve for the CPU, plain thermox and IR on each chip scenario.
The verdict compares the optimistic chip with the faster of the two CPU methods, at 1e-4. The prototype-class chip loses to the CPU on every problem, by 200× to 15,000×.
Robot perception · P1–P3
The Kalman filter in the pick-and-place robot
On all three cameras IR warm matches the exact filter, and the CPU is still faster.
A Franka Panda arm picks a 4 cm cube off a conveyor moving at 8 cm/s. A simulated camera reports the cube's position 33 times a second, with about 1.5 cm of noise. A Kalman filter blends those readings with a constant-velocity model to estimate where the cube is and how fast it's going. The arm aims for where the cube will be.
Every camera frame, the filter solves S·Kᵀ = H·P for its gain K. The gain decides how much to trust each new reading. S = H·P·Hᵀ + R is 3×3, built from the filter's uncertainty P and the camera noise R. There are 6 right-hand sides.
The gripper (green) heads for where the filter says the cube will be (yellow). White is the true cube path, red dots are camera readings, and the coloured line is the filter's estimate.
Stretching the noise along the viewing ray makes S harder: κ ≈ 1, 9 and 94. A depth camera is much noisier along its ray than across it.
P1Kalman gain, isotropic camera
size d
3
right-hand sides
6
condition κ
1
solves
116
matrix changes
every solve
IR reaches 1e-4optimistic chip 13× slower than CPU
The problem
The camera is equally noisy in every direction, so the filter is equally unsure in x, y and z. That makes S a number times the identity: κ = 1, the easiest system there is. It's the system from the original pick-and-place test.
What happened
IR warm gives a filter you can't tell apart from the exact one. It starts from the previous gain and spends 39 chip samples as 3.9 rounds of 10, landing within 0.006% of the exact gain.
With the same 39 samples, plain thermox gets the gain wrong by 27% on average. The filter shrugs that off for position: 7.6 mm error versus 6.7 mm exact. Velocity suffers more: 17.6 versus 14.7 mm/s.
CG needs under one iteration on average, because a scaled identity takes one step.
IR warm got the same pick result as Exact on all 100 seeds (94% success); plain thermox at N = 10 fell to 89%. Panels: Exact, plain thermox N = 10,000, plain thermox N = 10, IR warm with 3 rounds of 10. From the earlier 100-seed test, which used the original solver scaling.
At 39 samples per gain, the IR filter (yellow) sits on the exact one (grey); plain thermox (orange) wanders. Plain thermox's gain is 10–40% off at every update, while IR's stays at the 1e-4 target.
For one gain update, IR reaches 1e-4 in about 30 samples warm and 90 cold; plain thermox needs about 10⁸. CG solves this trivial system in one matrix–vector product.
Numbers
Plain thermox
IR cold
IR warm
Digital CG
Device samples to 1e-4
3.2e8 *
109
39
–
Digital mat-vec products
–
10.9 (N=10)
3.9 (N=10)
0.7 (warm CG)
Time per solve
to 1e-2
to 1e-4
CPU Cholesky
0.334 µs
0.334 µs
CPU CG
0.339 µs
0.444 µs
Plain thermox, prototype chip
94.7 ms *
15.8 min *
Plain thermox, optimistic chip
1.89 ms *
18.9 s *
Plain thermox, physical limit
190 µs *
1.89 s *
Thermox + IR, prototype chip
94.4 µs
321 µs
Thermox + IR, optimistic chip
1.45 µs
4.36 µs
Thermox + IR, physical limit
0.638 µs
1.42 µs
* Plain thermox did not reach this target within 10,000 samples; its time uses the samples the 1/√N trend says it would need.
P2Kalman gain, depth noise 3×
size d
3
right-hand sides
6
condition κ
8.65
solves
116
matrix changes
every solve
IR reaches 1e-4optimistic chip 28× slower than CPU
The problem
Now the camera is 3× noisier along its viewing ray, which points down at the belt at an angle. The noise becomes a tilted ellipsoid, and S becomes a full 3×3 matrix with κ ≈ 9.
What happened
Going from κ = 1 to κ = 9 more than doubled IR's chip time, from 39 to 88 samples per gain.
IR warm, with Jacobi scaling, spends those 88 samples as 8.8 rounds of 10 and matches the exact filter. Plain thermox gets the same 88 samples and is 30% off. Its position error is 10.9 mm, versus 10.1 mm exact.
At 88 samples per gain, plain thermox's gain is about 30% off at every update; IR holds 1e-4. The camera readings spread wider than in P1.
For one gain update, CG needs 1–2 steps and IR about 9 rounds. A 3×3 system never takes CG long.
Numbers
Plain thermox
IR cold
IR warm
Digital CG
Device samples to 1e-4
1.0e9 *
197
88
–
Digital mat-vec products
–
19.7 (N=10)
8.8 (N=10)
1.7 (warm CG)
Time per solve
to 1e-2
to 1e-4
CPU Cholesky
0.334 µs
0.334 µs
CPU CG
0.51 µs
0.748 µs
Plain thermox, prototype chip
302 ms *
50.2 min *
Plain thermox, optimistic chip
6.03 ms *
1 min *
Plain thermox, physical limit
603 µs *
6.03 s *
Thermox + IR, prototype chip
173 µs
634 µs
Thermox + IR, optimistic chip
2.46 µs
9.41 µs
Thermox + IR, physical limit
0.807 µs
2.15 µs
* Plain thermox did not reach this target within 10,000 samples; its time uses the samples the 1/√N trend says it would need.
P3Kalman gain, depth noise 10×
size d
3
right-hand sides
6
condition κ
94.1
solves
116
matrix changes
every solve
IR reaches 1e-4optimistic chip 224× slower than CPU
The problem
Ten times more noise along the viewing ray pushes κ to about 94. On the chip, the slowest direction of S now relaxes 94× slower than the fastest. So each IR round needs about 100 samples before it reliably shrinks the error.
What happened
This is the worst robot problem for the optimistic chip: 224× slower than a CPU solve.
IR warm still matches the exact filter. It takes 11.6 rounds of 100 samples to get there.
At the same 1,159 samples, plain thermox's gain is 44% off. Oddly, the filter's position error in this run came out slightly lower than exact: 21.4 versus 22.5 mm.
Don't read much into that. A Kalman filter tolerates moderate gain errors, and a smaller gain can happen to help on one particular noise realisation. Averaged over many runs, the exact gain is best.
At 1,159 samples per gain, plain thermox's gain error climbs to around 50% once the filter settles; IR stays at 1e-4. The readings now stretch along the viewing ray.
Each round of 100 samples cuts the error only 1.4–1.6×. Plain thermox would need about 10¹⁰ samples to reach 1e-4.
Numbers
Plain thermox
IR cold
IR warm
Digital CG
Device samples to 1e-4
1.9e10 *
1,997
1,159
–
Digital mat-vec products
–
20.0 (N=100)
11.6 (N=100)
1.7 (warm CG)
Time per solve
to 1e-2
to 1e-4
CPU Cholesky
0.334 µs
0.334 µs
CPU CG
0.518 µs
0.774 µs
Plain thermox, prototype chip
5.55 s *
15.4 h *
Plain thermox, optimistic chip
111 ms *
18.5 min *
Plain thermox, physical limit
11.1 ms *
1.85 min *
Thermox + IR, prototype chip
821 µs
4.07 ms
Thermox + IR, optimistic chip
13.6 µs
74.8 µs
Thermox + IR, physical limit
2.25 µs
9.91 µs
* Plain thermox did not reach this target within 10,000 samples; its time uses the samples the 1/√N trend says it would need.
Robot motion · P4–P6
Moving the arm: inverse kinematics and model predictive control
IK hardly needs an accurate solve, MPC works with IR, and the low-weight MPC (P6) is the one problem the chip never solved.
P4Arm inverse kinematics
size d
6
right-hand sides
1
condition κ
89.7
solves
199
matrix changes
every solve
IR reaches 1e-4optimistic chip 34× slower than CPU
The problem
A hundred times a second, the controller turns the desired gripper pose into joint angles. It uses damped least squares and repeats the step 4 times per tick:
Δq = Jᵀ (J·Jᵀ + λ²I)⁻¹ e
J is the arm's 6×7 Jacobian and e is the 6-D position and orientation error. The 6×6 system changes every tick. It gets harder near awkward poses: κ ≈ 90, up to 144.
The benchmark uses the first of the 4 steps per tick. The robot run below puts the chip in all of them.
Mid-approach, t = 2.4 s. Each tick, IK turns the green gripper path into 7 joint angles.
What happened
IK is the most forgiving problem in the set. It doesn't need an accurate linear solve at all.
We ran the whole pick-and-place with only the IK solve swapped out; the Kalman filter stayed exact. At 572 samples per solve, plain thermox is 7.6% off every time. The 4 IK steps per tick correct it anyway. The final pose is within 0.23 µm instead of 0.015 µm, and all three robots grasp the cube the same way (9.41 mm, picked).
IR warm still reaches 1e-4, with 19 rounds of 30 samples. CG needs 6 iterations, as you'd expect for a 6×6 system.
All three robots move the same way and pick the cube. IK solved by Exact, plain thermox (572 samples per solve) and IR.
After the 4 IK steps, plain thermox's pose error peaks at about 5 µm and 0.0003°, harmless against a 15 mm grasp tolerance. At equal chip time, each linear solve is about 8% off with plain thermox and at 1e-4 with IR.
For one IK solve, CG finishes in 6 steps; IR needs about 20 rounds of 30 samples.
Numbers
Plain thermox
IR cold
IR warm
Digital CG
Device samples to 1e-4
2.9e8 *
710
572
–
Digital mat-vec products
–
23.7 (N=30)
19.1 (N=30)
5.9 (warm PCG)
Time per solve
to 1e-2
to 1e-4
CPU Cholesky
0.285 µs
0.285 µs
CPU CG
0.547 µs
0.657 µs
Plain thermox, prototype chip
14.5 ms *
2.4 min *
Plain thermox, optimistic chip
289 µs *
2.88 s *
Plain thermox, physical limit
29.3 µs *
288 ms *
Thermox + IR, prototype chip
353 µs
762 µs
Thermox + IR, optimistic chip
4.52 µs
9.67 µs
Thermox + IR, physical limit
0.982 µs
1.64 µs
* Plain thermox did not reach this target within 10,000 samples; its time uses the samples the 1/√N trend says it would need.
P5Torque MPC
size d
70
right-hand sides
1
condition κ
1.53e+03
solves
95
matrix changes
every solve
IR reaches 1e-4optimistic chip 32× slower than CPU
The problem
Every tick, model predictive control plans joint torques 0.2 s ahead: 10 steps of 20 ms, using the arm's mass matrix M(q) at its current pose. It applies the first step and replans on the next tick.
The plan is the solution of a 70×70 system H·U = −g, for 7 joints × 10 steps of torque. A weight on torque effort sets the conditioning. Here it's 0.01, which gives κ ≈ 1,500.
The 10-step plan (blue) pulls a lagging joint toward its reference. The Hessian couples every joint and step. Lowering the torque weight shrinks its smallest eigenvalues, which is what P6 tests.
What happened
IR warm matches the exact plan, but it takes 29 rounds of 1,000 samples. CG gets there in 26 iterations.
With the same 29,221 samples per plan, plain thermox's torque plans are about 200% wrong. The first torque, the one the arm actually applies, is off by up to 5 N·m.
IR (yellow) lies on the exact plan (grey); plain thermox's torques jump around. Three moments of the run, 29,221 samples per plan for both chip methods.
Each round of 1,000 samples shrinks the error only 1.3–1.4×. The chip's slowest direction takes 1,500 sample-times to relax. Warm start barely helps, because the plan shifts by a whole step between ticks.
Numbers
Plain thermox
IR cold
IR warm
Digital CG
Device samples to 1e-4
8.1e11 *
33,337
29,221
–
Digital mat-vec products
–
33.3 (N=1000)
29.2 (N=1000)
25.7 (warm CG)
Time per solve
to 1e-2
to 1e-4
CPU Cholesky
10.2 µs
10.2 µs
CPU CG
14.1 µs
22 µs
Plain thermox, prototype chip
40.6 s *
4.7 days *
Plain thermox, optimistic chip
812 ms *
2.26 h *
Plain thermox, physical limit
81.2 ms *
13.5 min *
Thermox + IR, prototype chip
12.8 ms
21 ms
Thermox + IR, optimistic chip
166 µs
329 µs
Thermox + IR, physical limit
31.6 µs
58.6 µs
* Plain thermox did not reach this target within 10,000 samples; its time uses the samples the 1/√N trend says it would need.
P6Torque MPC, low torque weight
size d
70
right-hand sides
1
condition κ
1.51e+04
solves
95
matrix changes
every solve
IR stalls before 1e-4no thermo time: never converges
The problem
Same controller, with a torque weight 10× smaller (0.001). The robot can now spend more torque to track tightly. The system gets 10× harder: κ ≈ 15,000. Low input weights like this are common in practice.
What happened
This is the one problem the chip couldn't solve.
IR warm and IR cold both stall after a few rounds, even at 1,000 samples per round, because a round no longer reliably shrinks the error. Plain thermox with 40,000 samples is 440% off. CG still converges, in 58 iterations.
Making it work would take more than 15,000 samples per round, or a preconditioner that tames κ before the matrix goes on the chip.
Both chip methods give wrong plans. At 40,000 samples per plan, the stalled IR is 69% off (median over the run) and plain thermox is 440% off.
The IR curves flatten out; CG keeps going.
Numbers
Plain thermox
IR cold
IR warm
Digital CG
Device samples to 1e-4
2.8e12 *
stalls
stalls
–
Digital mat-vec products
–
–
–
58.3 (warm CG)
Time per solve
to 1e-2
to 1e-4
CPU Cholesky
10.2 µs
10.2 µs
CPU CG
27.3 µs
49.7 µs
Plain thermox, prototype chip
2.35 min *
16.3 days *
Plain thermox, optimistic chip
2.82 s *
7.83 h *
Plain thermox, physical limit
282 ms *
47 min *
Thermox + IR, prototype chip
never
never
Thermox + IR, optimistic chip
never
never
Thermox + IR, physical limit
never
never
* Plain thermox did not reach this target within 10,000 samples; its time uses the samples the 1/√N trend says it would need.
Physics simulation · P7–P8
A heated plate: the friendliest case for analog hardware
This is the chip's best real-world case: on the 16×16 grid it comes within 2.7× of the CPU.
A heat source moves across a square plate on an n×n grid. We step the temperature forward with implicit Euler: (I + αL)·uk+1 = uk + fk. L links each cell to its four neighbours.
Why it suits the chip: the matrix never changes. You program the chip once, and each time step only sends a new right-hand side. That removes the reprogramming cost that hurts the robot problems. Each step also starts close to the previous temperature field, which is exactly what warm start wants.
On a chip, each cell needs just four couplings. A cell's new temperature depends only on itself and its four neighbours.
The 16×16 grid is about twice as hard as the 8×8 (κ 53 versus 24). Also shown: the temperature at step 16 with the source's path, and the banded matrix.
P7Heat equation, 8×8 grid
size d
64
right-hand sides
1
condition κ
24.2
solves
30
matrix changes
fixed
IR reaches 1e-4optimistic chip 10× slower than CPU
What happened
IR warm holds 1e-4, with 10.9 rounds of 30 samples per step. Plain thermox gets the same 327 samples and leaves the temperature field 10–15% off.
The setup: 64 cells, κ ≈ 24, 30 time steps, with each method feeding its own answer into the next step. Plain thermox's error doesn't grow here, because heat diffusion smooths errors away.
The plain thermox field is speckled and dimmer; the IR field matches the exact one. Both get 327 samples per step.
Warm start from the previous field saves about a third of the rounds. CG needs 14 steps.
Numbers
Plain thermox
IR cold
IR warm
Digital CG
Device samples to 1e-4
2.2e8 *
505
327
–
Digital mat-vec products
–
16.8 (N=30)
10.9 (N=30)
13.7 (warm CG)
Time per solve
to 1e-2
to 1e-4
CPU Cholesky
1.15 µs
1.15 µs
CPU CG
4.2 µs
10.5 µs
Plain thermox, prototype chip
11.4 ms *
1.87 min *
Plain thermox, optimistic chip
225 µs *
2.25 s *
Plain thermox, physical limit
22.8 µs *
225 ms *
Thermox + IR, prototype chip
372 µs
718 µs
Thermox + IR, optimistic chip
4.89 µs
11.5 µs
Thermox + IR, physical limit
2.17 µs
4.63 µs
* Plain thermox did not reach this target within 10,000 samples; its time uses the samples the 1/√N trend says it would need.
P8Heat equation, 16×16 grid
size d
256
right-hand sides
1
condition κ
52.9
solves
30
matrix changes
fixed
IR reaches 1e-4optimistic chip 2.7× slower than CPU
What happened
This is the closest any real-world problem came to the CPU. Because the matrix is fixed, programming is paid once. The optimistic chip ends up 2.7× slower than a Cholesky solve that reuses its factorisation, and faster than CG.
The grid has 256 cells and κ ≈ 53. IR warm holds 1e-4 with 19.8 rounds of 30 samples. Plain thermox, at the same 594 samples per step, drifts. Its field error grows from 7% at the first step to 17% at step 30, because each step's error feeds the next.
Plain thermox's error climbs step by step; IR stays flat at the target. Both get 594 samples per step.
CG needs 20 steps and IR about 20 rounds, so the digital work is the same.
Numbers
Plain thermox
IR cold
IR warm
Digital CG
Device samples to 1e-4
6.3e7 *
1,032
594
–
Digital mat-vec products
–
34.4 (N=30)
19.8 (N=30)
20.1 (warm CG)
Time per solve
to 1e-2
to 1e-4
CPU Cholesky
14.9 µs
14.9 µs
CPU CG
46.9 µs
125 µs
Plain thermox, prototype chip
7.24 ms
31.6 s *
Plain thermox, optimistic chip
102 µs
632 ms *
Plain thermox, physical limit
11.5 µs
63.2 ms *
Thermox + IR, prototype chip
2.44 ms
2.95 ms
Thermox + IR, optimistic chip
15.6 µs
40.5 µs
Thermox + IR, physical limit
9.36 µs
23.4 µs
* Plain thermox did not reach this target within 10,000 samples; its time uses the samples the 1/√N trend says it would need.
Random dense matrices · P9–P17
Separating size from difficulty
Chip time depends on κ, not on d, and the chip beats the CPU only once (P16).
Nine synthetic problems cover every mix of size d = 16, 64 or 256 and difficulty κ = 10, 100 or 1000. Eigenvalues are spread evenly on a log scale from 1 to κ. Eigenvectors are random, so every matrix entry is non-zero. Each problem has 5 independent systems, so warm start doesn't apply and IR here means IR cold.
The pattern across all nine:
At equal chip time, plain thermox is 4–19% off.
IR reaches 1e-4 in 16–34 rounds.
The chip time IR needs grows about 10× for every 10× in κ, and hardly at all with d.
CG iterations grow with √κ, and are capped near d for the small matrices.
P9Random SPD, d = 16, κ = 10
size d
16
right-hand sides
1
condition κ
10
solves
5
matrix changes
independent
IR reaches 1e-4optimistic chip 11× slower than CPU
Small and easy: the baseline for the other eight. IR reaches 1e-4 with 188 chip samples, and CG needs 11 iterations.
How to read these: a point on the diagonal is an exact entry. At equal chip time, plain thermox's points scatter around the line; IR's sit on it.
Plain thermox
IR cold
IR warm
Digital CG
Device samples to 1e-4
3.0e8 *
188
not a sequence
–
Digital mat-vec products
–
18.8 (N=10)
–
11.4 (PCG)
Time per solve
to 1e-2
to 1e-4
CPU Cholesky
0.654 µs
0.654 µs
CPU CG
1.34 µs
2.05 µs
Plain thermox, prototype chip
15.4 ms *
2.52 min *
Plain thermox, optimistic chip
304 µs *
3.02 s *
Plain thermox, physical limit
31.2 µs *
302 ms *
Thermox + IR, prototype chip
557 µs
858 µs
Thermox + IR, optimistic chip
4.38 µs
7.47 µs
Thermox + IR, physical limit
1.73 µs
2.46 µs
* Plain thermox did not reach this target within 10,000 samples; its time uses the samples the 1/√N trend says it would need.
P10Random SPD, d = 16, κ = 100
size d
16
right-hand sides
1
condition κ
100
solves
5
matrix changes
independent
IR reaches 1e-4optimistic chip 35× slower than CPU
Ten times harder, so each IR round needs 10× more samples: 100 instead of 10. CG hits its ceiling at 16 iterations, the most a 16-unknown system can ever take.
Plain thermox
IR cold
IR warm
Digital CG
Device samples to 1e-4
5.1e8 *
1,600
not a sequence
–
Digital mat-vec products
–
16.0 (N=100)
–
15.8 (PCG)
Time per solve
to 1e-2
to 1e-4
CPU Cholesky
0.654 µs
0.654 µs
CPU CG
2.34 µs
2.77 µs
Plain thermox, prototype chip
25.7 ms *
4.24 min *
Plain thermox, optimistic chip
510 µs *
5.08 s *
Plain thermox, physical limit
51.8 µs *
508 ms *
Thermox + IR, prototype chip
978 µs
1.66 ms
Thermox + IR, optimistic chip
11.6 µs
22.7 µs
Thermox + IR, physical limit
2.6 µs
4.11 µs
* Plain thermox did not reach this target within 10,000 samples; its time uses the samples the 1/√N trend says it would need.
P11Random SPD, d = 16, κ = 1000
size d
16
right-hand sides
1
condition κ
1e+03
solves
5
matrix changes
independent
IR reaches 1e-4optimistic chip 274× slower than CPU
The worst result in the study: the optimistic chip is 274× slower than the CPU. Chip time grows with κ. On a system this small, the CPU's doesn't, and CG still needs only 18 iterations.
Plain thermox
IR cold
IR warm
Digital CG
Device samples to 1e-4
3.7e9 *
17,200
not a sequence
–
Digital mat-vec products
–
17.2 (N=1000)
–
18.2 (PCG)
Time per solve
to 1e-2
to 1e-4
CPU Cholesky
0.654 µs
0.654 µs
CPU CG
3.06 µs
3.16 µs
Plain thermox, prototype chip
187 ms *
31.1 min *
Plain thermox, optimistic chip
3.73 ms *
37.3 s *
Plain thermox, physical limit
374 µs *
3.73 s *
Thermox + IR, prototype chip
4.66 ms
9.72 ms
Thermox + IR, optimistic chip
83.9 µs
179 µs
Thermox + IR, physical limit
10.1 µs
20.7 µs
* Plain thermox did not reach this target within 10,000 samples; its time uses the samples the 1/√N trend says it would need.
P12Random SPD, d = 64, κ = 10
size d
64
right-hand sides
1
condition κ
10
solves
5
matrix changes
independent
IR reaches 1e-4optimistic chip 2.4× slower than CPU
Size starts to cost the CPU here. Cholesky now takes d³/3 ≈ 87,000 operations, and the optimistic chip comes within 2.4×.
Plain thermox
IR cold
IR warm
Digital CG
Device samples to 1e-4
6.0e8 *
246
not a sequence
–
Digital mat-vec products
–
24.6 (N=10)
–
14.2 (PCG)
Time per solve
to 1e-2
to 1e-4
CPU Cholesky
8.36 µs
8.36 µs
CPU CG
6.24 µs
10.9 µs
Plain thermox, prototype chip
34.1 ms *
4.99 min *
Plain thermox, optimistic chip
605 µs *
5.99 s *
Plain thermox, physical limit
64.7 µs *
599 ms *
Thermox + IR, prototype chip
4.48 ms
4.83 ms
Thermox + IR, optimistic chip
13.4 µs
19.9 µs
Thermox + IR, physical limit
7.83 µs
10.1 µs
* Plain thermox did not reach this target within 10,000 samples; its time uses the samples the 1/√N trend says it would need.
P13Random SPD, d = 64, κ = 100
size d
64
right-hand sides
1
condition κ
100
solves
5
matrix changes
independent
IR reaches 1e-4optimistic chip 4.2× slower than CPU
The first problem where IR needs fewer digital steps than CG: 18 rounds against 36 iterations. The chip is still 4.2× slower in wall-clock time, because each round waits for 100 samples and a round trip.
Plain thermox
IR cold
IR warm
Digital CG
Device samples to 1e-4
5.3e8 *
1,800
not a sequence
–
Digital mat-vec products
–
18.0 (N=100)
–
36.0 (PCG)
Time per solve
to 1e-2
to 1e-4
CPU Cholesky
8.36 µs
8.36 µs
CPU CG
16.2 µs
27.4 µs
Plain thermox, prototype chip
30.8 ms *
4.45 min *
Plain thermox, optimistic chip
540 µs *
5.34 s *
Plain thermox, physical limit
58.1 µs *
534 ms *
Thermox + IR, prototype chip
4.9 ms
5.59 ms
Thermox + IR, optimistic chip
21.8 µs
35.1 µs
Thermox + IR, physical limit
8.86 µs
12.3 µs
* Plain thermox did not reach this target within 10,000 samples; its time uses the samples the 1/√N trend says it would need.
P14Random SPD, d = 64, κ = 1000
size d
64
right-hand sides
1
condition κ
1e+03
solves
5
matrix changes
independent
IR reaches 1e-4optimistic chip 23× slower than CPU
The digital saving grows with κ: 17 IR rounds against 75 CG iterations. But each round now waits for 1,000 samples, so the optimistic chip ends up 23× slower.
Plain thermox
IR cold
IR warm
Digital CG
Device samples to 1e-4
4.0e9 *
16,800
not a sequence
–
Digital mat-vec products
–
16.8 (N=1000)
–
74.8 (PCG)
Time per solve
to 1e-2
to 1e-4
CPU Cholesky
8.36 µs
8.36 µs
CPU CG
34.8 µs
56.6 µs
Plain thermox, prototype chip
203 ms *
33.1 min *
Plain thermox, optimistic chip
3.98 ms *
39.7 s *
Plain thermox, physical limit
402 µs *
3.97 s *
Thermox + IR, prototype chip
8.4 ms
13.4 ms
Thermox + IR, optimistic chip
91.3 µs
190 µs
Thermox + IR, physical limit
18.2 µs
33.8 µs
* Plain thermox did not reach this target within 10,000 samples; its time uses the samples the 1/√N trend says it would need.
P15Random SPD, d = 256, κ = 10
size d
256
right-hand sides
1
condition κ
10
solves
5
matrix changes
independent
IR reaches 1e-4optimistic chip 1.3× slower than CPU
At d = 256 Cholesky costs 5.6 million operations, so CG becomes the CPU's best option. The optimistic chip is 1.3× slower than CG.
Plain thermox
IR cold
IR warm
Digital CG
Device samples to 1e-4
9.5e8 *
336
not a sequence
–
Digital mat-vec products
–
33.6 (N=10)
–
15.0 (CG)
Time per solve
to 1e-2
to 1e-4
CPU Cholesky
266 µs
266 µs
CPU CG
49.8 µs
93.1 µs
Plain thermox, prototype chip
113 ms *
7.94 min *
Plain thermox, optimistic chip
1.01 ms *
9.52 s *
Plain thermox, physical limit
135 µs *
952 ms *
Thermox + IR, prototype chip
66 ms
66.4 ms
Thermox + IR, optimistic chip
88.7 µs
117 µs
Thermox + IR, physical limit
56.8 µs
68.2 µs
* Plain thermox did not reach this target within 10,000 samples; its time uses the samples the 1/√N trend says it would need.
P16Random SPD, d = 256, κ = 100
size d
256
right-hand sides
1
condition κ
100
solves
5
matrix changes
independent
IR reaches 1e-4optimistic chip 2.0× faster than CPU
The only measured problem where the optimistic chip beats the CPU. The chip takes 132 µs. Exact takes 266 µs and CG 281 µs.
It wins on digital work. IR needs 18 rounds where CG needs 45 iterations, and each one costs a matrix–vector product.
Plain thermox
IR cold
IR warm
Digital CG
Device samples to 1e-4
9.7e8 *
1,800
not a sequence
–
Digital mat-vec products
–
18.0 (N=100)
–
45.4 (PCG)
Time per solve
to 1e-2
to 1e-4
CPU Cholesky
266 µs
266 µs
CPU CG
148 µs
281 µs
Plain thermox, prototype chip
114 ms *
8.05 min *
Plain thermox, optimistic chip
1.03 ms *
9.66 s *
Plain thermox, physical limit
136 µs *
966 ms *
Thermox + IR, prototype chip
66.4 ms
67.1 ms
Thermox + IR, optimistic chip
98 µs
132 µs
Thermox + IR, physical limit
61.1 µs
75.4 µs
* Plain thermox did not reach this target within 10,000 samples; its time uses the samples the 1/√N trend says it would need.
P17Random SPD, d = 256, κ = 1000
size d
256
right-hand sides
1
condition κ
1e+03
solves
5
matrix changes
independent
IR reaches 1e-4optimistic chip 1.3× slower than CPU
The biggest digital saving in the study: 17 IR rounds against 126 CG iterations. The chip still loses to Exact by 1.3×. Each round needs 1,000 samples, and the one-off matrix has to be estimated and programmed first.
Plain thermox
IR cold
IR warm
Digital CG
Device samples to 1e-4
4.8e9 *
17,400
not a sequence
–
Digital mat-vec products
–
17.4 (N=1000)
–
125.6 (PCG)
Time per solve
to 1e-2
to 1e-4
CPU Cholesky
266 µs
266 µs
CPU CG
419 µs
778 µs
Plain thermox, prototype chip
304 ms *
39.8 min *
Plain thermox, optimistic chip
4.83 ms *
47.7 s *
Plain thermox, physical limit
517 µs *
4.77 s *
Thermox + IR, prototype chip
70.1 ms
75.3 ms
Thermox + IR, optimistic chip
195 µs
345 µs
Thermox + IR, physical limit
98.2 µs
164 µs
* Plain thermox did not reach this target within 10,000 samples; its time uses the samples the 1/√N trend says it would need.
Results across all problems
To reach 1e-4, IR needs 10²–10⁴ chip samples; plain thermox (orange) would need 10⁸–10¹². Most plain thermox values are extrapolated. On digital work, CG wins on small problems and IR needs fewer steps once d ≥ 64 and κ ≥ 100.
IR's chip time depends only on κ. CG's iterations grow with √κ and with d.
Below d = 256, the CPU (grey squares, blue dots) is fastest on every problem. The prototype-class chip (green) is 200–15,000× slower everywhere. Even the physical-limit device (pink) only wins at d = 256.
For dense one-off solves, the optimistic chip crosses below the CPU near d = 256–1024. Measured up to d = 256, extrapolated beyond (shaded). At d = 4096 it's about 4× faster than one CPU core at κ = 100, and about 5× at κ = 1000. The gain comes from fewer digital matrix–vector products, not from chip speed. A GPU, or a strong preconditioner on the CPU, would push the crossover further out.
Physical practicality
IR copes with imperfect parts, but today's parts aren't precise enough for the hard problems.
The emulated chip is perfect apart from heat noise. Real analog parts aren't, so the benchmark adds two kinds of imperfection.
Coupling mismatch is a fixed random error on every programmed matrix entry, the kind component tolerances cause. Low-precision converters round inputs, outputs and couplings to 6–12 bits.
Imperfections push plain thermox to 30–290% error; IR still reaches 1e-4 with a few extra rounds. For heat 8×8 at 10% mismatch, that's 10.9 → 15.7 rounds. Crosses mark chips whose programmed matrix is no longer positive definite, so the physical process diverges. That happened to the κ ≈ 1000–1500 problems at just 1% mismatch, and to the MPC at 8 bits or fewer.
Rule of thumb from the stability failures: coupling precision has to be finer than about 1/κ. So a κ = 1000 problem needs couplings accurate to better than 0.1%.
Today's parts are far coarser. Normal Computing's prototype has 4 diagonal capacitor values and 3 coupling values (−, 0, +). IBM's 2023 analog chip uses 8-bit inputs and outputs.
Requirement
Status
Each chip solve less than 100% wrong, so IR converges
Met in emulation for κ up to about 1000, with about κ samples per round
Reprogram the matrix every control tick
The main cost for robotics: d² entries per tick. For d ≤ 70 this alone takes longer than a whole CPU solve
One computer↔chip round trip per IR round
4–35 per solve. That needs on-chip converters (about 100 ns), not a circuit board on a USB link (about 50 µs)
Coupling precision finer than 1/κ
Not available today for κ ≳ 100. Ill-conditioned robot problems such as MPC need preconditioning first
Large all-to-all arrays (d ≥ 1000)
Needed for any speed advantage: about a million programmable couplings at d = 1024. Analog memory chips reach 64 × 256² cells at 8 bits, but no thermodynamic solver that size exists
Conclusion
Can a thermodynamic chip help a robot? Not yet. IR makes the chip accurate, but one CPU core is still faster on every robot-sized problem.
The method works. IR turns the chip from a slow, noisy averager into a solver that gains a fixed factor of accuracy every round. It reached 1e-4 on 16 of 17 problems, with 10⁵–10⁷× less chip time than plain thermox. It also absorbs the coupling mismatch and coarse converters that real analog hardware has.
For a robot, the chip isn't practical today. Robot linear algebra is small: a 3×3 Kalman gain, a 6×6 IK step, a 70×70 MPC plan. One CPU core solves these in 0.3–10 µs.
An analog chip has to be loaded with the new matrix, wait for its slowest mode to relax, and swap data with the computer several times per solve. Even an optimistic future chip needs 4–330 µs for all that.
Some robot tasks barely need accuracy anyway. IK picked the cube with a solver that was 7.6% wrong, and the Kalman filter tolerated 30–44% gain errors.
Where it could matter. Large dense systems, with d of 1,000 or more and moderate conditioning. The chip would need fast on-chip converters and couplings precise to better than 1/κ.
In that regime the chip acts like a strong preconditioner. At d = 256, IR needed 2.5–7× fewer digital steps than CG once κ ≥ 100. Nobody has built that chip yet. If someone does, IR warm is the right way to drive it.
Next experiments: precondition the MPC before it goes on the chip, test d ≥ 1000 directly, and add output-voltage limits and drift to the emulator.
Reproduce & sources
Code, results and the sources for this page are all in the GitHub repository pratik-ingle/thermox-robot-bench. ./setup.sh installs the dependencies and fetches the Panda model from MuJoCo Menagerie. On headless Linux, set MUJOCO_GL=egl first. Then run:
git clone https://github.com/pratik-ingle/thermox-robot-bench.git && cd thermox-robot-bench && ./setup.sh
python thermo_benchmark.py --problem all && python thermo_benchmark.py --report