NPU推論合成シミュレーションスタック
123オペレータ(13グループ)、10データ型、spec.yamlから.npuartへのコンパイルパイプライン、Zynq-7020 FPGAランタイム——単一CLIでNPU推論ハードウェアの完全な開発フローをカバーします。
Open SourceCNN、Transformer、RNN、量子化など全推論シナリオをカバーする完全なオペレータセット
| Core | MatMul, Gemm, Reshape, Transpose, Concat, Split, Gather 等 |
|---|---|
| Conv | Conv2D, DepthwiseConv2D, ConvTranspose2D, GroupConv2D |
| Pool | MaxPool, AvgPool, GlobalAvgPool, AdaptiveAvgPool |
| Activation | ReLU, GELU, SiLU, Sigmoid, Softmax, Tanh 等 |
| Norm | BatchNorm, LayerNorm, GroupNorm, RMSNorm, InstanceNorm |
| Recurrent | LSTM, GRU, RNN |
| Attention | MultiHeadAttention, ScaledDotProduct, KVCache, RoPE |
| Quantize | Quantize, Dequantize, QLinearConv, QLinearMatMul |
| 浮動小数点 | float32, float16, bfloat16 |
|---|---|
| 符号付き整数 | int8, int16, int32 |
| 符号なし整数 | uint8, uint16, uint32 |
| ブール | bool |
ケイパビリティマトリクスが各オペレータのサポートデータ型とハードウェア制約を定義し、コンパイラがコンパイル前に互換性を自動検証します。
YAMLスペックからデプロイ可能な.npuartファイルまで
宣言的YAMLスペックファイルを検証、IR変換、最適化を経て.npuart(NPU Archive)形式にコンパイルします。
| 入力 | spec.yaml — 宣言的計算グラフ定義 |
|---|---|
| 検証 | オペレータ互換性、データ型、形状推論チェック |
| IR | 中間表現——グラフ最適化、オペレータ融合 |
| 出力 | .npuart バイナリ——ランタイムで直接ロード可能 |
コンパイル済み.npuartファイルをシミュレータまたはZynq-7020 FPGAハードウェアで実行できます。
| シミュレータ | サイクル精度シミュレーション、パフォーマンス分析対応 |
|---|---|
| FPGA | Zynq-7020 AXI-Lite MMIOランタイム |
| プロファイリング | レイヤー別レイテンシ、メモリ帯域幅、利用率レポート |
単一エントリポイント eulernpu — 5つのサブコマンドで完全なワークフロー
validatespec.yamlのオペレータ互換性、データ型、形状制約を検証します。
compilespec.yamlを.npuartバイナリにコンパイルします。
runシミュレータまたはFPGA上で.npuartファイルを実行します。
simサイクル精度シミュレーションで実行動作を分析します。
profileレイヤー別パフォーマンス分析、レイテンシとメモリレポートを生成します。
EulerNPUが従うコア設計理念
YAMLスペックファイルで計算グラフを定義——低レベルコードの記述不要、コンパイラがすべての最適化を処理します。
ケイパビリティマトリクスがコンパイル前に各オペレータのデータ型とハードウェア制約をチェックし、ランタイムエラーを防止します。
FPGAにデプロイする前に、サイクル精度シミュレータで正確性とパフォーマンスを検証します。
ステップバイステップのガイドでEulerNPUをマスター
チュートリアルは近日公開予定です。
EulerNPUをインストールして最初のモデルをコンパイル
Python 3.12+
Zynq-7020 開発ボード(FPGAデプロイ)