EulerNPU

NPU 推论合成模拟栈

123个算子(13组)、10种数据类型、spec.yaml到.npuart的编译管线,以及Zynq-7020 FPGA运行时——通过单一CLI覆盖NPU推理硬件的完整开发流程。

Open Source

123个算子 & 10种数据类型

覆盖CNN、Transformer、RNN、量化等全部推理场景的完整算子集

13个算子组

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

10种数据类型

浮点 float32, float16, bfloat16
有符号整数 int8, int16, int32
无符号整数 uint8, uint16, uint32
布尔 bool

能力矩阵定义了每个算子支持的数据类型和硬件约束条件,编译器在编译前自动验证兼容性。

编译管线

从YAML规格到可部署的.npuart文件

spec.yaml → IR → .npuart

声明式YAML规格文件经过验证、IR转换和优化后,编译为.npuart(NPU Archive)格式。

输入 spec.yaml — 声明式计算图定义
验证 算子兼容性、数据类型、形状推断检查
IR 中间表示——图优化、算子融合
输出 .npuart 二进制——可直接在运行时加载

运行时

编译后的.npuart文件可在模拟器或Zynq-7020 FPGA硬件上运行。

模拟器 周期精确模拟,支持性能分析
FPGA Zynq-7020 AXI-Lite MMIO运行时
性能分析 逐层延迟、内存带宽、利用率报告

CLI 参考

单一入口点 eulernpu — 5个子命令覆盖完整工作流

validate

验证spec.yaml的算子兼容性、数据类型和形状约束。

compile

将spec.yaml编译为.npuart二进制文件。

run

在模拟器或FPGA上运行.npuart文件。

sim

周期精确模拟,分析执行行为。

profile

逐层性能分析,生成延迟和内存报告。

设计原则

EulerNPU遵循的核心设计理念

声明式优先

YAML规格文件定义计算图——无需编写底层代码,编译器处理所有优化。

编译前验证

能力矩阵在编译前检查每个算子的数据类型和硬件约束,避免运行时错误。

模拟先行

在部署到FPGA之前,通过周期精确模拟器验证正确性和性能。

教程

通过分步指南快速掌握EulerNPU

教程即将公开。

安装与入门

安装EulerNPU并编译您的第一个模型

安装

pip install -e ".[dev]"

# 验证并编译
eulernpu validate spec.yaml
eulernpu compile spec.yaml -o model.npuart

系统要求

Python 3.12+

Zynq-7020 开发板(FPGA部署)

使用EulerNPU开始NPU推理开发

从YAML规格到FPGA部署,单一CLI。

在GitHub上开始 联系我们