v0.1.0 · 正式发布

EulerNPU

把 NPU 轻松搬上 FPGA 的工具 —— 首要目标是 FPGA 市场,ASIC 是长期目标

用 YAML 定义 NPU,在真实 FPGA 上运行。一张规格就能完成小型 NPU 的校验、综合并让它跑在 Zynq 系列 FPGA 上的推理优先(inference-first)NPU 全栈。

在真实 FPGA 上完成硅片验证的 3 款 NPU。同一个编译器,在真实开发板(QMTECH XC7Z020,Zynq-7000 系列)上以硅片实证了关键词识别 · 工业故障诊断 · 小型 LLM(FFN-on-NPU)—— 不是仿真。

spec → compile → bitstream → 真实 FPGA,单一 CLI 完成。145 个算子(18 组)、INT4/INT8 量化、6 个板卡目标、15 个公开 CLI 子命令,整个周期走的是同一条流水线。

145
算子 (18 组)
6
板卡目标
3 款
硅片验证 NPU
15
CLI 子命令

首要目标是 FPGA 市场。Zynq 系列上已有三款 NPU 在真实硅片上运行 —— 关键词识别、工业故障检测、小型 LLM 推理。FPGA 市场本身规模就很大,是工业与边缘应用中能拿出实测性能的落脚点。同一编译器输出长期也可扩展至 ASIC 目标。

Open Source · Silicon-Verified

真实运行在 FPGA 上的三款 NPU

同一编译器 · 同一开发板(QMTECH XC7Z020,Zynq-7000)—— 综合并实测验证三款不同的 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 个 prompt × 16 字符生成 —— CPU↔NPU 文本 5/5 一致验证。

Demo 2 —— 实时流。50 字符 ROMEO prompt 生成 —— FFN-on-NPU 混合实时推理。

※ 三个项目全部为同一 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 个示例是用于确认编译器 · 仿真器覆盖范围的参考演示。真实 silicon 验证仅限上述 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 功能仿真 + 执行 trace + 逐算子周期/MAC/延迟估计
zynq_ps Zynq ARM PS 执行
zynq_pl_stub FPGA PL 卸载分析 / 仿真

FPGA 开发板配置(6 种板卡)

Zynq-7000 XC7Z020(硅片验证,AXI-Lite MMIO)
Zynq UltraScale+ ZU3EG · ZU7EV · ZU9EG (INT4 / 高性能目标)
Kria SOM XCK26 / KV260(边缘 AI 开发套件)
ax1_sim 车载端侧推理配置(仿真)

编译管线

从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 —— 15 个子命令覆盖完整工作流(支持 --lang ko|en|zh|ja|es

命令 说明
eulernpu info显示平台、支持算子与 dtype 信息
eulernpu validate校验 spec.yaml 算子图(JSON-Schema + 23 条语义规则)
eulernpu migrate-spec NEW0.4 → 0.5 规格自动迁移
eulernpu compile将 spec.yaml 编译为 .npuart 工件
eulernpu run在 cpu_ref/npu_sim/zynq 后端运行 .npuart 工件
eulernpu sim功能仿真 + 周期/MAC/延迟估计
eulernpu generate NEW自回归 token 生成(KV 缓存)
eulernpu quantize NEWINT8/INT4 权重量化(--weight-bits 4
eulernpu profile逐算子执行时间、内存占用分析
eulernpu explainPL 卸载 + 内存规划,图调度可视化
eulernpu board smoke确认 FPGA 开发板连接与基本运行
eulernpu calibrate量化校准数据采集与应用
eulernpu benchmark运行延迟/吞吐量基准测试
eulernpu replay回放已保存的执行 trace
eulernpu compress-cache应用并校验 KV 缓存压缩配置

设计原则

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上开始 联系我们