0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

同じモデル、同じチップで 27 倍の差——性能を決めるのはランタイムの経路

0
Posted at

Qualcomm Dragonwing RB3 Gen 2(QCS6490)上で YOLOv11-N を測りました。測定は Qualcomm AI Hub の実機ワークベンチです。同じモデル・同じチップでも、通したランタイム経路によって 134.7 ms にも 5.03 ms にもなります。「動いた」だけでは何も分かりません。失敗した 4 経路を含む全 6 経路を公開します。

6 つの経路

# 経路 結果 レイヤ配置
1 TFLite(デフォルト) 134.7 ms 343 層中 NPU は 19 層のみ、GPU 168 層、CPU 156 層
2 Precompiled QNN、FP32 拒否 このデバイスは量子化 I/O が必須で、float モデルは入れない
3 Precompiled QNN、w8a16 QDQ 変換失敗 サーバは exit code 14 だけを返し、手がかりなし
4 QNN DLC、FP32 コンパイル成功、実機で失敗 QnnModel_composeGraphsFromDlc: MODEL_GRAPH_ERROR
5 Precompiled QNN、w8a8 QDQ 5.03 ms 341 層すべて NPU
6 Galaxy S25(対照)、TFLite と QNN どちらも約 2.9 ms すべて NPU

失敗側の注記こそ本題です。

  • 経路 1 が一番危ない。「動く」のです。ただ、ネットワークの大半を GPU と CPU で静かに実行しているだけ。レイヤ別プロファイルを見なければ、「RB3 Gen 2 の YOLOv11-N は 134.7 ms」と記録して終わっていたところでした。
  • 経路 3 は道標のない行き止まりです。コンテキストバイナリ変換が終了コードだけを返します。上流に issue を立てました(qualcomm/ai-hub-models#364)。同じ壁に当たった方はそちらを。
  • 経路 4 は古典です。「コンパイルできた」は「動く」ではありません。グラフ構成は実機側の別の関門で、そこで落ちます。
  • 経路 6 が対照として効きます。フラッグシップスマホではデフォルトの TFLite デリゲートでも全層 NPU に落ちます。壊れているのはエッジ SoC 側のデフォルト経路であって、モデルでも TFLite 全般でもありません。

持ち帰るルール

経路の書かれていないレイテンシは計測ではありません。 ランタイム、精度、レイヤ配置は数字の一部です。「NPU が遅い」と「NPU に仕事が渡っていない」を区別できる証拠はレイヤ別プロファイルだけで、この二つでは結論(チップを変えるか、書き出し設定を変えるか)が真逆になります。

Rockchip のボードでも同じ病気を繰り返し見ています。RKNN モデルが演算子単位で静かに CPU へフォールバックするやつです。ベンダもツールチェーンも違うのに、失敗の形は同一——デフォルト経路は楽観的で、プロファイルは嘘をつきません。

エッジ AI のベンチマークを公開するなら、数字と一緒に経路を書いてください。書かれていないベンチマークを読むときは、何が隠れている可能性があるか、これで見当がつくはずです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?