NPU 推论合成模拟栈
123个算子(13组)、10种数据类型、spec.yaml到.npuart的编译管线,以及Zynq-7020 FPGA运行时——通过单一CLI覆盖NPU推理硬件的完整开发流程。
Open Source覆盖CNN、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个子命令覆盖完整工作流
validate验证spec.yaml的算子兼容性、数据类型和形状约束。
compile将spec.yaml编译为.npuart二进制文件。
run在模拟器或FPGA上运行.npuart文件。
sim周期精确模拟,分析执行行为。
profile逐层性能分析,生成延迟和内存报告。
EulerNPU遵循的核心设计理念
YAML规格文件定义计算图——无需编写底层代码,编译器处理所有优化。
能力矩阵在编译前检查每个算子的数据类型和硬件约束,避免运行时错误。
在部署到FPGA之前,通过周期精确模拟器验证正确性和性能。
通过分步指南快速掌握EulerNPU
教程即将公开。
安装EulerNPU并编译您的第一个模型
Python 3.12+
Zynq-7020 开发板(FPGA部署)