「NPUのTOPS値が大きいほどAIは速い」と思っていませんか? Raspberry Pi 5に載るAI HAT2+(Hailo-10H・40TOPS)を使い、画像認識とLLM生成の両方を実際に動かして実測しました。結論は明快です。画像には効くが、LLMには効きません。

結論

  • 画像認識(CNN)はHailoで激変: YOLOv8m 76.25 FPS(約15〜25倍)、ResNet50 307.64 FPS。
  • LLM生成はHailo標準ワークフロー(ollama/llama.cpp)では無効: Hailoを使わずCPU実行のまま、10.6 tok/sで変化なし。
  • Hailo純正のGenAI SDKで直接動かしても4.75 tok/s・2.5Wで、CPU実行(10.6 tok/s)より遅い結果でした。
  • 同一モデル(Qwen2.5 1.5B)をJetson Orin Nano Super(GPU)で動かすと35.6 tok/sで、Hailo経由の7倍以上でした。
  • Hailoの価値は速度でなく低消費電力(2.5W=CPU実行の約1/3)。「40 TOPS」はLLMの生成速度を予測しません
  • 乖離の理由はアーキテクチャです。LLMはメモリ帯域律速の処理、Hailoは画像(CNN)向けの構造で、両者は噛み合いません(詳しくは後述)。

仮説:TOPSとtok/sは比例するのか

AI HAT2+(Hailo-10H)は40 TOPS(INT4)という公称値を掲げています。数字だけ見れば「Raspberry Pi 5のCPU単体より圧倒的に速いはず」と考えるのが自然です。実際、画像認識の世界ではその通りに働きます。ではLLMのトークン生成速度(tok/s)も同じように向上するのか。これを検証します。

実測1:画像 vs LLMで明暗が分かれる

Raspberry Pi 5にAI HAT2+(Hailo-10H)を装着した状態で、画像認識とLLM生成それぞれを実測しました。

Raspberry Pi 5:AI HAT2+(Hailo-10H)あり / なし
タスクなし(CPU)あり(Hailo)効果
物体検出 YOLOv8m約3〜5 FPS76.25 FPS約15〜25倍速い
画像分類 ResNet50数十FPS級(経験則)307.64 FPS大幅に速い
LLM|ollama標準(Qwen2.5 1.5B)10.6 tok/s10.6 tok/sHailo不使用=不変
LLM|Hailo GenAI SDK(同上)4.75 tok/s / 2.5WCPUより遅いが超低電力

画像(CNN)はAI HAT2+で激変、LLMの速度には効かない。これがTOPS神話の核心です。最下行が決定的で、Hailo専用のGenAI SDKでLLMを実際に動かしても 4.75 tok/s=CPUの10.6 tok/sより遅い(ただし2.5WとCPU 7.9Wより省電力でCPUを解放)。つまり40 TOPSは画像には効く(308 FPS)が、LLMの速度には効かない。ollama/llama.cppはそもそもHailoを使わずCPU実行(=AI HATの有無で不変)。Hailo・LLMとも当サイトの自前実測(Hailo LLMはHailoRT 5.1.1+v5.2.0 HEF・end-to-end計測で公称~9.5 tok/sは下回るが「CPU比で速くない」結論は不変)、CPUのYOLOは外部ベンチ(根拠: Seeed Studio Wiki 等)。要検証。

AI HAT2+の40 TOPSは画像(CNN)には約15〜25倍効きますが、LLMのテキスト生成には無効です。ollama/llama.cppがHailoを使わずCPUで回すためです。ここまでは「NPU非対応のランタイムを使っているだけ」という見方もできます。そこで、Hailo自身のSDKで直接LLMを動かした場合を次に確かめます。

実測2:Hailo純正SDK vs CPU vs Jetson GPU(同一モデルで3機材比較)

「Hailo自身のSDKでLLMを動かせば速いのでは?」を確かめるため、Hailo-10HのGenAI SDK(HailoRT)でQwen2.5 1.5Bを実際に動かして実測し、同じモデルのCPU実行・GPU実行(Jetson)と並べました。

CPU実行・GPU実行(ollama)では次のプロンプトを使いました。

あなたはエッジデバイス上で動作するアシスタントです。以下の質問に日本語で詳しく答えてください。 質問: ローカル環境でLLMを動かす利点と課題を、プライバシー、レイテンシ、コスト、運用の4つの観点からそれぞれ具体例を挙げて説明してください。

Hailo GenAI SDK実行では、同じ内容を次のように言い換えたプロンプトを使いました。

ローカル環境でLLMを動かす利点と課題を、プライバシー・レイテンシ・コスト・運用の4つの観点から、それぞれ具体例を挙げて日本語で詳しく説明してください。

同じ質問の趣旨ですが、文言は完全には一致しません。

① 生成速度 tok/s(Qwen2.5 1.5B・機材別に実測)
  • Jetson Orin Nano Super(GPU)35.6
  • Raspberry Pi 5(CPU・Hailo不使用)10.6
  • Pi5 + AI HAT2+(Hailo GenAI SDK)4.75
② 消費電力 W(同上・小さいほど省電力)
  • Jetson Orin Nano Super(GPU)16.3
  • Raspberry Pi 5(CPU・Hailo不使用)7.9
  • Pi5 + AI HAT2+(Hailo GenAI SDK)2.5

Hailo GenAI SDKは最も遅いが最も省電力(tok/s/W: Jetson 2.18・Pi5 CPU 1.34・Hailo 1.90)。40 TOPSという公称値は、この2つのグラフの並び順を予測しない。

Hailo純正SDKで動かしても、LLMの生成速度はCPUより遅いという結果です(4.75 < 10.6 tok/s)。Hailoの利点は速度ではなく電力で、2.5WはCPU実行の消費電力(7.9W)の約1/3、しかもCPUコアを他の処理に解放できます。画像が307 FPSも出るのに、LLMは数tok/s。同じ40 TOPSでも、ワークロードで結果が大きく異なります。

TTFT(初回トークンまでの時間)は、Jetson 1243ms・Pi5 CPU 644msに対し、Hailo GenAI SDKは今回未計測です。測定プロトコルの課題として記録します。参考として、Hailo公式ブログは同モデル(Qwen2.5-1.5B・4bit量子化)のTTFTをHailo経由320ms/Pi CPU単独2039msと公表しており、まとまった入力の処理(prefill)ではHailoが優位という報告があります(Hailo公式ブログ。自社発表で、プロンプト長や計測条件が当サイトと異なるため直接比較はできません)。

Jetsonが速いのはCUDAコア(汎用GPU)でLLMを回せるからで、画像向けNPUのTOPSとは別物です。

なぜ乖離するか:メモリ帯域律速とアーキテクチャのミスマッチ

ローカルLLMのトークン生成は、1トークンごとにモデルの全パラメータをメモリから読み出す自己回帰処理です。速度の天井を決めるのは演算性能(TOPS)ではなくメモリ帯域です。詳しくはローカルLLMは帯域律速で解説しています。

Hailo-10Hのようなエッジ向けNPUは、畳み込み(CNN)のようにまとまったデータを並列処理するワークロードに最適化されたデータフロー型アーキテクチャです。Hailo自身も、まとまった入力を一気に処理するprefillには強いが、トークンを1つずつ生成し続けるワークロード(token-by-token generation)中心ではないと説明しており(同上のHailo公式ブログ)、今回の実測(画像は激変・LLM生成は不変〜微減)と整合します。「TOPSが大きい=汎用的に速い」ではなく、TOPSは特定のワークロード(主に画像・CNN)でしか額面通りに効かない、というのが実態です。

結論と機材選定への含意

  • 「TOPSが大きい」は「LLMが速い」を意味しません。ローカルLLMの機材選びで見るべきはメモリ帯域とVRAM/RAM容量です(機材の選び方)。
  • Hailoのようなエッジ向けNPUは画像認識(YOLO等)やVLMの一部処理には強力です。LLM単体の生成速度を求めるなら、GPU(Jetsonなど)かCPU素通しのほうが現実的です。
  • 低消費電力(2.5W)は魅力です。常時稼働の画像認識に軽いLLM連携を添える構成(防犯カメラ・現場モニタリング等)なら、Hailoの省電力性は選択肢になり得ます。
  • 生成速度・消費電力の全数値は検証DB、CC BY 4.0でのCSV/JSONダウンロードはオープンデータから確認できます。

精度等について

  • Hailo GenAI SDK実測はTTFT・温度が未計測です(監査証跡として記録・次回計測での課題)。
  • 実測は各条件2回平均・モデル1種(Qwen2.5 1.5B)のみです。他モデルサイズ・他Hailoモデル(Hailo-8L等)への一般化は未検証です。
  • CPU/GPU側(ollama・num_predict=256・temperature=0)とHailo側(HailoRT GenAI SDK・max_generated_tokens=200・temperature=0.1)は生成トークン数・温度パラメータが完全には揃っていません。プロンプトも表現がわずかに異なります(上記引用参照)。tok/sの比較はおおよその目安です。
  • Hailo公式ブログのTTFT値(320ms)は自社発表かつ計測条件が非公開で、当サイトの実測と直接比較はできません。
  • 電力の測定境界が機種で異なります(Pi5・Hailo=vcgencmdによる基板総電力、Jetson=tegrastats)。機種横断のtok/s/W比較は目安です。
  • 画像認識の「Hailo未使用(CPU)」時のYOLOv8m基準値(約3〜5 FPS)は自社実測ではなく外部ベンチの参考値です(Seeed Studio Wiki)。Hailo使用時(76.25 FPS)とResNet50(307.64 FPS)は自社実測です。

この記事の実測条件

  • CPU実行(Raspberry Pi 5)・GPU実行(Jetson Orin Nano Super): ollama API実測。ウォームアップ後、本計測2回平均・num_predict=256temperature=0
  • Hailo GenAI SDK実行: hailo_platform.genai.LLMを直接実行。ウォームアップ1回(非記録)→本計測2回平均・max_generated_tokens=200temperature=0.1・end-to-end計測(ストリーミングのdecode専用計測より厳しめ=同条件比較の下限)。消費電力はvcgencmd pmic_read_adcを1秒間隔でサンプリングしたPi5基板総電力の平均です。
  • 画像認識(YOLOv8m・ResNet50): hailortcli benchmarkによるHailo-10H実測(HailoRT 5.1.1・v5.2.0 HEF)。

手元の機材でこのモデルが動くかは動くか診断、測定方法の全体像は実力をどう測るかをどうぞ。

この機材を入手する

実売価格は変動するため、最新の価格はリンク先で確認してください。