GPUとカーネル最適化、その基礎を徹底解説

A primer on GPUs and kernel optimization

GPUとカーネル最適化、その基礎を徹底解説

大規模言語モデルの強化学習向けフレームワーク「Jam」を約10か月かけて自作した著者が、その過程で得たGPUの基礎知識を解説する。fp32からFP8までの浮動小数点形式、スレッド・ブロック・ワープ・SMの関係、HBMやレジスタ、共有メモリ、キャッシュ、オキュパンシーといった概念を整理し、実際のカーネル最適化の勘所とLLMを使った開発ワークフローへとつなげる。

皮肉なことに、これはチップ上で最も遅いメモリだ。
  1. augment_me

    カーネルのベンチマーク/評価について一言も触れていないのはおかしい。

    個人的には、高性能なGPUカーネルがすべて生成されたり山登り法でチューニングされたりしている今、ここが我々が見ている最大の誤差源だと思っている。

    実運用ではカーネルはホットキャッシュで走らせるべきか、それともコールドキャッシュか?カーネルはリファレンスとビット単位で等価であるべきか?リファレンスに対してどの程度の誤差マージンを持つべきか?熱ノイズを避けるためにカーネルを何回実行しているか?現在のハードウェアに過剰適合するのを避けるため、別々のGPUで実行しているか?起動オーバーヘッドを削減するためにカーネルをcudagraphでコンパイルできるか?熱によるバイアスを避けるために、カーネル実行とリファレンス実行をA/B B/Aで交互に配置しているか?

  2. saagarjha

    > この作業の大半で使われているH200では、GPUのメインメモリはHBM、すなわちhigh-bandwidth memoryだ。皮肉なことに、これはチップ上で最も遅いメモリである。

    細かい指摘だが、HBMは共有メモリやレジスタとは違い、チップの外にある

  3. brcmthrowaway

    誰かこれについて本を書く必要がある

この日のほかの記事

2026-11-09