大規模AIモデルの学習と推論の速度は、GPU間通信の効率に大きく依存します。AMD Instinct MI300/Xのような最新アクセラレータで最大の性能を引き出すためには、通信ライブラリの最適化が不可欠です。Metaが最近オープンソースで公開したRCCLXは、この課題を解決するために開発された、AMDプラットフォーム専用の高性能通信ライブラリです。その中核はTorchcommsとの完全な統合にあり、研究者や開発者がバックエンドに縛られることなくイノベーションを加速できるように設計されています。詳細については、Metaエンジニアリングブログの公式発表をご参照ください。

Server rack with AMD GPU hardware Programming Illustration

核心機能1: ダイレクトデータアクセス (DDA)

LLM推論のデコード段階は、メモリバンド幅に制約される操作です。従来のAllReduce演算は、この段階でエンドツーエンドレイテンシの最大30%を占める可能性があります。RCCLXのDDAは、このボトルネックを解決する2つのアルゴリズムを提供します。

  • DDA Flatアルゴリズム: 小メッセージサイズのAllReduceレイテンシを改善します。各ランクが他のランクのメモリを直接読み込み、ローカルリダクション演算を実行することで、レイテンシをO(N)からO(1)に削減します。
  • DDA Treeアルゴリズム: AllReduceを2段階(reduce-scatterとall-gather)に分割し、各ステップでダイレクトデータアクセスを利用します。リングアルゴリズムと同じ量のデータを移動しますが、やや大きいメッセージサイズに対してレイテンシを定数因子レベルに低減します。

AMD MI300X GPUでの性能向上は顕著です。デコード(小メッセージ)ではRCCLベースライン比10-50%、プリフィル段階では10-30%の高速化を示し、これはユーザー体感指標であるTTIT(Time-To-Incremental-Token)を約10%短縮する結果につながりました。

AI and machine learning concept visualization Technical Structure Concept

核心機能2: 低精度コレクティブ (Low-Precision Collectives)

大容量メッセージ(≥16MB)通信のオーバーヘッドを削減するため、RCCLXは低精度コレクティブを導入しました。FP32/BF16データをFP8で最大4:1圧縮し、通信量を劇的に削減します。

特徴説明
サポート演算AllReduce, AllGather, AlltoAll, ReduceScatter
ターゲットハードウェアAMD Instinct MI300/MI350 GPU
データ型FP32, BF16(FP8量子化を活用)
通信パターン並列P2Pメッシュ通信(AMD Infinity Fabricを活用)
計算精度高精度(FP32)を維持し数値的安定性を確保
有効化方法環境変数 RCCL_LOW_PRECISION_ENABLE=1 を設定

内部評価では、低精度コレクティブを選択的に有効化した場合、GSM8K評価での精度変化は約0.3%のみであるにもかかわらず、~9–10%のレイテンシ削減~7%のスループット向上を確認しました。これは、許容可能な数値精度の範囲内でスループットを最大化する柔軟なアプローチを可能にします。

Cloud computing and data center infrastructure Dev Environment Setup

実践ガイドと展望

RCCLXはTorchcomms APIのカスタムバックエンドとして統合されています。これにより、開発者は使い慣れたAPIを変更することなく、アプリケーションをAMDプラットフォームに容易に移植できます(CTranの新機能利用時も同様)。NVIDIA向けNCCLXバックエンドとの機能同等性を目標として開発が進められています。

始め方はシンプルです。Torchcommsリポジトリのインストール手順に従ってRCCLXバックエンドを含むTorchcommsをインストールし、以下のようにコミュニケータを初期化して使用します。

import torchcomms
import torch

# torchrunから提供される環境変数を使用してコミュニケータを初期化
comm = torchcomms.new_comm("rcclx", torch.device("hip"), name="my_comm")
print(f"現在のランク: {comm.get_rank()} / 全体: {comm.get_size()}")

# サンプルテンソルを作成しAllReduceを実行
t = torch.full((10, 20), value=comm.rank, dtype=torch.float)
comm.allreduce(t, torchcomms.ReduceOp.SUM, async_op=False)

MetaによるRCCLXの公開は、AMD AIアクセラレータエコシステムの性能とアクセシビリティを高める重要なマイルストーンです。DDAや低精度コレクティブといった最適化技術がオープンソースコミュニティに公開されたことで、より多くの研究者と開発者が高性能AIシステムの構築に役立てることができると期待されます。