乐于分享
好东西不私藏

NPU: 端测AI系统AMD AIE(AI Engine)架构全解析及完整软件生态

NPU: 端测AI系统AMD AIE(AI Engine)架构全解析及完整软件生态

AMD · XDNA · AIE · 2026
从硬件 tile 微架构到完整软件生态栈——深度解析 XDNA/XDNA 2 的设计哲学与开发工具链


目录

  1. 1. 背景溯源:从 Xilinx 到 XDNA
  2. 2. AIE 硬件架构:Tile 阵列与微架构
  3. 3. 代际演进与 TOPS 性能
  4. 4. 完整软件生态栈
  5. 5. 底层编程:MLIR-AIE / IRON / Peano
  6. 6. 高层部署:Ryzen AI 软件平台
  7. 7. LLM 推理专项流程
  8. 8. 驱动层:xdna-driver 架构
  9. 9. 生态现状与挑战

1. 背景溯源:从 Xilinx 到 XDNA

技术渊源

AMD 于 2022 年完成对 Xilinx 的收购,将其 Versal 自适应 SoC 中成熟的 AI Engine(AIE)IP 引入 x86 PC 处理器生态。XDNA 即 AMD 基于此 IP 重新设计并集成的 NPU 微架构品牌。

定位

XDNA NPU 是 Ryzen AI 芯片内专用 AI 推理单元,与 Zen CPU 核和 RDNA GPU 共存于同一 die 上,专门处理 AI 推理模型,承担 Windows Studio Effects、LLM 推理等任务,从而释放 CPU/GPU 资源。

  • 首发时间:2023 年 5 月
  • 行业地位:首个 x86 Windows 处理器上的专用 AI 引擎

关键区别:与 GPU 的 SIMT 大规模线程并发模型不同,AIE 采用**空间数据流(Spatial Dataflow)**架构——数据在固定拓扑的 tile 网格中流动,延迟完全确定,无调度开销,特别适合推理场景下的低延迟、低功耗需求。


2. AIE 硬件架构:Tile 阵列与微架构

XDNA NPU 的核心是一个二维可扩展 tile 阵列。不同型号通过配置 tile 数量来匹配功耗与性能目标。

XDNA 2 Tile 阵列(32 AI Engine Tiles)

┌──────────┬──────────┬──────────┬──────────┐
│ AIE Core │ AIE Core │ AIE Core │ AIE Core │  ← 计算 Tile(VLIW+SIMD)
│    #0    │    #1    │    #2    │    #3    │
├──────────┼──────────┼──────────┼──────────┤
│ AIE Core │ AIE Core │ AIE Core │ AIE Core │
│    #4    │    #5    │    #6    │    #7    │
├──────────┼──────────┼──────────┼──────────┤
│ Mem Tile │ Mem Tile │ Mem Tile │ Mem Tile │  ← 内存 Tile(本地 SRAM)
│    A     │    B     │    C     │    D     │
├──────────┼──────────┼──────────┼──────────┤
│ AIE Core │ AIE Core │ AIE Core │ AIE Core │
│    #8    │    #9    │   #10    │   #11    │
├──────────┼──────────┼──────────┼──────────┤
│ Shim DMA │ Shim DMA │ Shim DMA │ Shim DMA │  ← Shim Tile(DMA/主机接口)
│    0     │    1     │    2     │    3     │
└──────────┴──────────┴──────────┴──────────┘

计算 Tile 内部结构

       

         
           
           
         

组件 说明
VLIW + SIMD 向量处理器 针对矩阵乘法、卷积等高吞吐量 ML 算子优化
标量 RISC 控制处理器 负责指令序列与控制流管理
片上 SRAM 存储权重/激活值,减少外部 DRAM 访问
程序存储器 进一步降低延迟与功耗

       

     

互联与数据移动

  • Stream Switch:可配置流开关,路由 tile 间数据
  • DMA 引擎:可编程 DMA,确定性高带宽传输
  • NoC(片上网络):XDNA 2 内嵌 NoC 互联
  • 确定性延迟:空间数据流保证推理时序完全可预测

XDNA 2 核心增强

  • • 向量宽度翻倍/4 倍,支持更大 micro-kernel tile 尺寸
  • • 片上内存增加 60%(相比 XDNA 1)
  • • 新增 Block Float 16(BF16) 支持
  • • INT8 理论峰值达 165+ TOPS(Ryzen AI Max+)

空间数据流 vs GPU SIMT

       

         
           
           
         

AIE 空间数据流 GPU SIMT
调度方式 静态拓扑,DMA 驱动 动态线程调度
延迟特性 确定性,可预测 不确定,受调度影响
适用场景 低延迟推理,边缘 AI 高吞吐量训练/推理
功效比 优秀 一般(适合大规模并行)

       

     


3. 代际演进与 TOPS 性能

       

         
           
           
         

代际 产品平台 AIE Tiles 精度支持 NPU TOPS 发布时间
XDNA 1 Ryzen 7040 “Phoenix” ~20 INT8 ~10 TOPS 2023
XDNA 1.x Ryzen 8040 “Hawk Point” ~20 INT8 ~16 TOPS 2024 Q1
XDNA 2 Ryzen AI 300 “Strix Point” 32 INT8 / BF16 50–55 TOPS 2024 Q3
XDNA 2 Ryzen AI 400(CES 2026) 32 INT8 / BF16 60 TOPS 2026 Q1
XDNA 2 Ryzen AI Max+ 395 “Strix Halo” 32+ INT8 / BF16 50 TOPS NPU 2025

       

     

:TOPS 为理论峰值。AMD Ryzen AI 400 的实测 AI 推理性能较 Intel Core Ultra 9 288V 快约 7–8%,尽管后者 NPU 原始 TOPS 更高,说明架构效率与软件优化同样关键。NPU 相比 CPU 核的 AI 推理性能功效比约为 35x


4. 完整软件生态栈

AMD AIE 软件生态分为两大通道:高层推理部署通道(面向应用开发者)和底层研究开发通道(面向性能工程师与编译器研究者)。

软件栈全景(自顶向下)

┌─────────────────────────────────────────────────────────┐
│                        应用层                            │
│    PyTorch / TensorFlow / ONNX 模型 · Hugging Face       │
│                   无需修改训练流程                        │
├─────────────────────────────────────────────────────────┤
│                        量化层                            │
│      AMD Quark · Vitis AI Quantizer · Microsoft Olive    │
│               FP32 → INT8 / BF16  PTQ/QAT               │
├─────────────────────────────────────────────────────────┤
│                      推理运行时                           │
│  ONNX Runtime + Vitis AI EP · OnnxRuntime GenAI          │
│           llama.cpp · Windows ML                         │
│                  自动图分区:NPU + CPU 协同               │
├─────────────────────────────────────────────────────────┤
│                       编译器层                           │
│  Vitis AI Compiler · MLIR-AIE · LLVM-AIE (Peano)        │
│              Triton-XDNA                                 │
│             图编译 → xclbin · 算子融合/向量化             │
├─────────────────────────────────────────────────────────┤
│                      XRT 运行时                          │
│         Xilinx Runtime (XRT) · XDNA SHIM Plugin         │
│         xrt::device / xrt::kernel / xrt::bo             │
│               平台无关 API · xclbin 加载执行              │
├─────────────────────────────────────────────────────────┤
│                       内核驱动                           │
│    amdxdna.ko (DRM Accel) · GEM 内存管理                 │
│         Mailbox 固件通信 · Linux / Windows               │
│                   NPU1–6 多代支持                        │
├─────────────────────────────────────────────────────────┤
│                   NPU 固件 + 硬件                         │
│   npu.sbin / npu.dev.sbin · AIE2 / AIE4 / VE2           │
│         Phoenix / Strix / Krackan / Strix Halo           │
└─────────────────────────────────────────────────────────┘

关键设计:Vitis AI Execution Provider 会自动对 ONNX 模型进行图分区(Graph Partitioning)——将 NPU 可高效执行的子图卸载到 NPU,其余算子在 CPU 上执行,整个过程对应用完全透明。


5. 底层编程:MLIR-AIE / IRON / Peano

面向性能工程师和编译器研究者,AMD 提供开源的底层编程工具链,允许直接控制 AIE 阵列的 tile 分配、数据移动和内存管理。

MLIR-AIE

基于 LLVM MLIR 的开源编译工具链,提供多层次中间表示(IR)以针对 AIE 设备。支持 Ryzen AI NPU 和 Versal 自适应 SoC。

  • • 仓库:github.com/Xilinx/mlir-aie
  • • 提供多级抽象,从 Python API 到低层 MLIR 表示

IRON API

MLIR-AIE 之上的 Python 接口,全称 Interface Representation for hands-ON AIE programming,面向需要精细控制 NPU 的工程师,支持计算 tile、内存分区、数据移动的显式管理。

编译流程

IRON Python
    ↓
MLIR AIE 方言
    ↓
MLIR-AIR(可选高层入口)
    ↓
LLVM-AIE / Peano
    ↓
aie.xclbin(设备二进制)

Triton-XDNA 通过 triton-shared → Linalg → MLIR Transform dialect → MLIR-AIR/AIE,实现从标准 Triton kernel 到 XRT 兼容二进制的端到端编译。

Peano(LLVM-AIE)

LLVM 的 AIE 后端扩展,将 AIE 处理器添加为目标架构,使 clang 等编译器前端可以为 AIE 核生成代码。开发者可用 C++ 向量内联函数(Intrinsics)编写单核代码。

AIE API 头文件库

C++ 向量内联函数库,封装了 AIE 核的基础类型(向量、累加器)、算术操作、内存访问、矩阵乘法、FFT 等专用函数,供 Peano 编译。

IRON Python API 示例(矩阵乘法 tile 分配)

# IRON close-to-metal NPU 编程示例
from
 aie.iron import Kernel, ObjectFifo, Program, Runtime
from
 aie.iron.device import NPU1Col1

# 定义计算核函数(C++ 编译后链接)

matmul_fn = Kernel(
    "matmul_int8"
,
    "matmul.cc.o"
,
    [T.memref(64, 64, T.i8()), T.memref(64, 64, T.i8()),
     T.memref(64, 64, T.i32())]
)

# 定义 ObjectFifo:tile 间数据流通道

of_in_A  = ObjectFifo("inA",  shim_tile, compute_tile, 2, T.memref(64, 64, T.i8()))
of_in_B  = ObjectFifo("inB",  shim_tile, compute_tile, 2, T.memref(64, 64, T.i8()))
of_out_C = ObjectFifo("outC", compute_tile, shim_tile, 2, T.memref(64, 64, T.i32()))

# 双缓冲最小化内存延迟,DMA 自动调度数据移动

6. 高层部署:Ryzen AI 软件平台

面向应用开发者,AMD 提供无需了解底层 tile 细节的高级部署流程,从预训练模型到 NPU 推理只需三步。

三步部署流程

① 准备模型

PyTorch / TensorFlow 预训练模型,转换为 ONNX 格式,无需修改训练流程。

② 量化

使用 AMD Quark 或 Vitis AI Quantizer 进行 PTQ(训练后量化),将模型从 FP32 量化为 INT8 或 BF16。

  • AMD Quark:推荐工具,支持 PyTorch 和 ONNX,提供 XINT8(对称 INT8 + Min-MSE 校准)、A8W8、A16W8 等量化配置
  • Vitis AI Quantizer:针对 ONNX 的量化工具,提供 PTQ 流程
  • Microsoft Olive:第三方量化工具,支持 QDQ 操作也可使用

③ 部署

通过 ONNX Runtime + Vitis AI EP 部署。首次运行编译模型并缓存,后续加载预编译二进制秒级启动。

ONNX Runtime + Vitis AI EP 部署示例

import onnxruntime
from
 pathlib import Path

# 配置 Vitis AI Execution Provider

vai_ep_options = {
    'cache_dir'
: str(Path(__file__).parent.resolve()),
    'cache_key'
: 'compiled_resnet50_int8',
    'enable_cache_file_io_in_mem'
: 0,
    'target'
: 'X2'   # STX/KRK (Strix/Krackan) NPU
}

# 创建推理 session,VAI EP 自动完成图分区

session = onnxruntime.InferenceSession(
    "resnet50_int8.onnx"
,
    providers=['VitisAIExecutionProvider'],
    provider_options=[vai_ep_options]
)

# 首次运行:编译 → 缓存 xclbin;后续:直接加载缓存

outputs = session.run(None, {'input': input_data})

Lemonade SDK

多厂商开源 LLM 服务工具,集成于 Ryzen AI 软件栈,支持 OGA 和 llama.cpp 后端,提供 Python API 和 REST Server 接口,用于快速上手 LLM 在 NPU 上的部署。


7. LLM 推理专项流程

Ryzen AI 1.7.1 软件栈为 LLM 推理提供三种开发接口,均基于 OGA(OnnxRuntime GenAI)或 llama.cpp 构建。

三种开发接口

       

         
           
           
         

接口 说明 适用场景
Lemonade Python API 最简单的上手方式,几行代码即可在 NPU 上运行 LLM 快速原型验证
Lemonade Server(REST) REST API 服务器,与 OpenAI API 兼容 集成到现有应用
OGA C++ Headers 通过 OnnxRuntime GenAI C++ API 或 llama.cpp 直接调用 原生应用开发

       

     

Hybrid CPU + NPU 推理

LLM 推理通常采用 CPU + NPU 混合执行策略:

  • Prefill 阶段(计算密集型,长上下文处理):可在 CPU 或 iGPU 上执行
  • Decode 阶段(带宽敏感型,逐 token 生成):利用 NPU 低功耗优势

Vitis AI EP 的图分区机制自动处理这一拆分。

支持的模型类型

  • • Whisper、Zipformer(语音转文字)
  • • Stable Diffusion 1.5 / 2.1 / XL / 3.0(图像生成)
  • • Compact LLMs(小型语言模型)
  • • Vision Transformers(视觉 Transformer)
  • • CNNs(卷积神经网络)

8. 驱动层:xdna-driver 架构

xdna-driver 开源仓库包含内核模块、XRT SHIM 库、固件二进制和完整构建系统,支持 NPU1–6 多代硬件。

内核驱动(amdxdna.ko)

基于 DRM Accel 框架的内核模块,通过 amdxdna_dev_ops 函数指针抽象层同时支持多代架构(AIE2 / AIE4 / VE2)。

  • GEM 内存管理:管理设备内存分配
  • HMM 集成mmu_interval_notifier 追踪用户内存失效
  • 多架构支持:AIE2(PCIe)、VE2(OpenFirmware/Device Tree)

固件通信(Mailbox 子系统)

驱动与 NPU 固件之间通过环形缓冲区(Ring Buffer)Mailbox 子系统进行双向通信,支持电源模式管理:

DEFAULT → LOW → MEDIUM → HIGH → TURBO

支持的 NPU 设备

       

         
           
           
         

设备 平台 PCI Device ID
NPU1 Phoenix 0x1502
NPU3 Strix 0x17f1 / f2 / f3
NPU4/5/6 Strix Point / Krackan / Halo 0x17f0
VE2 嵌入式平台 OpenFirmware/DT

       

     

Linux 内核集成状态

amdxdna 驱动已通过 CONFIG_DRM_ACCEL_AMDXDNA 进入主线 Linux 内核。固件文件位于 /lib/firmware/amdnpu/,可通过 linux-firmware 包安装。

:主线内核附带的固件与最新 MLIR-AIE 栈存在兼容性问题,开发者若需使用最新 AIE 栈,建议使用 xdna-driver 仓库附带的开发版固件(npu.dev.sbin)。


9. 生态现状与挑战

✅ 优势

  • • 空间数据流架构,确定性延迟,功效比优秀(AI 推理约为 CPU 核的 35x)
  • • MLIR-AIE / IRON 开源工具链,社区持续活跃
  • • XDNA 驱动已进入 Linux 内核主线
  • • Windows ML / Copilot+ PC 生态深度整合
  • • Triton-XDNA 降低高性能核编写门槛
  • • XRT 统一运行时,跨 Versal / Ryzen AI 可移植
  • • 60 TOPS 超过 Microsoft 40 TOPS Copilot+ 认证要求
  • • BF16 精度原生支持,利好 LLM 推理场景

△ 挑战

  • • NPU 编程生态仍比 CUDA 碎片化,代码样例少,专用 API 门槛高
  • • Vitis AI EP 部分开源代码不完整(历史遗留问题)
  • • 向量化内核覆盖率仍低,均值约 10%
  • • 编译耗时较长(首次推理需分钟级编译)
  • • 跨 NPU 代际移植需要硬件针对性调优
  • • Linux 上最新 AIE 栈需要替换主线固件
  • • TOPS 理论值与实际性能差距较大

开源资源导航

       

         
           
           
         

资源 说明
github.com/Xilinx/mlir-aie MLIR-AIE / IRON 工具链
github.com/amd/xdna-driver 内核驱动(开源)
github.com/amd/Triton-XDNA Triton 前端编译器
ryzenai.docs.amd.com Ryzen AI 官方文档
github.com/amd/RyzenAI-SW 示例代码与参考实现

       

     

发展方向

AMD 正推动 AIE 生态向更开放方向发展:

  • Triton-XDNA 降低高性能内核开发门槛,对 INT8/BF16 矩阵乘法性能已达手写实现水平
  • NPUEval 基准测试集(102 个算子)推动编译器代码生成标准化
  • LLM 驱动的自动内核生成通过迭代编译反馈,功能通过率从 29% 提升至 71%,正成为重要研究方向

AMD AIE Architecture Reference · 基于公开技术文档整理 · 2026
XDNA™ MLIR-AIE IRON XRT Vitis AI Ryzen AI 为 AMD 及相关方商标