A TPU precision trap that silently changes fp32 matmuls
JFPuget · x · 2026-07-20
The post highlights a TPU-specific pitfall: although users may request fp32 matmuls, TPUs can still execute them in bf16 by default.
A training flag called --lm-head-precision highest may look like it protects quality, but the author says it does nothing in practice because of this TPU behavior. The screenshot shows a JAX example where an fp32 input still ends up using the default precision path on TPU, and the point is that this is documented behavior — not a hidden bug.
The author says even Google researchers have been bitten by this issue repeatedly. The takeaway is that precision assumptions on TPU can be misleading, so practitioners need to understand the platform’s default execution semantics rather than relying on flags that appear reassuring.
More from Infra
- SmolVM open-sources persistent computer infrastructure for agents that outlive chat sessions — aniketmaurya · 2026-09-11
- PyTorch Day Korea 2026 launches first offline conf, CFP closes Sept 13 — PyTorch · 2026-09-11
- Local LLM server dilemma: 4x CMP-170HX (price up 53% in 20 days) vs Mac Studio M5 Ultra — rumboll · 2026-09-11
- llama.cpp lands Flash Attention tuning for RDNA4, big prefill gains on AMD — pmttyji · 2026-09-11
- Your p99 latency benchmark may be lying: a deep dive into coordinated omission — Franc0Fernand0 · 2026-09-11
- Running MiniMax H3 on 12GB VRAM: quantization, Turbo LoRAs and attention backends compared — Possible_Mood676 · 2026-09-11