実行プログラムと拡張機能
最終更新
Strataの複数GPUレイヤー分割:設定と実測
各GPUが異なるレイヤー段階を担当し、メモリを単純に合算する機能ではありません。
Strataの複数GPU1モードはpipeline/layer parallelismで連続するモデルレイヤーを各カードに割り当てます。--gpus 0,2で選ぶか、設定のgpuとlayer_splitを調整します。RTX 5080+3090のCoder測定では入力処理量が約18~20%増え、デコード2は物語文とコードで結果が異なりました。NVLinkは不要ですが、遅いカードを追加しても必ず速くなるわけではありません。
レイヤー分割は各カードにモデルの範囲を割り当てます
Strataの複数GPUレイヤー分割は、1つのモデルの連続したレイヤー範囲を各カードに割り当てます。最初のGPUが前半を処理して渡し、次のGPUが後半を処理します。各カードは担当レイヤーの専門家キャッシュを持ち、最後のGPUは出力ヘッドとdraft/MTPレイヤーも処理します。
これは layer/pipeline parallelism です。GPU ごとに別のレイヤーを担当し、tensor parallelism3 のように一つのレイヤーの行列を複数の GPU に分割しません。
verify window ごとにトークン4データをホストメモリ経由でカード間に一度渡します。NVLink や GPU 間の peer-to-peer 接続は不要で、PCIe x4 や x1 でも実行できます。

1枚のカードで専門家キャッシュが足りないときに追加を検討します
2枚でレイヤーを分けると、各カードが担当段階の専門家をキャッシュします。1枚では頻繁に使う専門家を十分に保持できない場合、2枚目のキャッシュによってデコード時のCPU5処理を減らせます。各カードにはdense weight、全文脈のKV状態、verify window、入力バッファも必要なため、VRAM6の合計だけでは適合性を判断できません。
カードを増やすと PCIe の転送負荷も増えるため、遅い GPU を追加しても常に速くなるわけではありません。Strata は 2 枚構成で分割位置を試し、専門家プロファイルを最も多く載せられる配置を選びます。
異なるアーキテクチャのカードを使う場合は、ランタイム7の対応状況とビルド条件を確認してください。NVIDIA と AMD を一回の実行で混在させる構成には対応していません。
2 枚目の VRAM が 8GB 未満の場合、セットアップツールが警告を表示します。各カードに dense weight とプロンプト8バッファが必要なため、VRAM が少ないと全体の配置が制限されます。
カードを追加する前に、現在の 1 枚構成でキャッシュヒット率と CPU 使用率を確認してください。2 枚目でどのボトルネックを減らすのか決めてから試すと、結果を判断しやすくなります。
セットアップまたは設定ファイルでGPUを選びます
WindowsではStrataフォルダーからSTART-HERE.bat --gpus 0,2を実行して2枚を選び、設定を保存します。Linuxでは./setup.sh --gpus 0,2を使います。NVIDIAの番号はnvidia-smiの順です。--gpus allは利用可能な対応カードすべて、--gpu 0はその起動だけ1枚を指定します。
設定ファイルではgpu配列とlayer_splitを指定します。gpuを[0, 2]、layer_splitをautoにすると自動配置になります。手動のlayer_split 26は、2枚目がレイヤー26から担当する意味です。3枚なら18,32のように後続段階の開始レイヤー番号を昇順で指定します。担当レイヤー数ではありません。
Strataは自動分割で選ばれたカード順を起動ログに表示します。後続のmain/0.1.41系の文書とsetup.pyでは、autoが高速なカードを最後に並べると説明されています。この自動並べ替えとgpu_order設定はv0.1.40.2にはないため、その版ではセットアップ画面と起動ログに表示された順序を基準にします。

5080+3090では入力処理の伸びがより大きくなりました
Ryzen 9 9950X3D、文脈32KでCoderを実行した測定です。RTX 5080単体とRTX 5080+3090の自動・手動分割を分け、2種類の入力長での処理量と、物語文・コード回答のデコードを別々に記録しています。
別構成で低速なRTX 2080 Tiを3枚目に加えると、物語文・コードのデコードは68・90 tok/sに下がりました。カード数やVRAM合計ではなく、追加カードで解消する処理上のボトルネックを確認してください。
左右にスクロールして各項目を比較できます。
| 構成 | 16K入力 tok/s | 28K入力 tok/s | 物語文デコード tok/s | コードデコード tok/s |
|---|---|---|---|---|
| RTX 5080単体 | 1,726–2,017 | 1,970 | 83–87 | 88–105 |
| 5080+3090・自動K=22 | 2,037 | 2,073 | 80 | 109 |
| 5080+3090・手動K=26 | 2,039 | 2,357 | 84 | 110 |
出典:Strata v0.1.40.2 MULTI_GPU.mdのCoder測定表です。入力処理量と回答デコードは別の処理なので、各列を分けて確認します。

用語の注釈
GPU — 多くの計算を並列に処理するプロセッサーです。AIモデルの実行ではモデル計算を担います。
本文に戻るトークンのデコード — 入力とそれまでの回答をもとに、次の出力トークンを順に生成する段階です。
本文に戻るテンソル並列 — モデルの層内の行列や演算を複数の装置に分割して計算する方式です。部分結果をまとめるために装置間通信が必要です。
本文に戻るトークン — モデルが入力や出力を分けて処理する単位です。
本文に戻るCPU — OSや一般的なプログラム命令を実行する中央処理装置です。AIでは前処理やデータ転送などの汎用処理も担います。
本文に戻るVRAM — グラフィックカードのGPUが使うメモリです。モデルの重みや計算途中の値を保存します。
本文に戻るランタイム — プログラムの実行時に必要な機能を提供するソフトウェア環境です。ローカルAIではモデル実行エンジンを指すこともあります。
本文に戻るプロンプト — モデルに送る入力文です。生成モデルでは作りたい結果を説明する文になり、出力の構成や内容を大きく左右します。
本文に戻る
よくある質問
- この記事で最初に確認すべきことは何ですか?
- Strataの複数GPUモードはpipeline/layer parallelismで連続するモデルレイヤーを各カードに割り当てます。--gpus 0,2で選ぶか、設定のgpuとlayer_splitを調整します。RTX 5080+3090のCoder測定では入力処理量が約18~20%増え、デコードは物語文とコードで結果が異なりました。NVLinkは不要ですが、遅いカードを追加しても必ず速くなるわけではありません。
- 必要なメモリはどのくらいですか?
- verify window ごとにトークンデータをホストメモリ経由でカード間に一度渡します。NVLink や GPU 間の peer-to-peer 接続は不要で、PCIe x4 や x1 でも実行できます。
- 選ばないほうがよいのはどのような場合ですか?
- 2枚でレイヤーを分けると、各カードが担当段階の専門家をキャッシュします。1枚では頻繁に使う専門家を十分に保持できない場合、2枚目のキャッシュによってデコード時のCPU処理を減らせます。各カードにはdense weight、全文脈のKV状態、verify window、入力バッファも必要なため、VRAMの合計だけでは適合性を判断できません。
