# Mixture-of-Kittens: our open-source MoE megakernel for NVL72s
Navigation: [[sources/_index]] | [[index]]
> [!note] 取得方法の注記
> 本ページは WebFetch(要約モデル経由)で取得した内容に基づく。cursor.com はサンドボックスのネットワーク許可リスト外のため、`curl`/`defuddle` による逐語スクレイピングは実行できなかった。図表・数式の細部や脚注は原文と厳密には一致しない可能性があるため、`confidence: medium` とする。原文: https://cursor.com/ja/blog/mixture-of-kittens
## 概要
[[Cursor Research]] が公開した [[Mixture-of-Kittens]](MoK)は、[[NVIDIA]] の GB300 NVL72(GB300 世代の NVL72 ラックスケールプラットフォーム)向けに最適化された、決定論的な [[Mixture-of-Experts]](MoE)訓練用メガカーネルである。著者は Stuart Sul・Nash Brown・Henry Wildermuth・William Lin・[[Federico Cassano]]。MoE 層の**通信と計算のすべてを単一カーネルに融合**することで、MoE 層が訓練のボトルネックになる状態を解消することを狙う。
## 技術的な主眼
### 1. 通信方向の最適化(pull-based dispatch)
著者は push-based(送信側主導)よりも **pull-based dispatch**(受信側がトークンを取りに行く方式)の方が優れることを発見した。エキスパート負荷が不均衡な条件下で、pull-based は push-based に対し**最大29%高い NVLink 帯域利用率**を達成する。総転送バイト数はわずかに増えるにもかかわらず優位になる点が興味深い。シグナリングオーバーヘッドは通信方向の選択により約103マイクロ秒から約18マイクロ秒へ削減されたと報告されている。
### 2. 計算と通信のオーバーラップ(ミニバッチ)
細粒度・粗粒度いずれかを選ぶのではなく、MoK は中間的な**「ミニバッチ」**という調整可能なパラメータを導入する。最適なミニバッチサイズを与える式として
```
T ≥ min(2I, H) / (2C・128・256)
```
が示されている。ここで T = 1回の転送あたりトークン数、I = 中間次元、H = 隠れ次元、C = ストリーミングマルチプロセッサ数。GPU 実行の「少なくとも2波」を確保できるトークンバッチサイズを狙う設計になっている。
### 3. リングトークンバッファ(マクロバッチング)
固定サイズのリングバッファをミニバッチ粒度で循環させることで、CPU-GPU 間の同期を排除する(「マクロバッチ」)。これは GB300 の統合 Grace CPU が(GPU 側と比べて)相対的に低速であることに起因する制約への対処であり、CPU の介在なしに GPU ストリームを連続的に進行させられる。
## 性能結果
- 単一 MoE 層: 公開ベースライン最速比で MXFP8 順伝播スループット最大 **2.37倍**
- 逆伝播: MXFP8 で 1.78倍、BF16 順伝播で 1.92倍、BF16 逆伝播で 1.58倍
- 本番訓練のエンドツーエンド: 760.9 → 1,070.2 トークン/秒/GPU(**1.41倍**)
## 技術的特徴
- アブレーション実験・RL 訓練向けに完全な決定性(浮動小数点演算順序の固定)を持つ
- MXFP8・BF16 の両精度をサポート
- SM 間オーバーラップを伴うメガカーネルアーキテクチャ
- Cluster Launch Control による、FSDP の all-gather とラック間 RDMA 通信のオーバーラップ
- Kimi・GLM・Qwen・DeepSeek 各系列のモデル形状でテスト済み
## AI エージェントによる開発への言及
著者は、AI エージェントが「単純なタスク」を自動化することでメガカーネル開発を加速し、複雑な分散カーネル作業自体も同時に高速化することで、「非常に小規模なチーム」でも本番グレードの成果を達成できるようになったと述べている。(Source: 本記事)
## 出典
- [[.raw/articles/mixture-of-kittens-2026-08-05.md]]
- 原文: https://cursor.com/ja/blog/mixture-of-kittens