NPU 推論合成・シミュレーションスタック
エッジ AI のための推論優先(inference-first)NPU フルスタックです。オペレータグラフ(spec.yaml)を 138 個のオペレータ(17 グループ)で構成し、検証・コンパイルを経て .npuart アーティファクトを生成します。ホスト CPU リファレンス(cpu_ref)、機能 NPU シミュレータ(npu_sim)、Zynq-7000(XC7Z020)・Zynq UltraScale+(ZU3EG/ZU9EG)FPGA で推論を実行し、INT4/INT8 量子化・プロファイリング・キャッシュ圧縮・キャリブレーションまで単一 CLI で行います。チップとモデルを YAML で設計し、シリコンなしで遅延・メモリ・電力を証明します。
Open Sourceヒューマノイド/ロボットブレイン SoC が EulerNPU シミュレータで推論される実際のターミナルデモ
リファレンスチップ Project 3 — Embodied Multimodal AI SoC は、ビジョン + LiDAR + 言語 + 固有受容(proprioceptive)状態を一つの NPU で並列融合し、Diffusion Policy(16-step horizon · 14-DOF)でモーター行動を生成するロボットブレインチップです。138 個のオペレータ全体を単一パイプラインで使用し、INT4 MoE 重みを適用します。デモは 5 段階のサブシステムコンパイルログ → 並列パイプライン実行 → 結果表 → 14 関節の軌道 → FPGA 準備度チェックリストの順に表示し、パイプラインを 2 回実行してビット単位の決定性(bit-exact)を確認します。
| ターゲット | Zynq UltraScale+ ZU9EG FPGA @ 300 MHz |
|---|---|
| 予算 | 遅延 ≤ 150 ms · 電力 ≤ 3 W (INT4) |
| サブシステム | ビジョン(ViT) · LiDAR BEV(PointPillar) · 言語(GQA) · 状態(Mamba SSM) · 行動(MoE + Diffusion Policy) |
| 検証 | cpu_ref ↔ npu_sim 数値一致(L∞ < 1e-4) · ビット単位の決定性 |
※ Project 3 は 138 個のオペレータカバレッジと FPGA 準備度の検証のための縮小・合成リファレンスモデルです。数値は ZU9EG 予算(≤150 ms / ≤3 W)を基準に表記しています。
138 個のオペレータ、10 種の DType、spec.yaml から FPGA 推論まで
NPU 推論に必要なオペレータを 17 グループに体系化しました。spec 0.5.0 で効率アテンション・ビジョンエンコーダ・ディフュージョン・スペキュレイティブデコーディングのグループが追加されました。
| Core Math | MatMul, Add, Mul, Div, Sqrt など基本数学演算 |
|---|---|
| Activation | ReLU, GELU, SiLU, Sigmoid, Softmax など |
| Normalization | LayerNorm, RMSNorm, BatchNorm, GroupNorm |
| Conv/Vision | Conv2D, DepthwiseConv, Pool, Resize, Patch |
| Sequence/Attention | ScaledDotProduct, MultiHeadAttention, RoPE, ALiBi |
| Efficient Attention NEW | FlashAttention, SlidingWindowAttention, MultiQueryAttention(GQA) |
| MoE/Sparse | TopKRouter, ExpertDispatch, LoadBalanceLoss |
| Recurrent | LSTM, GRU, SRU |
| Graph | Concat, Split, Reshape, Transpose, Gather, Scatter |
| Multimodal | CrossAttention, VisionProjection, AudioMel |
| Vision Encoder NEW | PatchEmbed, ClsTokenPrepend, ImageNorm |
| Diffusion NEW | TimestepEmbed, NoiseSample, DDIMStep, CFGScale, FlowMatchStep |
| Speculative Decoding NEW | TokenAcceptance, DraftVerify, PrefixCacheLookup/Store |
| Quantization | Quantize, Dequantize, FakeQuantize, PackInt4/UnpackInt4 |
| Mamba/SSM | SelectiveScan, Discretize, SSMConv |
| Cache Compress | KVCacheCompress, SlidingWindow, H2O |
| Autonomy | PointCloud, BEVProject, TrajectoryPredict |
精度と性能の要求に応じて 3 段階のティアに分類されます。
| Tier 0 (必須) | fp32, int32 — すべてのオペレータで対応 |
|---|---|
| Tier 1 (推奨) | fp16, bf16, int8, uint8 — ほとんどのオペレータで対応 |
| Tier 2 (拡張) | int16, int4, fp8_e4m3, fp8_e5m2 — 特定のオペレータ |
| cpu_ref | ホスト NumPy リファレンス(依存なしで即実行) |
|---|---|
| npu_sim | 機能シミュレーション + 実行トレース + オペレータ別サイクル/MAC/遅延推定 |
| zynq_ps | Zynq ARM PS 実行 |
| zynq_pl_stub | FPGA PL オフロード解析/エミュレーション |
| Zynq-7000 | XC7Z020, AXI-Lite MMIO トランスポート |
|---|---|
| Zynq UltraScale+ | ZU3EG, ZU9EG (INT4 / 高性能ターゲット) |
spec.yaml から FPGA 推論までの 4 段階パイプライン
| ステップ1 | spec.yaml を作成し eulernpu validate で検証 |
|---|---|
| ステップ2 | eulernpu compile で .npuart アーティファクトを生成 |
| ステップ3 | eulernpu sim でホスト上のサイクル精度シミュレーション |
| ステップ4 | eulernpu board smoke で FPGA ボード接続を確認後 eulernpu run で実行 |
| calibrate | 量子化キャリブレーションデータ収集 |
|---|---|
| compress-cache | KV キャッシュ圧縮設定の適用 |
| benchmark | レイテンシ/スループットベンチマーク |
単一エントリポイント eulernpu — 15 個のサブコマンドで全ワークフローを実行します(--lang ko|en|zh|ja|es 対応)
| コマンド | 説明 |
|---|---|
eulernpu info | プラットフォーム、対応オペレータ、dtype 情報を表示 |
eulernpu validate | spec.yaml オペレータグラフを検証 (JSON-Schema + 23 個のセマンティック規則) |
eulernpu migrate-spec NEW | 0.4 → 0.5 スペックの自動マイグレーション |
eulernpu compile | spec.yaml を .npuart アーティファクトにコンパイル |
eulernpu run | .npuart アーティファクトを cpu_ref/npu_sim/zynq バックエンドで実行 |
eulernpu sim | 機能シミュレーション + サイクル/MAC/レイテンシ推定 |
eulernpu generate NEW | 自己回帰トークン生成 (KV キャッシュ) |
eulernpu quantize NEW | INT8/INT4 重み量子化 (--weight-bits 4) |
eulernpu profile | オペレータ別実行時間、メモリ使用量のプロファイリング |
eulernpu explain | PL オフロード + メモリプラン、グラフスケジュールの可視化 |
eulernpu board smoke | FPGA ボード接続および基本動作の確認 |
eulernpu calibrate | 量子化キャリブレーションデータの収集および適用 |
eulernpu benchmark | レイテンシ/スループットベンチマークの実行 |
eulernpu replay | 保存された実行トレースを再生 |
eulernpu compress-cache | KV キャッシュ圧縮設定の適用および検証 |
EulerNPUが従うコア設計理念
YAMLスペックファイルで計算グラフを定義——低レベルコードの記述不要、コンパイラがすべての最適化を処理します。
ケイパビリティマトリクスがコンパイル前に各オペレータのデータ型とハードウェア制約をチェックし、ランタイムエラーを防止します。
FPGAにデプロイする前に、サイクル精度シミュレータで正確性とパフォーマンスを検証します。
ステップバイステップのガイドでEulerNPUをマスター
チュートリアルは近日公開予定です。
EulerNPUをインストールして最初のモデルをコンパイル
Python 3.10+, NumPy
オプション: ONNX インポート、Zynq-7000 / UltraScale+ ボード(FPGA ターゲット)