世界を動かす技術を、日本語で。

ベンチマークフレームワーク デスクトップマザーボードと4ノードクラスター

概要

  • Framework Desktopの AMD Ryzen AI Max+ 395Radeon 8090S 搭載機のクラスタテスト
  • プリプロダクションユニット4台 でローカルクラスタを構築・検証
  • シングルノード構成4ノードクラスタ構成 の両方を評価
  • 2.5Gbps/5Gbpsイーサネット および Thunderbolt 4 によるノード間接続を比較
  • 詳細なベンチマークや自動化スクリプトは Beowulf AI Cluster リポジトリと sbc-reviews で公開

Framework Desktopクラスタのテスト概要

  • テスト対象は Framework DesktopAMD Ryzen AI Max+ 395 搭載モデル
  • Radeon 8090S GPUを搭載したプリプロダクションユニットを4台使用
  • 各ユニットは 128GB RAM を搭載、クラスタ構成時は合計 512GB RAM 構成
  • 初期テストは 2.5Gbpsイーサネット でノード間を接続
  • NICGIGA製5Gbpsスイッチ へ変更し、通信速度を向上
  • DeskPi 提供の T1 mini rackFramework Desktop mini rack tray(試作) を利用しラックマウント
  • Thunderbolt 4 によるノード間直結も検証、 10Gbps の転送速度を確認
  • 詳細な組み立てやラック構築の様子は Mini rack build showcase で紹介

ベンチマーク・自動化・リソース

  • CPU、GPU、ディスク、ネットワークなどの 詳細ベンチマーク を実施
  • LLM(大規模言語モデル) を扱うためのクラスタ性能を評価
  • ベンチマーク結果やレビューは sbc-reviews: Framework Desktop で公開
  • テスト自動化の全プロセスは Beowulf AI Clusterリポジトリ で管理
    • テストスクリプトやセットアップ手順も同リポジトリで共有

参考リンクと補足

Hackerたちの意見

小さいモデルの比較ベンチマークをやってみたよ。https://gist.github.com/mhitza/f5a8eeb298feb239de10f9f60f841... RTX 4000 SFF Ada(20GB)と比べてるんだけど、価格は約1.2kドル(NVIDIAの公式サイトの価格を信じるならね)https://marketplace.nvidia.com/en-us/enterprise/laptops-work... それにアクセスできるのはHetznerのGEX44なんだ。デスクトップよりも2.5〜3倍速いって感じかな。ただ、tg128テストだけは「最小限」の差だったけど、計算はしてないよ。

これらの統合メモリ設計の全目的は、20GBのVRAMを超えることなんだ。

Level1TechsのWendellがこのシステムについての動画で両方を組み合わせてるのを見たよ。理論的には、OcculinkのE-GPUエンクロージャを使うことを気にしなければ、両方の良いところを得られるかもね。https://youtu.be/L-xgMQ-7lW0

素晴らしい記事をありがとう。ROCmがこんなにうまく動くとは思ってなかったよ。価格的にもLLMのワークロードやちょっとしたゲームには悪くないね。(Appleは手頃な家庭用推論ではまだ王者だけど、ゲームに関しては…最近はすごいけどLinuxの方が全然いいよね。)

ほぼ2年前にFedora Swayを日常使いに切り替えたんだ。新しいPCでWindowsのタイトルが動かなかったから、Steam+Proton+Fedoraに切り替えたらすぐに動いたよ。Valveは、MicrosoftがWindows自体を通して提供するよりも、Protonを通してより安定した完全なWindows APIを提供してるんだ。

すでにこの分野にいる人たちへ。自分のローカルLLMを動かしたい場合、今のデスクトップにNvidia 5080 GPUを探した方がいいのかな?それともこれらのFramework AMDデスクトップを試す価値がある?

もし未来が小さいモデル(27B)だと思うならNvidiaを選んで。大きいモデル(70-120B)が価値があると思うなら、AMDかAppleが必要だよ。

短く言うと、コスパがいいのは中古のRTX 3090だね(長く言うと、もちろん状況によるけど)。一般的に、コンシューマー向けの機材でLLMを動かすときのボトルネックはメモリとメモリ帯域幅だよ。3090は24GBのVRAMがあるけど、5080は16GBしかない。16GBのVRAMに収まるモデルなら5080の方が3090より速いけど、3090は5080に収まらないモデルも動かせる。モデルの一部をCPUやシステムRAMにオフロードできるけど、デスクトップCPUでモデルを動かすのはすごく重いから、部分的にオフロードしても大変だよね。もちろん、32GBのVRAMを持つRTX 5090はもっといいけど、見つけられたとしても約2000ドルするし。Strix Haloシステムの面白いところは、CPU/GPU/APUにアクセスできる(またはほぼアクセスできる)128GBのRAMがあること。これによって、3090や5090ではできないような大きなモデルをこのシステムで動かせるんだ。ただ、パフォーマンステストではStrix Haloのメモリ帯域幅が大きなボトルネックになってるみたい。100GB以上のモデルを動かすには最も手頃な方法かもしれないけど、速くはないだろうね。

ジェフ、distributed-llamaプロジェクトをチェックしてみて。クラスター全体に分散できるはずだよ。

彼はそのことを動画で言ってたよ。

https://github.com/b4rtaz/distributed-llama ?

Exo(なんか死んでるっぽい)、llama.cpp RPC(パフォーマンスに結構制限がある)、それとdistributed-llama(速いけどVulkanのクセがあって、いくつかのモデルでしか動かない)を試してみたよ。俺のAIクラスターの自動化セットアップはここにあるよ: https://github.com/geerlingguy/beowulf-ai-cluster この動画を作る過程でそれを構築してたんだけど、家でAIクラスターを作るのにどれだけ手間がかかるか、マジでヤバいよね :D

Framework Desktopには少なくとも2つのM.2コネクタがNVME用にあるよ。M.2の一つを使ってPCIeにOculink経由で接続することで、EthernetやThunderboltよりも高性能なインターコネクトが確立できるのかな?

他の高スループットネットワークオプション用に使えるPCIe x4スロットもあるよ。

通常、無限に同じ単語が繰り返される結果になる 俺もgeminiを使ってるときにそれがあった(windsurf経由で)。他のモデルでは起こらないみたい。相関関係があるかは分からないけど、面白い失敗モードだね。

これは通常、小さなモデルで貪欲なサンプリング(最も確率の高いトークンを常に選ぶ)の症状だよ。設定が異なるサンプリングのデフォルトを持ってた可能性がある、つまりtop pや温度を使ってなかったかも。distributed-llamaについては詳しくないけど、gitリポジトリを調べた感じだと、少なくとも--temperatureフラグを取るみたいだし、top p用のフラグもあるかもしれない。各ツールでサンプリング方法を明示的に同じように設定してベンチマークを再実行することをお勧めするよ。非決定論を全部オフにしてベンチマークを取るのは魅力的だけど、実際には本当に仕事で自己ホスティングするモデルにはtop-pサンプリングやそれに類似したものが必要になるから、その実装もベンチマークしたいよね。geminiがこれをやったのは見たことないけど、もしそんなサンプリングをするものを出荷したら、ちょっと驚きだな。windsurfがAPI経由で異なる設定を送ってたのか、それとも別のバグだったのかな。

そうそう、時々ジェミニは「エルゴディック自己懲罰」って呼んでる状態になることがあるんだよね。いくつかの例を挙げると…

ジェフ!フレームワークのMBをブレード配置で動かす必要があるんだけど、君がそれをやるのに最適な人みたいだね。

関連: https://www.printables.com/model/1075458-framework-mainboard...

どうやら、フレームワークのデスクトップの5Gビットネットワークは、LLM推論ワークロードに対して十分にスケールしないみたい。控えめなGPUでもそうらしい。単一の控えめなGPUに対して、どんなネットワークが必要か知ってる人いる?

llama.cppのRPCモードの場合、推論の制限要因はネットワークじゃなくて、ノードにレイヤーを配布することなんだ。いろんなモデルを実行しながらネットワークを監視してたけど、どのモデルでも最初のステップはレイヤーをコピーすること(数GBから巨大なモデルだと100GBくらい)で、これが5Gbpsの接続を最大限に使っちゃうんだ。でも、その後のウォーミングアップや処理中は、トラフィックは5-10Mbpsしかなかったから、ほぼ糸と缶でやってるようなもんだよ。でも、これは現在のRPCアーキテクチャの制限で、処理を本当に並列化できないから、投稿や動画でも言ったけど、リソースをラウンドロビン方式で使ってる感じで、単一ノードで収まるモデルなら、クラスタ全体でのパフォーマンスは悪化するだけなんだ。

ネットワークの相互接続は、高価なエンタープライズ領域に入るまではうまくスケールしないよ。そこではインフィニバンドや他のダイレクト接続の銅線/光ファイバーが支配してるからね。問題は生の帯域幅よりもレイテンシなんだ。ネットワークはメモリアクセスよりも100倍以上遅いから、普通のネットワークでメモリ集約型のワークロード(LLMみたいな)を共有し始めると、パフォーマンスがガタ落ちしちゃうんだ。ノード間の通信を最小限に抑えるために、作業をある程度チャンク化できないとね。

良いニュースだね:USB4はホスト間の直接接続を義務付けてる!Thunderboltから持ってきた機能だね。仮にそれが40Gbitの接続になるとしたら、すぐに利用できるはず。クラスターに使ってる人もいるみたい。ここにMacシステムに関するredditがあるよ。トップのリンクはあまり良くないハブ・スポークモデルの使い方(BGPスキルを持ってる人は少ないからね)へのリンクだよ。19分35秒のところにリンクしておいた。https://www.reddit.com/r/MacStudio/comments/1mc1z0s/anyone_c... https://youtu.be/Ju0ndy2kwlw?t=19m35s CXL 3.1がホスト間接続機能を持って、スケールアウトが簡単になることを期待してるよ。加速器や接続されたメモリのために盛り上がってるけど、すべてのPCIe+CXLポートに低オーバーヘッドのRDMA対応ファブリックがあるのは本当に魅力的だね。早く来てほしい!最初はサーバー向けだろうけど、もしかしたら消費者向けにも出てくるんじゃないかと期待してるよ。

メモリ帯域幅はMac Studio Ultra 3と比べるとひどいよ。それに、GPUを簡単に追加できないけど、APUとしてはすごく印象的で、NVIDIAのゴールドボックスよりはずっと良いね。ウェンデルがもっと上手く言ってた。Mac Studio Ultra 5を待ってるよ。

そうだね。これめっちゃ重要だよ!x86にとっては大きな前進だし。クアッドチャネル(4x)DDR5-8000は、(クライアント/非サーバー)レーン数が倍になって、しかも超高速クロックレートだ。すごいよね。次のZen6 Epycが12チャネルから16チャネルに進化するって確認されたし、これは楽しみだな。Strix Haloの後継機、Medusa Haloは6チャネルになるらしいよ。(この噂やリークはMoore's Law is Deadからのものが多いけどね。)もっとコアをスケールさせるには絶対に必要だよ。でも、AIの要求にはまだまだ足りない気がする。Appleがメモリ帯域幅に真剣に取り組んでるのは、本当に素晴らしいと思う。驚くべきことに、他の誰も5年経っても反応してないのが信じられない。RAMをチップに載せようよ!DDRで、高価なHBMじゃなくて。4xチップからスーパーチップを作るっていうのも、スケーラビリティを得るための明らかに良い方法だし、称賛に値するよ!ちょっと違うけど、IntelのタブレットサイズのLakefieldはパッケージオンパッケージ(PoP)RAMを使ってて、その当時としてはかなり速かった(4266MHz)。でも、Appleのように幅をスケールアップすることはできなかった。x86がこんなに停滞してるのを見るのは辛いね。必要な推進力を持てないのがもどかしい。

ネットワーキングに関しては、Thunderbolt / USB4ポートからもっと期待してたんだけど、結局10Gbpsしか出なかった。USBサブシステムのテストがもっと見られたらいいのに!PCIeが限られてるから、USB4ポートが2つあるのは魅力的だよね!でも、ちゃんと動くのかな?確か、AppleのARMチップでも似たような低帯域幅を見た気がする。M1の頃だったかな;そのチップや今後のチップで改善されたかはわからないけど!多分そうだと思うけど、そうじゃなければ聞こえてくるはずだし、こういうことは隠れがちだからね!Ryzen 1時代に、CPU自体にUSBが付いてるのを見たのはすごくクールだった。IO/周辺機器ハブ(サウスブリッジ?)を通らずに、CPUとの接続が限られてるのにね。ここに素晴らしいブレイクアウトチャートがあって、1800xといろんなチップセットが見れるよ:興味深いデータだね。 https://www.techpowerup.com/cpu-specs/ryzen-7-1800x.c1879 最近、カーネルでUSB4/Thunderboltにいくつかの改善があった気がするけど、参照やリンクを見つけるのが難しい。これがどのカーネルでテストされたのか知りたいな。何もなければ、debugfsをいじって、すべてのレーンが設定されてるか確認するのがいいね。 https://www.phoronix.com/news/Linux-6.13-USB-Changes