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

この3000ドルのPi AIクラスターを作ったことを後悔しています

概要

  • Raspberry Pi Compute Blade を使ったクラスター構築体験記
  • CM4→CM5 へのアップグレードとハードウェア選定の苦労
  • HPC/AI用途 での性能・コスト・効率比較
  • 実用面の限界 とニッチな用途の可能性
  • パーツリスト とまとめ

Piクラスターは今でも価値があるのか?

  • 2023年4月に Compute Blade 10枚セット を注文、約2年後に到着
  • この間に Raspberry Pi CM4→CM5 へアップグレード
  • CM5 Lite 16GBモジュール10枚 を追加購入、合計 160GB RAM 構成
  • 総額 約3,000ドル (送料込)を投資した最大規模のPiクラスター
  • 同時期に Xerxes Pi など他のPiベースブレードも登場
  • Framework Desktop 4ノードクラスター (8,000ドル)と性能比較
  • 価格/性能/効率/密度での比較検討

クラスター構築の苦労

  • NVMe SSD の相性問題:手持ちのSSDは安定せず、 Patriot P300 に統一し信頼性向上
  • ヒートシンク未固定 による冷却不良→全ブレード再分解し、ヒートシンクをしっかり固定
  • クラスター構築・再構築を 3回 繰り返す羽目に

HPC性能ベンチマーク

  • Top500 HPLクラスターベンチマーク を実施
    • ヒートシンク未装着時: 275 Gflops (8.5倍速)
    • サーマル対策後: 325 Gflops (10倍速、消費電力130W)
  • Framework Cluster と比較して 4倍遅い が、 Gflops/W ではやや効率的
  • 価格面では Framework Desktop の方が HPCコスト効率 が高い
  • Piクラスターが 大規模HPC用途 で使われる可能性は低い

AI用途での評価

  • 160GB RAM を活かした AI推論クラスター としての可能性を検証
  • 現状 llama.cpp はPi 5 iGPUのVulkan未対応、 CPU推論のみ
  • Llama 3.2:3B (小型モデル)は1台で 6トークン/秒 程度
  • Llama 3.3:70B (40GBモデル)は分散推論必須
    • llama.cpp RPC0.28トークン/秒 (Frameworkの25分の1)
    • distributed-llama :8ノードで 0.85トークン/秒 (Frameworkの5分の1、安定性課題あり)
  • Intel N100Framework Desktop の方が圧倒的に高速

実用性と用途の考察

  • 学習用途物理的に分離したノード が必要な特殊用途(CIジョブ、高セキュリティエッジ等)には有効
  • Unredacted LabsTor exit relay 運用にPiクラスターを活用
  • 効率・密度重視 ならわずかに優位性
  • しかし コストパフォーマンス は一般的なx86サーバーに劣る
  • Gateworks GBlade (産業用Compute Blade)は既に 販売終了
  • Compute Blade はニッチな「カルト的存在」止まり

結論

  • パワー不足・コスト効率の悪さ から99%のユーザーには不向き
  • 学習・研究・特殊用途 には一考の余地
  • 維持は容易、大規模Piクラスター(例:UC Santa Barbaraの1,050ノード)よりは管理しやすい
  • Blade 9 だけはベンチマーク中によく死ぬが愛着あり
  • サポートしてくれる Patreon/GitHub/YouTube/Floatplane の皆様に感謝

使用パーツリスト

  • Compute Blade DEV
  • Compute Blade Standard Fan Unit
  • Compute Blade 10" 3D Print Rackmount
  • Raspberry Pi CM5 16GB (CM5016000)
  • GLOTRENDS Aluminum CM5 Heatsink
  • Patriot P300 256GB NVMe SSD 10-pack
  • GigaPlus 2.5 Gbps 10 port PoE+ switch
  • GigaPlus 10" Rack Mount 3D Print ears
  • Monoprice Cat6A SlimRun 6" Cat6 patch cables (10 pack)
  • ioplex SFP+ Twinax DAC patch cable
  • DeskPi RackMate TT

Hackerたちの意見

Piクラスターが実際にパフォーマンスでコスト競争力があったら、データセンターがそれでいっぱいになってるはずだよね。

何かしらのコスト競争力があればね…本当に何でも。

地面に落ちてる20ドル札を拾わない経済学者のジョークみたいだね。自由市場の完璧な効率への信頼は、長期的にはうまくいくけど、短期的には良い仕事をするための習慣がたくさんあるんだよね。

そうだね。もし女性が男性の1ドルに対して80セントしかもらってないなら、男性は雇用されなくなるよ。

Mythic BeastsがRaspberry Piサーバーをレンタルしてるよ: https://www.mythic-beasts.com/order/rpi/ - こういうニッチもあるんだ。

公平に言えば、プレイステーションについても同じことが言われてたよ。

ちょっと厳しい見出しだね。明らかに著者はテストを楽しんで、色々作ってたみたい。でも、記事の最初の一文にはちょっと後悔するかも。>「2023年4月に10台のコンピュートブレードを注文したんだけど、数週間前にやっと届いた。」これはきつい。

それが一番の後悔だけど、これまでに6つのKickstarterプロジェクトを支援してきた。中央値の納品時間は1年。なぜか、支援したアイテムはすべていつかは発送されてきた(これは予想外)。ハードウェアスタートアップは本当に難しいし、いくつかのプロジェクトと関わった結果(通常はニッチな市場で面白いアイデアを持った1人か2人)、半分以上は最初の小売製品を届ける前に失敗してるみたい。中にはプロトタイプやクラウドファンディングボードを届けるところまで行くものもあるけど、発送や物流の悪夢のせいで、もう完全に混乱してる状態になってる。

お気に入りのノームカンファレンスのセッションを思い出すな、「モデルのトレーニングと推論には一台の大きなマシンを使えばいい」ってやつ。https://youtu.be/9BXMWDXiugg?si=4MnGtOSwx45KQqoP それと、「スケーラビリティ!でも、どれくらいのコストで?」っていう古典的な論文もね。https://www.usenix.org/system/files/conference/hotos15/hotos... 要するに、並列処理に関するパフォーマンスの考慮はアムダールの法則を超えていて、スケールアウトをサポートすることで、単一ノードの実装には存在しない追加の作業がたくさん発生するんだ。(それに、マルチスレッドも逐次実装には存在しない作業を生み出すし。)コンピュータのパフォーマンスに関する本当の秘密は、最も速い操作は実行しない操作だってこと。

結論は明らかだったと思うけどね。ラズベリーパイのクラスターは、高性能コンピューティングへの実際の道ではなく、楽しむための高価なオタクの indulgence だよ。誰かがPiクラスターを作るとき、コスト効果のある取り組みだと思ってるとは思えないけど。もしかしたら、これはYouTubeスタイルの見出しがブログに流れ込んできた結果かもね。Linuxマシンのクラスターで遊んだり学んだりするのが目的なら、コスト効果の高い方法はデスクトップの消費者向けCPUを買って、ハイパーバイザーをインストールして、たくさんのVMを作ることだよ。それが好きなら、ラズベリーパイのユニットにケーブルをつないでいくのは満足感があるけど、ターミナルに入ったらデスクトップCPUやRAM、システムの柔軟性がありがたく感じるはず。

コスト効果の高い方法はクラウドでやることだね。だって、学びたいことは全部学べて、クラウドの請求書がデスクトップの価格に達する前に飽きちゃう可能性が高いから。

これについて計算してみたんだけど、最新のMx Ultraプロセッサを搭載したMac Studioを調達して、メモリを最大限にするのが100b+パラメータモデル空間に入るための最もコスト効果の高い方法みたいだよ。

中古のラックマウントサーバーをAmazonで買うのもコストパフォーマンスがいいよ。保証は切れてるかもしれないけど、その分パワーがかなりあるし、VMも小さくする必要がなくなるからね。

結論は出てないと思う。従来の計算ではパワーとコストで勝ってるけど(スペースでは常に負ける)。推論では、llama.cppのVulkanバックエンドのせいでGPUが使えないし、llama.cppのクラスタリングソフトもイマイチって言われてる。AIにはまだ悪い結果になると思うけど、ソフトウェアの未熟さが原因かもしれない(今は価値がないけど、もっと良いソフトウェアがあれば変わるかも)。

著者がブログやYouTubeチャンネルのコンテンツを作るためにこれをやったと考えると、納得がいく。後から「後悔」エントリーで再利用することで、かなり怪しい事業をさらに利用できる。YouTubeには、家での「ラボ」みたいなAI構築を提案する人たちが山ほどいるけど、ほとんどがひどくアドバイスされてる。だけど、そういうコンテンツは人気があるみたい。例えば、アレックス・ジスキンドのコンテンツとか。人々が実際に何千ドルも投資して、比較価値のないパフォーマンスの悪い超量子化されたローカルAIを持つことになるのが心配。

面白い事実だけど、ラズベリーパイには内蔵のリアルタイムクロックがなくて、バッテリーもないから、時間を保つのはネットワークの時計に頼ってるんだよね。もう一つの面白い事実は、ラズベリーパイのネットワークモジュールはUSBバスに接続されてるから、オーバーヘッドやスループットの制限があるんだ。さらに面白いのは、ラズベリーパイには電源ボタンがなくて、ソフトウェアでクリーンにシャットダウンする必要があるってこと。もしマシンへのアクセスを失ったら、ディスクの状態が壊れるのを避けることはできないよ。とはいえ、もし自分でウェブサイトをホストしたいなら、ラズベリーパイは2人から2万人の月間ユーザーまで、コストパフォーマンスがすごくいい選択肢だよ。一台のラズベリーパイで十分すぎるくらい対応できるし、冗長化のためにオーバーキルなラズベリーパイを用意することもできるけど、単体でも365日問題なく稼働できるからね。再起動したり、電源を失ったり、インターネットが切れなければ、信頼性もかなり高くなるよ。でも、もし3台目、ましてや10台目のラズベリーパイを考えてるなら、スケールの仕方を間違えてるかも。数量が重要になる前に、1台か2台のマシンの質を上げる方がコスト的に効率的だよ。組み込みの方も同じで、プロトタイピングには最適だけど、10,000台発注して量産することはないだろうね。せいぜい100台のテストバッチくらいかな?でも、大量生産の前に自分のPCBを最適化して作ることになるよ。

Geerlingのタイトルは、最近ずっとクリックベイトっぽくなってるよね。ちょっと悲しいな、彼のコンテンツは好きなのに、クリックベイトのクソみたいなのは嫌いだ。

著者のジェフ・ギーリングは、すごく頭のいい人だよ。ニッチなハードウェアの使用経験は、地球上のほとんどの人よりも多いと思う。彼が何かをやる時は、だいたい良い理由があるんだよね。

こういうことが不思議なのは、技術的な知識がなくてもその結論に達するべきだってことだよね。みんながAIをGPUで動かしてるって事実や、AIブーム以降にNVIDIAの株が急上昇したことを考えれば、何かを感じるはずじゃない?OPは本当に人間がそんなに馬鹿だと思ってたのかな?ラズベリーパイをいくつか繋げることができるってことに気づかなかったなんて。

誰かがPiクラスターを作るとき、コストパフォーマンスが良いと思ってやってるとは思えないよね?ラズベリーパイの製品は損失で売られてることもあるから、可能性としてはあり得るかも。

「でも、ブログを見てるってことは、動画を最後まで見るタイプじゃないだろうから、次に行こう…」ありがとう!

先月ベンチマークした$8,000のFramework Clusterと比べると、このクラスターは約4倍速い:遅い。4倍遅い。

これは絶対にタイプミスだね。記事の文を3回読んでも意味が分からなかったけど、数字を見てやっと理解できた。要するに、Frameworkのデスクトップを1台買えば、OPのPi AIクラスターよりもコスト、パフォーマンス、効率、手間など、すべてのパフォーマンス指標で優れてるってこと。

大きなスーパーコンピュータが過去10年でGPUを使い始めた理由がある。効率が全然違うからね。32bitの並列性能が欲しいなら、消費者向けのGPUを買って接続すればいい。64bitが必要なら、RTX 6000 Proみたいなプロシューマー向けのGPUを買えば終わり。最近はCPUクラスターを作ってる人はいないよ。

そういえば、El CapitanはAMDのCPU(統合GPU機能付き)を使ってて、最近ランキングのトップにいるよね。Frontierも同じ構成でそのすぐ後ろにいるし。専用のGPUを自分のデータバスとメモリで持つのが必ずしも最速の方法ってわけじゃないんだよね。

残念ながら、RTX 6000 Proでも倍精度のスループットが約2 TFLOPSで、単精度の64倍遅いんだよね。比較すると、EPYC 9755は約10 TFLOPSで、消費電力も少ない。A100も、見つけられれば同じくらいの性能だよ。HPCに興味がある趣味者にとって、倍精度のスループットでのベストオプションは、AMDの古いカードかもしれない。彼らも科学者が高精度にお金を払うことに気づく前のやつね。

最初に実行したベンチマークは、私のトップ500ハイパフォーマンスリンパッククラスターのベンチマークでした。これは私のお気に入りのクラスターのベンチマークで、巨大なスパコンでトップ500のスパコンリストに載せるために使われる伝統的なベンチマークなんです。 […] > 熱対策をした後、クラスターはスロットルせず、約130Wを使用しました。フルパワーでは、325 Gflopsを得ました。トップ500のリストが彼らのウェブサイトで1993年までしか遡れないのにはちょっと驚きました。彼のすごいラズベリーパイクラスターがこっそり載るような古い70年代のリストを見つけられるかなと思ってたんだけど。まあ、見てみるか… https://www.top500.org/lists/top500/ のサブリストから引っ張ってきます。トップ10がすぐに出てきます。最初のリスト(1993年6月):順位 名称 RPEAK (GFlop/s) 1 CM-5/1024 131.00 10 Y-MP C916/16256 15.24 彼が勝った最後のリストだと思う(1996年6月):1 SR2201/1024 307.20 10 SX-4/32 64.00 彼がトップ10から外れた最初のリスト(1997年11月):1 ASCI Red 1,830.40 10 T3E 326.40 彼が完全なトップ500リストから外れたのは2002年から2003年頃だと思います。残念ながら、ここではRpeakで見てしまったけど、彼らはRmaxでソートしてるから、リスト全体を見たくないんだ。転記ミスがあったらごめん。実際、こんなバカげたクラスターにしては結構いい結果だと思う。なんか「君の時計はアポロの誘導コンピュータよりも計算能力がある」みたいな話に影響されて、もっと昔からこういうのがあると思ってたけど、90年代までしか遡れないんだね。

みんな、その主張をそんなに文字通りに受け取らないで。彼は成功したテックポスターだよ。自分の購入品を見せびらかして、いいお金を稼いでるし、値段が高かったことを文句言ってるんだ。でも、彼の選択を真似しない方がいいよ。彼の経済は君の経済じゃないから!

まったく同意だね。ああいうビルダーの知識を持ってる人なら、普通のGPUがその計算能力を10倍にできるってことはもう分かってるよ。

それはほぼ当然だけど、最近のコンテンツからの本当の教訓は、何をしていても、今の時代はラズベリーパイを買うのが正解ではないってことだね。スペックと価格が全然合わなくなってきてるし、最近はかなり停滞してる感じがする。

もしダン・ルーがこのスタイルのコンテンツにシフトしてたら良かったのに。

でも、ジェフの動画は新鮮だよ。他の多くは、基本的にYouTube動画を作るために技術をレビューしてるループにはまってるからね。レンダリング時間、色の正確さ、カメラの解像度、音質とか。

分散システムに興味があるなら、AMDの最新16コアCPUを搭載した単一のマシンを用意して、そこに8つの仮想マシンを動かすのをおすすめするよ。8つの仮想マシンを作って、各マシンに4つのハイパースレッドを割り当てて、RAMは1/8ずつ分ける感じ。仮想化ソフト(Proxmoxとか)でそれらの間にネットワークを作れば、たった1台のマシンで分散ソフトを試すことができる。耐障害テストも、1台ずつクリックで抜けばいいから簡単。これだと、Perf/Wの面でもPiクラスターを圧倒できるし、複雑なコンポーネントを組み立てる必要もない。CPU、マザーボード、m.2 SSD、RAM2本だけで済むからね。もちろん、仮想化なしで高コア数のマシンを使えば、ほとんどのベンチマークで最高のPerf/Wが得られるよ。アイドル時のWも重要だけど、これがベンチマークではあまり強調されないことが多いから、クラスターを常に動かしておきたいなら気をつけてね。

ちょっと関連するけど、AMDのマルチチップワークステーションパッケージで古いMPIプログラムを動かすのがもっと大きなトレンドになると思ってたんだよね。

正直、そんなにCPUパワーが必要なの?Erlangをインストールして、手元にあるポテトレベルのLinuxボックスでいくつかノードを立てるだけで、分散システムで遊べるよ。ラズパイ一台でもいけるし。

これ、何年も言ってるんだけど。最後のラズパイ不足の時、みんなおもちゃのクラスターを作るために必死になってたのが残念で仕方ない。ラズパイは教育用に作られたけど、ほとんどが無駄になってる気がする。俺は一台のxcp-ngインスタンスでK8sの「クラスター」を動かしてるけど、そこまでやらなくてもいいんだよね。Docker Machineなら、一つのコマンドで簡単にDockerホストを立ち上げられるけど、そのプロジェクトは今や死んじゃったみたい。Docker Swarmは、サービスのスケールアップ/ダウンができるから、ハイパーバイザーは必要ないと思う。

そんなにCPUパワーはいらないよ、古いクアッドコアでも十分だし。