Can a thermodynamic chip help a robot?

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

Code, data and scripts: pratik-ingle/thermox-robot-bench

Findings

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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:

Animation: a two-dimensional chip state wanders around the true solution while its running average slowly approaches it; the error of the average falls roughly like one over the square root of 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:

  1. The digital computer checks the current answer exactly: r = b − A·x.
  2. It scales that leftover r up to the chip's full input range.
  3. The chip solves for the missing piece d.
  4. 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.

x₀ = previous answer (warm) or 0 (cold) Digital computer (float64) 1 r = b − A·x (exact check) 2 s = max |r| (scale) 4 x ← x + s·d (update) repeat until error ≤ target Thermodynamic chip programmed once with A 3 relaxes toward A·d = r/s averages N noisy samples error ≈ ε(N) × size of d r / s DAC d ADC one round = one exact digital check + one chip solve of N samples
Only the two highlighted arrows cross between computer and chip. On real hardware, each crossing costs converter time.
Left: 300 plain thermox answers with 30 samples scatter widely around the solution. Middle: 300 refinement answers with 3 rounds of 10 samples cluster tightly. Right: with the same chip time, refinement error falls to machine precision while plain error falls slowly.
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

Rules that keep the comparison fair

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.

ScenarioRelaxation timePer-round overheadMatrix programmingBasis
Prototype-class0.5 µs50 µs1 µs per entryNormal Computing's 8-cell circuit-board chip (FPGA, 12 MHz 10-bit ADC, host link)
Optimistic chip10 ns200 nsrow-parallel, plus d² entries over a 50 Gb/s linka future integrated chip; none exists yet
Physical limit1 nsfreefreean upper bound, not a design

The 17 problems

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:

#ProblemFamilydRHSκSolvesMatrixVerdict at 1e-4 (chip vs CPU)
P1Kalman gain, isotropic cameraRobot perception361116every solveIR reaches 1e-413× slower than CPU
P2Kalman gain, depth noise 3×Robot perception368.65116every solveIR reaches 1e-428× slower than CPU
P3Kalman gain, depth noise 10×Robot perception3694.1116every solveIR reaches 1e-4224× slower than CPU
P4Arm inverse kinematicsRobot motion6189.7199every solveIR reaches 1e-434× slower than CPU
P5Torque MPCRobot motion7011.53e+0395every solveIR reaches 1e-432× slower than CPU
P6Torque MPC, low torque weightRobot motion7011.51e+0495every solveIR stalls before 1e-4no thermo time: never converges
P7Heat equation, 8×8 gridPhysics simulation64124.230fixedIR reaches 1e-410× slower than CPU
P8Heat equation, 16×16 gridPhysics simulation256152.930fixedIR reaches 1e-42.7× slower than CPU
P9Random SPD, d=16, κ=10Random dense matrix161105independentIR reaches 1e-411× slower than CPU
P10Random SPD, d=16, κ=100Random dense matrix1611005independentIR reaches 1e-435× slower than CPU
P11Random SPD, d=16, κ=1000Random dense matrix1611e+035independentIR reaches 1e-4274× slower than CPU
P12Random SPD, d=64, κ=10Random dense matrix641105independentIR reaches 1e-42.4× slower than CPU
P13Random SPD, d=64, κ=100Random dense matrix6411005independentIR reaches 1e-44.2× slower than CPU
P14Random SPD, d=64, κ=1000Random dense matrix6411e+035independentIR reaches 1e-423× slower than CPU
P15Random SPD, d=256, κ=10Random dense matrix2561105independentIR reaches 1e-41.3× slower than CPU
P16Random SPD, d=256, κ=100Random dense matrix25611005independentIR reaches 1e-42.0× faster than CPU
P17Random SPD, d=256, κ=1000Random dense matrix25611e+035independentIR reaches 1e-41.3× slower than CPU

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 Panda arm reaching over the conveyor toward the red cube, with the cube's path, the filter estimate and the gripper path drawn as lines.
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.
Scatter plots of simulated camera errors in top and side views for three cameras: round for the isotropic camera, increasingly elongated ellipses for 3 times and 10 times depth noise.
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.
Four panels comparing exact, plain thermox and refinement in the Kalman filter: top-view estimates, gain error per update, position error and velocity error over time.
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.
Convergence curves: plain thermox error falls slowly with samples, refinement cold and warm fall steeply; CG converges in one step.
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 thermoxIR coldIR warmDigital CG
Device samples to 1e-43.2e8 *10939–
Digital mat-vec products–10.9 (N=10)3.9 (N=10)0.7 (warm CG)
Time per solveto 1e-2to 1e-4
CPU Cholesky0.334 µs0.334 µs
CPU CG0.339 µs0.444 µs
Plain thermox, prototype chip94.7 ms *15.8 min *
Plain thermox, optimistic chip1.89 ms *18.9 s *
Plain thermox, physical limit190 µs *1.89 s *
Thermox + IR, prototype chip94.4 µs321 µs
Thermox + IR, optimistic chip1.45 µs4.36 µs
Thermox + IR, physical limit0.638 µs1.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.

Kalman filter comparison with 3 times depth noise: estimates, gain error, position and velocity error.
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.
Convergence curves for the 3 times depth-noise Kalman gain.
For one gain update, CG needs 1–2 steps and IR about 9 rounds. A 3×3 system never takes CG long.

Numbers

Plain thermoxIR coldIR warmDigital CG
Device samples to 1e-41.0e9 *19788–
Digital mat-vec products–19.7 (N=10)8.8 (N=10)1.7 (warm CG)
Time per solveto 1e-2to 1e-4
CPU Cholesky0.334 µs0.334 µs
CPU CG0.51 µs0.748 µs
Plain thermox, prototype chip302 ms *50.2 min *
Plain thermox, optimistic chip6.03 ms *1 min *
Plain thermox, physical limit603 µs *6.03 s *
Thermox + IR, prototype chip173 µs634 µs
Thermox + IR, optimistic chip2.46 µs9.41 µs
Thermox + IR, physical limit0.807 µs2.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.

Kalman filter comparison with 10 times depth noise: estimates, gain error, position and velocity error.
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.
Convergence curves for the 10 times depth-noise Kalman gain.
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 thermoxIR coldIR warmDigital CG
Device samples to 1e-41.9e10 *1,9971,159–
Digital mat-vec products–20.0 (N=100)11.6 (N=100)1.7 (warm CG)
Time per solveto 1e-2to 1e-4
CPU Cholesky0.334 µs0.334 µs
CPU CG0.518 µs0.774 µs
Plain thermox, prototype chip5.55 s *15.4 h *
Plain thermox, optimistic chip111 ms *18.5 min *
Plain thermox, physical limit11.1 ms *1.85 min *
Thermox + IR, prototype chip821 µs4.07 ms
Thermox + IR, optimistic chip13.6 µs74.8 µs
Thermox + IR, physical limit2.25 µs9.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.

The Panda arm mid-approach over the conveyor.
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.
IK residuals over time for the three solvers and the error of each IK linear solve.
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.
Convergence curves for one IK solve.
For one IK solve, CG finishes in 6 steps; IR needs about 20 rounds of 30 samples.

Numbers

Plain thermoxIR coldIR warmDigital CG
Device samples to 1e-42.9e8 *710572–
Digital mat-vec products–23.7 (N=30)19.1 (N=30)5.9 (warm PCG)
Time per solveto 1e-2to 1e-4
CPU Cholesky0.285 µs0.285 µs
CPU CG0.547 µs0.657 µs
Plain thermox, prototype chip14.5 ms *2.4 min *
Plain thermox, optimistic chip289 µs *2.88 s *
Plain thermox, physical limit29.3 µs *288 ms *
Thermox + IR, prototype chip353 µs762 µs
Thermox + IR, optimistic chip4.52 µs9.67 µs
Thermox + IR, physical limit0.982 µs1.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.

Left: a joint angle history, the reference ahead and the 10-step MPC prediction. Middle: the 70 by 70 Hessian magnitude on a log scale. Right: eigenvalues for two torque weights.
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.

Predicted joint trajectories and planned torques at three times for exact, plain thermox and refinement.
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.
Convergence curves for one MPC solve.
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 thermoxIR coldIR warmDigital CG
Device samples to 1e-48.1e11 *33,33729,221–
Digital mat-vec products–33.3 (N=1000)29.2 (N=1000)25.7 (warm CG)
Time per solveto 1e-2to 1e-4
CPU Cholesky10.2 µs10.2 µs
CPU CG14.1 µs22 µs
Plain thermox, prototype chip40.6 s *4.7 days *
Plain thermox, optimistic chip812 ms *2.26 h *
Plain thermox, physical limit81.2 ms *13.5 min *
Thermox + IR, prototype chip12.8 ms21 ms
Thermox + IR, optimistic chip166 µs329 µs
Thermox + IR, physical limit31.6 µs58.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.

Predicted joint trajectories and planned torques for the low torque weight MPC: both thermodynamic methods deviate from the exact plan.
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.
Convergence curves for the hard MPC solve: refinement flattens out, CG converges.
The IR curves flatten out; CG keeps going.

Numbers

Plain thermoxIR coldIR warmDigital CG
Device samples to 1e-42.8e12 *stallsstalls–
Digital mat-vec products–––58.3 (warm CG)
Time per solveto 1e-2to 1e-4
CPU Cholesky10.2 µs10.2 µs
CPU CG27.3 µs49.7 µs
Plain thermox, prototype chip2.35 min *16.3 days *
Plain thermox, optimistic chip2.82 s *7.83 h *
Plain thermox, physical limit282 ms *47 min *
Thermox + IR, prototype chipnevernever
Thermox + IR, optimistic chipnevernever
Thermox + IR, physical limitnevernever

* 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.

1+4α −α −α −α −α one row of I + αL: 5 non-zeros
On a chip, each cell needs just four couplings. A cell's new temperature depends only on itself and its four neighbours.
Left: the temperature field on the 8 by 8 grid with the source path. Middle: the banded sparsity pattern of the matrix. Right: its eigenvalues for both grid sizes.
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.

Animation of 30 time steps: the exact, plain thermox and refinement temperature fields side by side, with the error of each method plotted against the time step.
The plain thermox field is speckled and dimmer; the IR field matches the exact one. Both get 327 samples per step.
Convergence curves for one heat step.
Warm start from the previous field saves about a third of the rounds. CG needs 14 steps.

Numbers

Plain thermoxIR coldIR warmDigital CG
Device samples to 1e-42.2e8 *505327–
Digital mat-vec products–16.8 (N=30)10.9 (N=30)13.7 (warm CG)
Time per solveto 1e-2to 1e-4
CPU Cholesky1.15 µs1.15 µs
CPU CG4.2 µs10.5 µs
Plain thermox, prototype chip11.4 ms *1.87 min *
Plain thermox, optimistic chip225 µs *2.25 s *
Plain thermox, physical limit22.8 µs *225 ms *
Thermox + IR, prototype chip372 µs718 µs
Thermox + IR, optimistic chip4.89 µs11.5 µs
Thermox + IR, physical limit2.17 µs4.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.

Animation of 30 time steps on the 16 by 16 grid comparing exact, plain thermox and refinement fields, with error over time.
Plain thermox's error climbs step by step; IR stays flat at the target. Both get 594 samples per step.
Convergence curves for one 16 by 16 heat step.
CG needs 20 steps and IR about 20 rounds, so the digital work is the same.

Numbers

Plain thermoxIR coldIR warmDigital CG
Device samples to 1e-46.3e7 *1,032594–
Digital mat-vec products–34.4 (N=30)19.8 (N=30)20.1 (warm CG)
Time per solveto 1e-2to 1e-4
CPU Cholesky14.9 µs14.9 µs
CPU CG46.9 µs125 µs
Plain thermox, prototype chip7.24 ms31.6 s *
Plain thermox, optimistic chip102 µs632 ms *
Plain thermox, physical limit11.5 µs63.2 ms *
Thermox + IR, prototype chip2.44 ms2.95 ms
Thermox + IR, optimistic chip15.6 µs40.5 µs
Thermox + IR, physical limit9.36 µs23.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.

Matrix entries, eigenvalues and computed versus exact solution entries for d 16, kappa 10.
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.
Convergence curves for d 16, kappa 10.
Plain thermoxIR coldIR warmDigital CG
Device samples to 1e-43.0e8 *188not a sequence–
Digital mat-vec products–18.8 (N=10)–11.4 (PCG)
Time per solveto 1e-2to 1e-4
CPU Cholesky0.654 µs0.654 µs
CPU CG1.34 µs2.05 µs
Plain thermox, prototype chip15.4 ms *2.52 min *
Plain thermox, optimistic chip304 µs *3.02 s *
Plain thermox, physical limit31.2 µs *302 ms *
Thermox + IR, prototype chip557 µs858 µs
Thermox + IR, optimistic chip4.38 µs7.47 µs
Thermox + IR, physical limit1.73 µs2.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.

Matrix entries, eigenvalues and solution comparison for d 16, kappa 100.
Convergence curves for d 16, kappa 100.
Plain thermoxIR coldIR warmDigital CG
Device samples to 1e-45.1e8 *1,600not a sequence–
Digital mat-vec products–16.0 (N=100)–15.8 (PCG)
Time per solveto 1e-2to 1e-4
CPU Cholesky0.654 µs0.654 µs
CPU CG2.34 µs2.77 µs
Plain thermox, prototype chip25.7 ms *4.24 min *
Plain thermox, optimistic chip510 µs *5.08 s *
Plain thermox, physical limit51.8 µs *508 ms *
Thermox + IR, prototype chip978 µs1.66 ms
Thermox + IR, optimistic chip11.6 µs22.7 µs
Thermox + IR, physical limit2.6 µs4.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.

Matrix entries, eigenvalues and solution comparison for d 16, kappa 1000.
Convergence curves for d 16, kappa 1000.
Plain thermoxIR coldIR warmDigital CG
Device samples to 1e-43.7e9 *17,200not a sequence–
Digital mat-vec products–17.2 (N=1000)–18.2 (PCG)
Time per solveto 1e-2to 1e-4
CPU Cholesky0.654 µs0.654 µs
CPU CG3.06 µs3.16 µs
Plain thermox, prototype chip187 ms *31.1 min *
Plain thermox, optimistic chip3.73 ms *37.3 s *
Plain thermox, physical limit374 µs *3.73 s *
Thermox + IR, prototype chip4.66 ms9.72 ms
Thermox + IR, optimistic chip83.9 µs179 µs
Thermox + IR, physical limit10.1 µs20.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×.

Matrix entries, eigenvalues and solution comparison for d 64, kappa 10.
Convergence curves for d 64, kappa 10.
Plain thermoxIR coldIR warmDigital CG
Device samples to 1e-46.0e8 *246not a sequence–
Digital mat-vec products–24.6 (N=10)–14.2 (PCG)
Time per solveto 1e-2to 1e-4
CPU Cholesky8.36 µs8.36 µs
CPU CG6.24 µs10.9 µs
Plain thermox, prototype chip34.1 ms *4.99 min *
Plain thermox, optimistic chip605 µs *5.99 s *
Plain thermox, physical limit64.7 µs *599 ms *
Thermox + IR, prototype chip4.48 ms4.83 ms
Thermox + IR, optimistic chip13.4 µs19.9 µs
Thermox + IR, physical limit7.83 µs10.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.

Matrix entries, eigenvalues and solution comparison for d 64, kappa 100.
Convergence curves for d 64, kappa 100.
Plain thermoxIR coldIR warmDigital CG
Device samples to 1e-45.3e8 *1,800not a sequence–
Digital mat-vec products–18.0 (N=100)–36.0 (PCG)
Time per solveto 1e-2to 1e-4
CPU Cholesky8.36 µs8.36 µs
CPU CG16.2 µs27.4 µs
Plain thermox, prototype chip30.8 ms *4.45 min *
Plain thermox, optimistic chip540 µs *5.34 s *
Plain thermox, physical limit58.1 µs *534 ms *
Thermox + IR, prototype chip4.9 ms5.59 ms
Thermox + IR, optimistic chip21.8 µs35.1 µs
Thermox + IR, physical limit8.86 µs12.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.

Matrix entries, eigenvalues and solution comparison for d 64, kappa 1000.
Convergence curves for d 64, kappa 1000.
Plain thermoxIR coldIR warmDigital CG
Device samples to 1e-44.0e9 *16,800not a sequence–
Digital mat-vec products–16.8 (N=1000)–74.8 (PCG)
Time per solveto 1e-2to 1e-4
CPU Cholesky8.36 µs8.36 µs
CPU CG34.8 µs56.6 µs
Plain thermox, prototype chip203 ms *33.1 min *
Plain thermox, optimistic chip3.98 ms *39.7 s *
Plain thermox, physical limit402 µs *3.97 s *
Thermox + IR, prototype chip8.4 ms13.4 ms
Thermox + IR, optimistic chip91.3 µs190 µs
Thermox + IR, physical limit18.2 µs33.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.

Matrix entries, eigenvalues and solution comparison for d 256, kappa 10.
Convergence curves for d 256, kappa 10.
Plain thermoxIR coldIR warmDigital CG
Device samples to 1e-49.5e8 *336not a sequence–
Digital mat-vec products–33.6 (N=10)–15.0 (CG)
Time per solveto 1e-2to 1e-4
CPU Cholesky266 µs266 µs
CPU CG49.8 µs93.1 µs
Plain thermox, prototype chip113 ms *7.94 min *
Plain thermox, optimistic chip1.01 ms *9.52 s *
Plain thermox, physical limit135 µs *952 ms *
Thermox + IR, prototype chip66 ms66.4 ms
Thermox + IR, optimistic chip88.7 µs117 µs
Thermox + IR, physical limit56.8 µs68.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.

Matrix entries, eigenvalues and solution comparison for d 256, kappa 100.
Convergence curves for d 256, kappa 100.
Plain thermoxIR coldIR warmDigital CG
Device samples to 1e-49.7e8 *1,800not a sequence–
Digital mat-vec products–18.0 (N=100)–45.4 (PCG)
Time per solveto 1e-2to 1e-4
CPU Cholesky266 µs266 µs
CPU CG148 µs281 µs
Plain thermox, prototype chip114 ms *8.05 min *
Plain thermox, optimistic chip1.03 ms *9.66 s *
Plain thermox, physical limit136 µs *966 ms *
Thermox + IR, prototype chip66.4 ms67.1 ms
Thermox + IR, optimistic chip98 µs132 µs
Thermox + IR, physical limit61.1 µs75.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.

Matrix entries, eigenvalues and solution comparison for d 256, kappa 1000.
Convergence curves for d 256, kappa 1000.
Plain thermoxIR coldIR warmDigital CG
Device samples to 1e-44.8e9 *17,400not a sequence–
Digital mat-vec products–17.4 (N=1000)–125.6 (PCG)
Time per solveto 1e-2to 1e-4
CPU Cholesky266 µs266 µs
CPU CG419 µs778 µs
Plain thermox, prototype chip304 ms *39.8 min *
Plain thermox, optimistic chip4.83 ms *47.7 s *
Plain thermox, physical limit517 µs *4.77 s *
Thermox + IR, prototype chip70.1 ms75.3 ms
Thermox + IR, optimistic chip195 µs345 µs
Thermox + IR, physical limit98.2 µs164 µ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

For all 17 problems: chip samples needed to reach 1e-4 for plain thermox, IR cold and IR warm; and digital matrix-vector products for CG versus IR.
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.
Random SPD problems: refinement chip samples grow with kappa but not with d; CG iterations grow with the square root of kappa and with d.
IR's chip time depends only on κ. CG's iterations grow with √κ and with d.
Estimated time per solve for every problem: CPU Cholesky and CG versus refinement on three chip scenarios.
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.
Time per one-off dense solve as size grows from 16 to 16384, measured up to 256 and extrapolated beyond, for three condition numbers.
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.

Plain thermox error and refinement rounds as coupling mismatch and converter resolution vary, for six problems; crosses mark physically unstable chips.
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.

RequirementStatus
Each chip solve less than 100% wrong, so IR convergesMet in emulation for κ up to about 1000, with about κ samples per round
Reprogram the matrix every control tickThe 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 round4–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

python report/make_assets.py --part method,kf,ik,mpc,heat,rand,tables,results && python report/assemble.py

The last command rebuilds this page in docs/, which GitHub Pages serves.

Sources