Qwen3 + NPU 仿真实战 一.总览
·
Qwen3 + NPU 仿真实战
第一节:总览
1. NPX6 NPU 简介
NPX6 是多Slice 架构。包含 16 个 Slice,每个 Slice 配备 4096 个 MAC 单元,总计 65,536 个 MAC,支持 FP16 和 BF16 浮点运算。
1.1 计算架构
每个 NPX6 Slice 包含两个主要加速器:
MAC 阵列加速器
- 每 Slice 配备 4096 个 MAC 单元,支持 INT8 (8b×8b) 运算
- 支持 FP16/BF16 时,等效 1024 个 16b×16b MAC
通用张量加速器 (GTOA)
- 每 Slice 配备 128 个 MAC 单元
- 支持 Softmax、RMSNorm、SiLU 等激活函数
- 提供可编程查找表 (LUT) 支持任意激活函数
1.2 内存层次
NPX6 采用三级内存架构:
L1 内存(每 Slice)
- AM(累加器内存):128 KB,用于存储中间结果
- VM(向量内存):512 KB,用于存储权重和激活值
- 每个 Slice 的 L1 总容量为 640 KB
L2 内存(CSM 共享内存)
- 总容量:64 MB
- 分为 32 个 Bank,每个 Group 8 个 Bank
- 用于多 Slice 间的数据共享
外部内存
- 通过 AXI 端口访问,数据宽度 512-bit
2. Qwen3 模型简介
Qwen3 是阿里云推出的大语言模型系列。本教程以 Qwen3 0.6B 为例,这是该系列中最小的 Dense 模型,适合在边缘设备上部署。
2.1 模型架构
Qwen3 采用标准的 Transformer Decoder 架构,每个 Decoder Layer 包含:
- RMSNorm 归一化层
- Multi-Head Self-Attention(多头自注意力)
- SwiGLU MLP(门控线性单元)
- 残差连接
2.2 Qwen3 0.6B 参数
| 参数 | 值 |
|---|---|
| Hidden Size | 1024 |
| Num Layers | 28 |
| Num Heads | 16 |
| Head Dim | 64 |
| Intermediate Size | 2816 |
| Vocab Size | 151936 |
3. NPU 与 Qwen3 的适配
3.1 内存需求
Qwen3 0.6B 的权重存储需求:
- BF16/FP16:约 1.2 GB
NPX6 的 64 MB CSM 无法一次性容纳全部权重,需要采用分层加载策略:将模型按层切分,逐层从外部内存加载到 CSM,再分发到各 Slice 的 VM 进行计算。
3.2 关键算子映射
Qwen3 的核心算子与 NPX6 加速器的对应关系:
- Linear/MatMul → MAC 阵列
- Softmax → GTOA(通用张量加速器)
- SiLU/RMSNorm → GTOA
- Add/Mul → GTOA
更多推荐



所有评论(0)