LLMの推論・学習でGPUをフル活用するには、通常はCUDA C++で書いたカーネルが必要になる。DeepSeekはその作業コストを下げながら、ハードウェア性能の限界に迫るGPUカーネル集「TileKernels」を2026年4月24日にオープンソースで公開した。

この記事でわかること:

  • TileKernelsが解決する課題
  • 収録されている6つのカーネルカテゴリ
  • 基盤技術TileLangとの関係
  • 動作要件とインストール方法

https://github.com/deepseek-ai/TileKernels

ハードウェア性能の限界まで使い切る

LLMの学習・推論では、GPUの演算強度とメモリ帯域幅をどれだけ無駄なく使えるかが、コストと速度に直結する。理想的なカーネルは理論限界近くまでGPUを酷使できるが、CUDA C++でその水準の最適化を書くには高い専門知識と膨大な時間がかかる。

TileKernelsはこの課題に対し、Python DSLの「TileLang」を使って記述したカーネル集を提供する。DeepSeekの内部トレーニングと推論パイプラインですでに使われており、実験的なプロトタイプではなく本番投入済みの実装だ。コードはMITライセンスで公開されている。

6つのカーネルカテゴリ

Gating・MoE Routing

Mixture of Experts(MoE)向けのルーティングカーネルを2種類収録する。Gatingsはトップk専門家の選択とスコアリングを担い、MoE Routingはトークンから専門家へのマッピング、重みの正規化を1カーネルにまとめて処理する。スコアが同点の場合はインデックスが最小の専門家を選ぶ設計で、結果の再現性を保証している。

Quantization

FP8・FP4・E5M6の各フォーマットに対応した量子化カーネルを用意する。SwiGLUと量子化処理を1回のカーネル起動にまとめる(fused)実装により、メモリ帯域幅の無駄な消費を抑える。per-token・per-block・per-channelの3種類の粒度に対応している。

Transpose

バッチ単位のTranspose演算に特化したカーネル。シンプルな機能だが、LLM推論では頻繁に呼ばれるため単体で最適化する意義がある。

Engram

DeepSeek独自のEngram Gatingカーネルで、RMSNormとの融合、フォワード・バックワードの両パス、重みの勾配リダクションを含む。torch.autograd.Functionでラップされているため、PyTorchの学習ループに直接組み込める。

Manifold HyperConnection

Sinkhorn正規化、mix splitting、mix applicationを含む複雑な接続処理を担うカーネル群。Modelingモジュールと組み合わせることでmHCパイプラインとして使える。

Modeling

上記の低レベルカーネルをPyTorchのautograd(torch.autograd.Function)でラップした高レベルAPIが含まれる。Engram GateやmHCパイプラインをトレーニングコードに数行で導入できる。

基盤技術 TileLang とは

TileKernelsの記述に使われているTileLangは、GPUカーネルをPythonで書くためのDSLだ。Apache TVM上に構築されており、Pythonicな構文で書いたコードをもとに最適化されたCUDA/HIPコードを自動生成する。FlashAttention、MLA Decoding、行列積などの演算でベンチマーク性能を公開しており、NVIDIA H100・A100・RTX 4090、AMD MI250・MI300XなどのGPUで動作確認済みだ。

TileKernelsに近いプロジェクトとして「TileOPs」がある。TileOPsはTileLangによる汎用的なリファレンス実装のライブラリで、TileKernelsはDeepSeekのモデルアーキテクチャに特化した専用演算子ライブラリとして位置づけられている。DeepSeek-V3・DeepSeek-R1などの推論時に必要な固有の演算を、そのままアプリに組み込めるという点が違いだ。

動作要件とインストール

動作にはNVIDIA SM90またはSM100アーキテクチャのGPU(H100またはB200)が必要で、それ以前のSM80(A100など)では使えない。CUDA Toolkitも13.1以上が求められる。

依存パッケージ 要求バージョン
Python 3.10以上
PyTorch 2.10以上
TileLang 0.1.9以上
CUDA Toolkit 13.1以上

インストールはpip経由で行う。

pip install tile-kernels

開発版をローカルに入れる場合は以下のコマンドを使う。

git clone https://github.com/deepseek-ai/TileKernels
pip install -e ".[dev]"

テストはpytestで実行できる。--run-benchmarkフラグを付けると正確性チェックに加えてベンチマーク計測も走る。

MoE・量子化に注力する理由

DeepSeek-V3はMoEアーキテクチャを採用しており、ルーティングの精度と速度がモデル全体のスループットに直結する。TileKernelsが収録するGating・MoEルーティングカーネルは、同社の本番環境から切り出した実装であり、独自の工夫が反映されている。量子化もFP8やFP4といった低精度フォーマットへの対応は、A100・H100世代以降のGPUで大幅なスループット向上が得られるため、推論コスト削減の観点から重要度が増している。

自分のLLMプロジェクトにDeepSeekのアーキテクチャを採用しているチームや、MoE・量子化カーネルを独自実装しているリサーチャーにとって、実績のある参照実装として活用できる。