AI News HubLIVE
站内改写

mKernel:マルチGPU・マルチノード融合カーネルライブラリ、GPU駆動通信を実現

UC BerkeleyのUCCLチームがmKernelをリリース。ノード内NVLink、ノード間RDMA、高密度計算を単一の持続的CUDAカーネルに融合し、AIワークロードの通信オーバーヘッドを削減。通信はフォワードパスの43.6%、トレーニング時間の32%を占める可能性がある。5つの融合カーネルを提供し、ConnectX-7とAWS EFAバックエンドをサポート。

記事インテリジェンス

エンジニア上級

要点

  • mKernelはノード内NVLink、ノード間RDMA、計算を単一の持続的CUDAカーネルに融合
  • MoEモデルでは通信オーバーヘッドが実行時間の最大47%を占める
  • 5つのカーネル:AllGather+GEMM、GEMM+AllReduce、MoE Dispatch+GEMM、Ring Attention、GEMM+ReduceScatter
  • libibverbsを介したGPU起動RDMA、NCCLやNVSHMEMに依存しない

重要な理由

このニュースが重要なのは、mKernelはノード内NVLink、ノード間RDMA、計算を単一の持続的CUDAカーネルに融合ためです。

技術的影響

モデル選定、推論コスト、プロダクト能力、評価基準に影響する可能性があります。

GPU通信オーバーヘッドは、本番AIワークロードにおいて測定可能なボトルネックです。mKernelプロジェクトが引用するデータによると、通信はフォワードパスの43.6%、エンドツーエンドのトレーニング時間の32%を消費する可能性があります。一般的な混合エキスパート(MoE)モデルでは、デバイス間通信が総実行時間の最大47%を占めることがあります。カリフォルニア大学バークレー校のUCCLプロジェクトの研究者らは、ノード内NVLink通信、ノード間RDMA、および計算を単一のカーネルに融合する持続的CUDAカーネルのライブラリであるmKernelをリリースしました。

問題:ホスト駆動通信

マルチGPU通信の標準モデルはホスト駆動です。CPUが制御パスを実行し、NCCLやNVSHMEMなどのライブラリを呼び出します。ライブラリはAllReduce、AllGatherなどの集合操作をGPU間で発行します。計算と通信は別々のCUDAストリームで実行され、カーネル境界でオーバーラップします。

研究チームはこのアプローチに2つの問題を指摘しています:

(1)CPUはGPUの計算能力に追いついていません。GB300 NVL72ラックは72基のBlackwell Ultra GPUと36基のGrace CPUを統合し、720 PFLOP/s FP8/FP6、1.44 EFLOP/s FP4 Tensor Core性能、130 TB/sの全対全ラック内NVLink帯域幅を提供します。この速度では、マイクロ秒単位のホストオーケストレーションオーバーヘッド(cudaLaunchKernel呼び出し、CPU側の「全書き込み完了」チェック、ストリーム間イベント)がパイプラインバブルとして直接現れます。

(2)ホスト駆動システムは、粗いカーネル境界で計算と通信をオーバーラップします。ホスト側からはタイルやチャンクレベルでの細かいオーバーラップは不可能です。

代替案はGPU駆動通信です。GPU自身が転送をトリガーし、通信は計算と同じカーネルに融合されます。既存の融合カーネルライブラリのほとんどは、単一ノードまたは単一GPU内で動作します。mKernelはマルチノードケースを対象としています。

mKernelの機能

mKernelは持続的CUDAカーネルのライブラリです。各カーネルは、ノード内NVLink通信、ノード間RDMA、高密度計算を単一のカーネルに融合します。

  • マルチGPU + マルチノード、1つのカーネル内:ノード内NVLinkとノード間RDMAの両方が同じ持続カーネル内に存在します。
  • 細粒度のカーネル内オーバーラップ:計算と通信はタイル/チャンク粒度でオーバーラップし、ノード内およびノード間のGPU通信をカバーします。
  • 持続カーネルとSMの専門化:CTAは自身の役割(計算、内部通信、送信、削減)を割り当てます。各役割に専用のSM数は形状ごとに調整可能です。
  • libibverbsに基づくGPU駆動ネットワーキング:mKernelはGPU起動のRDMA書き込みを使用し、NCCLやNVSHMEMに依存しません。通信バックエンドは、パフォーマンスを最大化し、異種ネットワークデバイスをサポートするためにゼロから作成されています。

5つの融合カーネル

| カーネル | 融合内容 | 説明 | |----------|----------|------| | AllGather + GEMM | AllGather → GEMM | 各ランクはAのシャードを保持。ランクがNVLink/RDMAを介して他のランクのシャードを収集する間、ローカルGEMMはタイルが到着次第消費する。 | | GEMM + AllReduce | GEMM → AllReduce | 1回の起動でC = A @ Bを計算し、部分出力を全ランクで削減。出力タイルは生成されるとすぐに削減ツリーにプッシュされる。 | | MoE Dispatch + GEMM | All-to-Allディスパッチ → グループ化GEMM | MoEトークンをエキスパートランクにルーティングし(ノード内NVLink + ノード間all-to-all)、同じカーネル内でエキスパートごとにグループ化されたGEMMを実行。トークンは到着次第処理され、ステージングバッファのラウンドトリップは不要。 | | Ring Attention | Ring KV交換 → FlashAttention | ランク間のシーケンス並列注意。各ステップでKVチャンクをリング上で回転させ、ローカルFlashAttentionは以前に受信したチャンクを消費。計算とリングの送受信は単一の持続カーネル内で並行して実行。 | | GEMM + ReduceScatter | GEMM → ReduceScatter | C = A @ Bを計算し、出力をreduce-scatter。各出力タイルは生成されるとすぐに削減され、所有するランクに転送される。 |

評価設定

研究チームは、ノード間ファブリックのみが異なる2つの2ノード×8-H200クラスタでmKernelを評価しました:

  • AWS EFA:2ノード×8 H200、ノード内NVLink、ノード間AWS EFA/SRD、各ノード16×200 Gb/s EFA。
  • ConnectX-7:2ノード×8 H200、ノード内NVLink、ノード間InfiniBand、各ノード8×400 Gb/s NVIDIA ConnectX-7。

mKernelは、NCCL、Triton-distributed、Flux、Mercury、MagiAttention、Transformer-Engine、ring-flash-attentionとベンチマークされました。より大規模なベンチマークは現在進行中です。

バックエンドと要件

mKernelは2つのネットワーキングバックエンドをサポートします:

| バックエンド | マクロ | トランスポート | 実行環境 | |------------|--------|--------------|----------| | CX7 | INTERNODE_BACKEND_IBVERBS | libibverbs RC | ConnectX-7 / InfiniBand / RoCE | | EFA | INTERNODE_BACKEND_EFA | libibverbs + efadv (SRD) | AWS p5/p5e (H200, EFA) |

両バックエンドは同じホスト側APIと同一のGPUカーネルを共有します。プロキシ/セッション実装のみが異なります(CX7はsession.h、EFAはsession_efa.h)。要件:NVIDIA Hopper GPU(デフォルトビルドターゲットsm_90a)、CUDA 12.9、PyTorchを備えたPython。CX7バックエンドにはlibibverbs開発ヘッダとライブラリが必要です。EFAバックエンドには、libfabric、libibverbs、efadvを含むAWS EFAインストールが必要で、デフォルトのEFA_HOMEは/opt/amazon/efaです。

ロードマップと重要ポイント

mKernelは現在5つの融合カーネルを提供し、ConnectX-7とAWS EFAバックエンドをサポートしています。将来の計画には以下が含まれます:

  • トポロジ認識ディスカバリ、配置、ルーティングを備えた完全な異種アクセラレータ/NICサポート
  • ノード間メガカーネル:複数の融合ステップを1つのメガカーネルに統合し、トランスフォーマー層全体をカバー
  • Blackwell GPUサポート

重要ポイント:

  • mKernelはノード内NVLink、ノード間RDMA、計算を単一の持続CUDAカーネルに融合します。
  • 引用データによると、MoEモデルでは通信オーバーヘッドが実行時間の最大47%を占めます。
  • 5つのカーネルが含まれます:AllGather+GEMM、GEMM+AllReduce、MoE Dispatch+GEMM、Ring Attention、GEMM+ReduceScatter。
  • GPU起動RDMAはlibibverbsを介して直接実装され、NCCLやNVSHMEMに依存しません。
  • 現在Hopper GPU(sm_90a)とConnectX-7またはAWS EFAネットワーキングが必要です。Blackwellサポートはロードマップにあります。

詳細はリポジトリと技術詳細を参照してください。