
Autonomous robots to operate data centers. @speedrun 007
San Francisco, CA
Joined August 2026
- Tweets30
- Following148
- Followers162
- Likes43
We worked with @liangsu325045, the creator of FlashRT, to port FlashRT to @AMD GPUs (first CDNA4, then CDNA3)!
Along the way, we found that FP8 actually slows down π0.5’s decoder. So we wrote a custom BF16 path for CDNA3 instead.
35ms π0.5, 19.6ms GR00T.
What we learned 🧵👇
[4/5] So we wrote a CDNA3-specific BF16 MFMA kernel.
The key was packing weights for the 16×16×16 instruction and loading the next weight fragments while the current MFMA work is running.
QKV: 6.88 -> 3.93 μs (1.75×)
[5/5] Final MI300X results:
π0.5: 35.14 ms
GR00T N1.7: 19.58 ms
Full write-up: cyberneticphysics.com/blog/r…
Following up on our last post: batch size changes the GPU's reduction order, so the same observation can produce a different robot action.
Existing batch-invariant ops from @thinkymachines miss two paths in π₀ inference. Today we're open-sourcing Triton kernels for both.🧵👇
[2/3] Kernel 2: Rank-3 torch.matmul dispatches to aten::bmm, which picks its tiling from the whole batch. Our Triton BMM kernel launches a 2D grid: persistent tile workers × (batch, head) elements. A bigger batch only adds grid rows and each element's reduction stays the same.
[3/3] With both kernels implemented, sample 0 at batch = 32 is bitwise identical to batch = 1.
code: github.com/thinking-machines…
blog post: cyberneticphysics.com/blog/b…
Introducing batch-invariant VLAs, a deterministic implementation of @physical_int's π0.
Non-determinism in VLA inference is problematic since numeric differences propagate into real-world robot actions. In our latest post we explain how we traced and eliminated it. 🧵👇
[2/3] Fixing it revealed another downstream divergence. Higher-rank torch.matmul dispatched to aten::bmm, bypassing Thinky's aten::mm implementation. We split those into individual 2D matmuls so every one runs through the batch-invariant kernel.
[3/3] With all fixes in place, every traced tensor in π0 matches exactly between batch=1 and batch=32. Next: a real batch-invariant bmm kernel to replace the split-matmul loop, and validating RMSNorm and softmax.
blogpost: cyberneticphysics.com/blog/b…
code: github.com/cybernetic-physic…
Humanoids are a complicated enough system that require a behavior-level CI/CD. It can live in Git, but behaviors need to be structured in such a way that they are fixed, tagged policies for whatever the underlying things are that you've learned.
What would it take to run a datacenter "lights out"? @sama's stated ambition is to eventually stand up a gigawatt a week at around $20B per gigawatt yet 90% of datacenter operators say staffing shortages are a critical constraint on building and expanding sites. 🧵
2 / Another requirement would be for the robots to be "self-healing" in the sense that they have to maintain not only the site but also each other without a human in the loop. Here’s a trained policy in MuJoCo of a Unitree G1 changing the battery of another Unitree G1:
3 / Amazon warehouses are so highly automated because Amazon redesigned them until all physical work could be reduced to consecutive pick and place tasks. In datacenters, though, the situation is more complex. Imagine, for example, you have a robot replacing a liquid-cooling line, and you have a hose that is leaking. It's pretty hard to code up a general understanding of that state space in simulation, but the robot needs to absolutely figure out on the spot, "Oh, that's really bad, I can't have coolant leaking onto live electrical equipment."