検索
レビュー

2台のMac StudioをThunderbolt 5で連結! 計128GBメモリ環境と分散推論「exo」でLLMを爆速化してみた(4/4 ページ)

複数デバイスを束ねてLLMを動かす「exo」を用い、Mac Studio 2台によるクラスタを構築。macOS Tahoeで解禁されたRDMAとTensor並列を組み合わせ、120B級モデルの生成速度を1.36倍に向上させた検証結果と導入手順を紹介する。

Share
Tweet
LINE
Hatena
前のページへ |       

TCP/IPとRDMA、Pipeline並列とTensor並列の性能比較

 さてexoクラスタの構築とRDMAの有効化が完了したので、早速TCP/IP構成とRDMA構成とでどの程度パフォーマンスが変わるのか見てみよう。

 今回ノード間接続に利用するThunderbolt 5の帯域は最大120Gbpsだ。従来のTCP/IPでexoクラスタを組んだ場合、プロトコルのオーバーヘッドやCPUのコピー処理が入るため、実効帯域はこれより低くなる。

 一方、RDMAを有効化すると、メモリ間の転送がCPUを経由せず直接行われるため、レイテンシの低減と帯域効率の向上が同時に得られるはずだ。

 今回はこの仮説を検証するため、「gpt-oss-120b-MXFP4-Q8」モデルを利用し、以下のプロンプトを実行した際の生成スピード(TPS)の違いを比較した。

「あなたは架空の国の首相です。経済成長率が2%で停滞し、失業率が5%に上昇しています。財政赤字も拡大傾向です。経済成長を加速し、失業率を下げ、財政健全化を同時に達成するための政策パッケージを3つ提案し、それぞれの政策がどのように相互作用するか、メリット・デメリットも含めて説明してください。」

 並列処理方式(Sharding Strategy)と通信方式(Interconnect)を組み合わせたテスト結果は以下の通りだ。

  • Pipeline並列+TCP/IP構成(デフォルト):毎秒59.1トークン
  • Pipeline並列+RDMA構成:毎秒58.4トークン
  • Tensor並列+RDMA構成:毎秒80.8トークン

 この結果から「RDMAさえ有効化していれば高いパフォーマンスが得られる」という仮説は成り立たず、並列処理の方式によってRDMAの恩恵が大きく変わるという興味深い事実が判明した。

 デフォルトの「Pipeline並列」のまま通信をRDMAに変更しても、毎秒58.4トークンとパフォーマンスは向上するどころか微減(誤差の範囲)にとどまっている。

 これは、Pipeline並列がモデルの層(レイヤー)をノード間で分割し、データをバケツリレーのように順次渡していく方式で、通信の頻度自体が比較的少ないため、広帯域・低レイテンシなRDMAの強みが生かされにくい。

 加えて、バケツリレー方式ゆえに前のノードの処理が終わるまで「待ち時間」が発生しやすく、計算リソースにアイドル時間が生じてしまうという構造的な弱点もある。

 一方、「Tensor並列」とRDMAを組み合わせた構成では毎秒80.8トークンと、デフォルト構成比で約1.36倍の大幅な向上が見られた。

 Tensor並列は、モデルの重み(テンソル)自体を複数ノードに分散させ、各ノードが部分的な計算結果を出し、ノード間で集約(All-Reduce)してから次の計算をする形式だ。

 このため各ノードの計算リソースを常にフル稼働させやすく、極めて効率的に活用できる。ただし、Pipeline並列のノード間通信はレイヤー境界でのアクティベーション転送のみで、1回あたりのサイズは大きいが回数は少ない。

 一方Tensor並列は計算のたびにAll-Reduceが走るため、通信回数が桁違いに多くなる。

 ここで、CPUを経由せずに直接メモリ間を高速通信できるRDMAの真価が発揮され、これほどまでに顕著なパフォーマンス向上につながったのだ。

 RDMAを利用したパフォーマンス向上を実現したい場合は、並列処理方式を「Tensor並列」に指定することも忘れないようにしよう。

RDMAに最適化したモデルの読み込み手順

 exoの環境構築時にモデルの読み込みについてデフォルト設定で説明していたが、exo上でRDMAとTensor並列を有効にしてモデルを起動して、最高のパフォーマンスを得る手順を解説しよう。手順は以下の通りだ。

 exoのメイン画面右側にある「LOAD MODEL」から、目的のモデル(今回の例では gpt-oss-120b-MXFP4-Q8 )を選択する。

 続いて、その下にある「ADVANCED OPTIONS」をクリックして詳細設定を展開しよう。すると、「Sharding Strategy(並列処理方式)」と「Interconnect(ノード間の接続方式)」が選択できるので、「Sharding Strategy」を「Tensor」に、「Interconnect」を「RDMA(Fast)」にそれぞれ指定し、「LAUNCH」をクリックしよう。

photo
復旧画面が表示されたら、ターミナルを起動しよう

 これで、Tensor並列とRDMAを組み合わせた、Mac Studioクラスタの真価を発揮できる構成でLLMが起動する。

まとめ

 今回はMac Studio 2台でローカルLLMサーバクラスタを構築してみたが、非常に満足できる構成に仕上がった。

 やはりmacOS Tahoe 26.3からThunderboltブリッジでRDMAをサポートされるようになった点は、ローカルLLMサーバを組むにあたって大きな転換点だ。

 もともとApple SiliconはユニファイドメモリとCPU自体の性能が非常に高く、LLMサーバとして利用するには最高の環境と考えていたものの、メモリサイズが大きいものを選ぶと一回の出費が非常に大きくなる課題も抱えていた。

 そんな中、Thunderboltブリッジを使ってかつノード間の通信レイテンシも低い構成が取れるようになったことは、非常にうれしい話だ。

 もしノードを追加するとなった場合でも、macOSとexoの組み合わせであれば、難なくクラスタの増強が可能な点も筆者は高く評価している。

 今回は得られるパフォーマンスと電源効率からMac Studioを購入したが、exoは他のmacOSデバイスでも利用できるため、M4 Mac miniを使った小さなexoクラスタを組める。コストを抑えながらより大きなモデルを扱いたい場合は、一度検討してみるのもいいだろう。

Copyright © ITmedia, Inc. All Rights Reserved.

前のページへ |       
ページトップに戻る