KarpathyのnanochatをTPUへ移植:PyTorchから引き継げたもの、壊れたもの
Porting nanochat to a TPU: what carries over from PyTorch, and what breaks

Karpathyのnanochat(8×H100で約$100・4時間でチャットボットを作る「$100スピードラン」)を、JAX/Flaxを使ってTPU v6e-8に移植した記録。モデル品質はCOREスコア0.2695とH100での再現レシピ(R4)の範囲を上回り再現できたが、MFUは約24%とH100の半分に留まった。トレーニング時間は5.29時間、スポット価格で$30(合計$60.8)。PyTorchからそのまま移行できた点と、TPU固有の制約(MXU 256×256へのパディング、HBM 32GBの小ささなど)で壊れた点を、具体的なコードや数値とともに解説する。
v6eのMXUは256×256に拡大されたが、テンソルの次元が256の倍数でない場合、XLAはゼロパディングを行い、ユニットの一部が無駄になる。