Skip to content

Zaneham/ruru

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Ruru

The world's first probabilistic processor. On silicon.

Every computer since 1837 has assumed it knows the answer. Ruru knows it doesn't.

What Is This

A hardware processor where distributions are the data type and Bayesian inference is a machine instruction. Synthesised to SkyWater SKY130 130nm standard cells using an EDA synthesiser I made that I've had sitting on my hard drive.

Gates 2,237
Area 11,844 µm²
Timing Met at 100 MHz
Registers 16 probabilistic (tag + mean + variance)
Novel instructions PFUSE (sensor fusion), POBS (Bayesian update)
Prior art None. This doesn't exist anywhere else.

Why

A GPS reading is not "I am here." It is "I am probably here, within this radius." A sensor reading is not "the temperature is 22." It is "the temperature is probably 22 ± 0.3."

Currently, computing with uncertainty requires Monte Carlo simulation (slow) or probabilistic programming languages compiled to sampling algorithms on deterministic hardware (elegant but slow). Both are abstractions layered on top of hardware that fundamentally cannot represent uncertainty.

Ruru removes the abstraction. Distributions are the primitive data type. Bayesian inference is arithmetic.

The Instructions That Don't Exist Anywhere Else

PFUSE — Sensor fusion in one clock cycle. Given two independent measurements of the same quantity, compute the optimal combined estimate. The fused result always has lower variance than either input. Information accumulates. Uncertainty decreases. This is why sensor fusion works, and it's now a single instruction.

POBS — Bayesian update. Condition a prior distribution on an observed value. This IS the Kalman filter update equation, implemented as a machine instruction. Kalman filters are library code on every other architecture. On Ruru, they're arithmetic.

PCMP — Probabilistic comparison. Not "is A greater than B?" but "what is the probability that A is greater than B?" Because when your data is uncertain, your comparisons should be too.

Example: Earthquake Early Warning

PGAUSS  pr0, 3.42, 0.04     ; P-wave arrival time, station 1
PGAUSS  pr1, 5.17, 0.06     ; P-wave arrival time, station 2
PGAUSS  pr2, 7.83, 0.05     ; P-wave arrival time, station 3

PFUSE   pr3, pr0, pr1       ; fuse stations 1+2
PFUSE   pr3, pr3, pr2       ; fuse with station 3

PMEAN   r0, pr3             ; expected arrival time
PVAR    r1, pr3             ; how certain are we?

Three seismic readings. Three clock cycles to fuse them. One instruction to ask how certain we are.

Lineage

Babbage (1837) → Setun (1958) → Burroughs B5000 (1961) → Ruru (2026)
Deterministic    Ternary         Tagged architecture       Probabilistic

Named after the morepork (Ninox novaeseelandiae), New Zealand's only surviving native owl. In Māori tradition, the ruru is a watchful guardian — a bird of the night that tells you whether trouble is on its way. Ruru the processor does the same: it computes under uncertainty and tells you the probability.

When the ruru calls, it is a good sign. When it yelps, trouble is on its way. Ruru the processor tells you which one it is — and the probability that it's right.

Why a Bird

I get to name cool things after birds because I like birds and now that BarraCUDA is popping off I can name things what I like. The morepork is a good bird. It sits in the dark, watches carefully, and tells you what's coming. That's what a probabilistic processor does.

The real morepork is endangered. If you like this project, consider donating to Forest & Bird, New Zealand's leading conservation organisation. They're the reason the takahē still exists and the ruru still calls.

Donate to Forest & Bird

Built With

Synthesised using Takahe, an open-source SystemVerilog/VHDL synthesiser. Placed via OpenROAD.

License

Apache 2.0.

About

The world's first probabilistic processor. Distributions are the data type. Bayesian inference is a machine instruction. 2,237 SKY130 gates.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors