v0.1.0 · 正式リリース

EulerNPU

FPGA に NPU を手軽に載せるためのツール — 第一目標は FPGA 市場、ASIC は長期目標

YAML で NPU を定義し、実機の FPGA で動作。 スペック一枚で小さな NPU を検証・合成し、Zynq 系列 FPGA 上で動作させる推論ファースト(inference-first)な NPU フルスタックです。

実機 FPGA でシリコン検証された NPU 3 種類。 同じコンパイラで、キーワードスポッティング・産業向け故障診断・小型 LLM(FFN-on-NPU)が実機ボード(QMTECH XC7Z020、Zynq-7000 系列)上で silicon として動作 — シミュレーションではありません。

spec → compile → bitstream → 実機 FPGA、単一 CLI で。 145 個のオペレータ(18 グループ)、INT4/INT8 量子化、6 個のボードターゲット、15 個の CLI サブコマンドで、全サイクルを同じ流れで。

145
オペレータ (18 グループ)
6
ボードターゲット
3種類
シリコン検証 NPU
15
CLI サブコマンド

第一目標は FPGA 市場です。 Zynq 系列上に 3 種類の NPU がすでにシリコン上で動いています — キーワードスポッティング、産業用欠陥検出、小型 LLM 推論。FPGA 市場自体がすでに大きく、産業・エッジ応用で実測性能を出せる位置です。同じコンパイラ出力は長期的に ASIC ターゲットにも拡張可能です。

Open Source · Silicon-Verified

実機 FPGA で動く 3 種類の NPU

同じコンパイラ・同じボード(QMTECH XC7Z020、Zynq-7000)—— 異なる 3 つの NPU を合成し実機検証

KWS(キーワードスポッティング)

DS-CNN + 16 層 GRU + FC を INT8 で量子化。フルグラフ NPU IP(kws_npu_top)合成、90 MHz @ DSP 45% / BRAM 24%。

精度11/11(CPU↔NPU 100% 一致)
高速化CPU 比 8.07×(3.17 ms/推論)
ストリーミング200 フレーム 5.166 s · 38.7 inf/s

xsdb 6 段階ブート + UART で 11/11 精度・8.07× 高速化・キーワードごとの信頼度を出力。

CWRU ベアリング故障診断

振動 FFT → 3×Conv1D + MaxPool + GAP + 2×FC INT8。bearing_npu_top IP、90 MHz @ DSP 86% / BRAM 12%。

精度40/40(CPU↔NPU 100% 一致)
高速化CPU 比 11.13×(約 4 ms/推論、252 inf/s)
リアルタイム監視200 ウィンドウ · 再現率 100% · 誤報 0%

Demo 1 — 精度検証。40 サンプルの分類表(クラスごとの CPU/NPU サイクル・11.13× 高速化)。

Demo 2 — リアルタイム監視。200 ウィンドウストリーム(故障クラス・信頼度、再現率 100% · 誤報 0%)。

nanoGPT LLM(FFN-on-NPU)

nanoGPT 10.77M(D=384・6 層、TinyShakespeare)。FFN(fc1 → gelu → fc2)のみ NPU にオフロードし、残りは ARM — XC7Z020 で LLM が動くハイブリッド L2 構成。

検証CPU↔NPU テキスト 5/5 ビット単位一致
リソースDSP 9% · BRAM 2% · LUT 17%(FFN 専用)
意義Zynq-7000 ボードで LLM 推論分割の可能性を実証

Demo 1 — ビット単位一致。5 プロンプト × 16 文字生成 — CPU↔NPU テキスト 5/5 一致検証。

Demo 2 — ライブストリーム。50 文字 ROMEO プロンプト生成 — FFN-on-NPU ハイブリッドのライブ推論。

※ 3 プロジェクトはすべて同一の EulerNPU コンパイラ出力をそのまま合成した実シリコン結果です(シミュレーションではありません)。ボード: QMTECH XC7Z020 CLG484-1(Zynq-7000)、PL クロック 90–100 MHz、ARM Cortex-A9 PS。FPGA 自体が第一目標市場であり、同じコンパイラフローは長期的に ASIC まで拡張されます。

追加サンプルデモ(スペック/シミュレーションレベル)

シリコン検証 3 種の上に、同じコンパイラで実験中のサンプルドメイン 4 種

以下のサンプルはまだ FPGA シリコン上で検証されていないソフトウェア段階のものです。同じ spec.yaml → npu_sim フローで機能のみ確認済みであり、シリコン検証は上記 3 種(KWS · ベアリング · nanoGPT)に限定されます。

Edge VLM 検査(Vision-Language Model)

エッジカメラのフレームを小型 VLM でリアルタイム判定 — 異常検出・分類のあと要約テキストを生成。Vision Encoder + Cross Attention + LLM head のグラフで spec を定義。

Embodied AI SoC(組み込み AI SoC)

ヒューマノイド・ロボットアームの低遅延認知・ポリシー推論用 SoC プロファイル。Vision Encoder + Multimodal + Policy head の組み合わせ、KV キャッシュ圧縮を含む。

ADAS Perception(自動運転認知)

車両認知スタック — 多カメラ BEV Projection + PointCloud + Trajectory Predict の演算グループ(Autonomy)を活用した spec サンプル。

EulerDrive AX1(車両推論プロファイル)

EulerAtlas 車両ドメインと整合するオンデバイス推論プロファイル — ax1_sim ボードプロファイルによるポリシーネットワークのシミュレーション。

* 上記 4 つのサンプルはコンパイラ・シミュレータのカバレッジを確認するための参考デモです。実シリコン検証は上の 3 種(KWS · ベアリング · nanoGPT)に限定されます。

製品ロードマップ

FPGA を第一目標市場に。同じコンパイラフローは長期的に ASIC まで。

完了 · 公開
FPGA シリコン検証
KWS · 欠陥検出 · LLM
Zynq-7000 実測
長期目標
ASIC · Sovereign NPU
同一コンパイラでターゲット切替
AI 推論チップ主権化

なぜ FPGA を第一目標にするのか。 FPGA 市場自体がすでに大きく — 決定論的レイテンシ、低消費電力、現場での再構成という特性のおかげで、産業オートメーション・エッジ AI・安全必須システムで実測性能を出せる位置にあります。EulerNPU はこの市場を単一の CLI ツールチェーンでカバーします。同じコンパイラフローは長期的に ASIC ターゲットにも拡張可能で、その経路は FPGA 上で既に実測検証された基盤の上で進みます。

コア機能

145 個のオペレータ、10 種の DType、spec.yaml から FPGA 推論まで

145 個のオペレータ (18 グループ、A–R)

NPU 推論に必要な全演算を 18 グループに体系化。効率アテンション(FlashAttention・GQA)、ビジョンエンコーダ、MoE/Sparse、Diffusion、Speculative Decoding など最新アーキテクチャのカバレッジを含みます。

▶ 18 グループ全リストを表示
Core MathMatMul, Add, Mul, Div, Sqrt など基本数学演算
ActivationReLU, GELU, SiLU, Sigmoid, Softmax など
NormalizationLayerNorm, RMSNorm, BatchNorm, GroupNorm
Conv/VisionConv2D, DepthwiseConv, Pool, Resize, Patch
Sequence/AttentionScaledDotProduct, MultiHeadAttention, RoPE, ALiBi
Efficient Attention NEWFlashAttention, SlidingWindowAttention, MultiQueryAttention(GQA)
MoE/SparseTopKRouter, ExpertDispatch, LoadBalanceLoss
RecurrentLSTM, GRU, SRU
GraphConcat, Split, Reshape, Transpose, Gather, Scatter
MultimodalCrossAttention, VisionProjection, AudioMel
Vision Encoder NEWPatchEmbed, ClsTokenPrepend, ImageNorm
Diffusion NEWTimestepEmbed, NoiseSample, DDIMStep, CFGScale, FlowMatchStep
Speculative Decoding NEWTokenAcceptance, DraftVerify, PrefixCacheLookup/Store
QuantizationQuantize, Dequantize, FakeQuantize, PackInt4/UnpackInt4
Mamba/SSMSelectiveScan, Discretize, SSMConv
Cache CompressKVCacheCompress, SlidingWindow, H2O
AutonomyPointCloud, BEVProject, TrajectoryPredict

10 種の DType システム

精度と性能の要求に応じて 3 段階のティアに分類されます。

Tier 0 (必須) fp32, int32 — すべてのオペレータで対応
Tier 1 (推奨) fp16, bf16, int8, uint8 — ほとんどのオペレータで対応
Tier 2 (拡張) int16, int4, fp8_e4m3, fp8_e5m2 — 特定のオペレータ

実行バックエンド (4 種)

cpu_ref ホスト NumPy リファレンス(依存なしで即実行)
npu_sim 機能シミュレーション + 実行トレース + オペレータ別サイクル/MAC/遅延推定
zynq_ps Zynq ARM PS 実行
zynq_pl_stub FPGA PL オフロード解析/エミュレーション

FPGA ボードプロファイル(6 種類)

Zynq-7000 XC7Z020(silicon-verified、AXI-Lite MMIO)
Zynq UltraScale+ ZU3EG · ZU7EV · ZU9EG(INT4 / 高性能ターゲット)
Kria SOM XCK26 / KV260(エッジ AI 開発キット)
ax1_sim 車両オンデバイス推論プロファイル(シミュレーション)

コンパイルパイプライン

spec.yaml から FPGA 推論までの 4 段階パイプライン

パイプラインの流れ

spec.yaml (オペレータグラフ定義) | v [1] Validator --- オペレータ/dtype/shape 検証、グラフ整合性確認 | v [2] Compiler --- オペレータ融合、メモリレイアウト、スケジューリング | v [3] .npuart --- シリアライズされた実行アーティファクト (オペレータ + 重み + メタデータ) | v [4] Runtime --- CPU リファレンスまたは Zynq FPGA で実行

FPGA デプロイパイプライン

ステップ1 spec.yaml を作成し eulernpu validate で検証
ステップ2 eulernpu compile で .npuart アーティファクトを生成
ステップ3 eulernpu sim でホスト上のサイクル精度シミュレーション
ステップ4 eulernpu board smoke で FPGA ボード接続を確認後 eulernpu run で実行

追加ツール

calibrate量子化キャリブレーションデータ収集
compress-cacheKV キャッシュ圧縮設定の適用
benchmarkレイテンシ/スループットベンチマーク

CLI リファレンス

単一エントリポイント eulernpu — 15 個のサブコマンドで全ワークフローを実行します(--lang ko|en|zh|ja|es 対応)

コマンド 説明
eulernpu infoプラットフォーム、対応オペレータ、dtype 情報を表示
eulernpu validatespec.yaml オペレータグラフを検証 (JSON-Schema + 23 個のセマンティック規則)
eulernpu migrate-spec NEW0.4 → 0.5 スペックの自動マイグレーション
eulernpu compilespec.yaml を .npuart アーティファクトにコンパイル
eulernpu run.npuart アーティファクトを cpu_ref/npu_sim/zynq バックエンドで実行
eulernpu sim機能シミュレーション + サイクル/MAC/レイテンシ推定
eulernpu generate NEW自己回帰トークン生成 (KV キャッシュ)
eulernpu quantize NEWINT8/INT4 重み量子化 (--weight-bits 4)
eulernpu profileオペレータ別実行時間、メモリ使用量のプロファイリング
eulernpu explainPL オフロード + メモリプラン、グラフスケジュールの可視化
eulernpu board smokeFPGA ボード接続および基本動作の確認
eulernpu calibrate量子化キャリブレーションデータの収集および適用
eulernpu benchmarkレイテンシ/スループットベンチマークの実行
eulernpu replay保存された実行トレースを再生
eulernpu compress-cacheKV キャッシュ圧縮設定の適用および検証

設計原則

EulerNPUが従うコア設計理念

宣言的ファースト

YAMLスペックファイルで計算グラフを定義——低レベルコードの記述不要、コンパイラがすべての最適化を処理します。

コンパイル前検証

ケイパビリティマトリクスがコンパイル前に各オペレータのデータ型とハードウェア制約をチェックし、ランタイムエラーを防止します。

シミュレーション先行

FPGAにデプロイする前に、サイクル精度シミュレータで正確性とパフォーマンスを検証します。

チュートリアル

ステップバイステップのガイドでEulerNPUをマスター

チュートリアルは近日公開予定です。

インストールと始め方

EulerNPUをインストールして最初のモデルをコンパイル

インストール

pip install -e ".[dev]"

# 検証してコンパイル
eulernpu validate spec.yaml
eulernpu compile spec.yaml -o model.npuart

要件

Python 3.10+, NumPy

オプション: ONNX インポート、Zynq-7000 / UltraScale+ ボード(FPGA ターゲット)

EulerNPUでNPU推論開発を始めましょう

YAMLスペックからFPGAデプロイまで、単一CLIで。

GitHubで始める お問い合わせ