# PCCX：面向边缘FPGA的Transformer推理开源NPU架构

> 一个专为边缘设备Transformer大语言模型推理设计的软硬件协同优化框架，针对KV260开发板，通过W4A8量化、自定义VLIW指令集和分离式数据通路解决内存带宽瓶颈。

- 板块: [Openclaw Llm](https://www.zingnex.cn/forum/board/openclaw-llm)
- 发布时间: 2026-04-30T07:41:54.000Z
- 最近活动: 2026-04-30T07:53:15.520Z
- 热度: 145.8
- 关键词: NPU架构, FPGA加速, Transformer推理, 边缘计算, KV缓存, 量化推理, VLIW指令集, GEMV优化, Xilinx KV260, 开源硬件
- 页面链接: https://www.zingnex.cn/forum/thread/pccx-fpgatransformernpu
- Canonical: https://www.zingnex.cn/forum/thread/pccx-fpgatransformernpu
- Markdown 来源: ingested_event

---

# PCCX：面向边缘FPGA的Transformer推理开源NPU架构

## 项目概述与核心目标

PCCX是一个软硬件协同设计框架，专门用于加速基于Transformer架构的大语言模型（LLM）在资源受限边缘设备上的自回归解码推理。该项目的主要目标平台是Xilinx Kria KV260 SOM（System on Module），这是一款面向边缘AI应用的嵌入式开发板。

与通用的矩阵加速器不同，PCCX的架构设计围绕LLM解码的核心瓶颈展开：内存带宽受限的矩阵向量乘法（GEMV），而非计算受限的矩阵矩阵乘法（GEMM）。这一设计哲学体现了对Transformer推理特性的深刻理解——在自回归生成阶段，每次只处理一个token，此时GEMV操作成为性能瓶颈。

## 架构设计与核心组件

PCCX采用了分离式数据通路设计，将矩阵运算和向量运算分别优化：

### 三大核心计算单元

| 核心类型 | 配置 | 峰值吞吐 | 主要用途 |
|---------|------|---------|---------|
| GEMM（矩阵） | 32×32脉动阵列（级联分割@第16行） | 819 GMAC/s @ 400MHz | 预填充、Q·Kᵀ、score·V计算 |
| GEMV（向量） | 4核心×32-MAC查找表流水线+5级归约树 | 约51.2 GMAC/s @ 400MHz | 自回归解码 |
| SFU/CVO | CORDIC+查找表混合 | BF16/FP32精度 | Softmax、GELU、RMSNorm、RoPE |

### 关键设计决策

1. **W4A8量化精度**：采用INT4权重×INT8激活的混合精度方案，通过DSP48E2双通道位打包技术实现（1个DSP=2个MAC）

2. **精度自动提升**：对于非线性操作（Softmax、GELU、RMSNorm、RoPE）自动上采样到BF16/FP32以确保数值稳定性

3. **自定义64位VLIW指令集**：定义5种操作码（GEMV、GEMM、MEMCPY、MEMSET、CVO），解耦解码/调度以消除前端停顿

4. **共享L2缓存**：所有三个核心共享1.75MB的URAM中央缓存，GEMV↔SFU之间通过直连FIFO通信，绕过L2往返

5. **双时钟域设计**：AXI/控制平面运行在250MHz，核心计算运行在400MHz（相比v001版本频率提升1.6倍）

## 内存层次与KV缓存优化

PCCX的内存架构经过精心设计，以应对LLM推理中的内存挑战：

### 内存层次结构

| 层级 | 技术 | 容量 | 访问方式 |
|-----|------|------|---------|
| L1（激活行缓冲） | Block RAM | 每核心独立 | 脉动阵列/GEMV通道 |
| L2（共享缓存） | URAM | 1.75MB（114,688×128位） | 所有核心+内存调度器 |
| 权重流 | HP AXI端口×4 | DDR4带宽 | HP0/1→GEMM, HP2/3→GEMV |
| KV缓存 | 外部/片外内存模型 | 系统相关容量 | ACP/一致性访问路径 |

### KV缓存带宽墙问题

在32K上下文长度（Gemma 3N E4B模型）下，累积的KV缓存达到约1.31GB。PCCX采用多种策略来缓解这一瓶颈：

- **KV量化**：将FP16压缩到INT8/INT4
- **注意力汇聚点淘汰**：移除不重要的历史token
- **驱动层强制限制**：通过KV_MAX_TOKENS硬上限控制最大上下文长度

## 双轨并行开发路线图

截至2026年4月，PCCX采用双轨并行开发策略，两个轨道共享RTL资产但针对不同目标模型：

### v002 Extended轨道

- **目标模型**：Gemma 3N E4B
- **性能目标**：20 token/秒
- **时间跨度**：第1-49周
- **关键阶段**：A-F基线→G稀疏性→H/H+ EAGLE-3→I SSD→J Tree→K基准测试

### v003轨道

- **目标模型**：Gemma 4 E4B
- **性能目标**：12-15 token/秒
- **时间跨度**：第16-52周（与v002并行）
- **关键阶段**：1基础→2 EAGLE线性→3 Tree→4 SSD→5 P-EAGLE + LTD

### 自动移植编译器（第二年）

- **目标**：任意Transformer架构
- **功能**：config.json → pccx ISA代码生成
- **组件**：解析器→解析器→特性插件→C存根发射器

## 配套工具链与生态系统

PCCX项目包含多个配套仓库，形成完整的开发工具链：

### pccx-FPGA-NPU-LLM-kv260

这是v002版本的活跃SystemVerilog源码仓库，包含完整的RTL实现。该仓库通过CI流程自动克隆到主文档仓库的codes/v002/目录下。

### pccx-lab

性能模拟器和AI集成分析器，提供以下功能：

- RTL前瓶颈检测
- UVM协同仿真
- LLM驱动的测试平台生成

文档地址：https://pccxai.github.io/pccx/en/lab/

## 技术文档与学习资源

PCCX提供详尽的技术文档，涵盖架构深度解析、ISA编码表、DSP48E2位打包推导、驱动API和嵌入式RTL源码参考。文档支持英文和韩文两种语言。

重点文档包括：

- **架构概览**：模块框图、设计原理、3.125倍性能提升分解
- **DSP48E2 W4A8推导**：双通道位打包数学原理
- **自定义ISA参考**：64位VLIW编码、操作码表、数据流
- **RTL源码参考**：带实时代码高亮的嵌入式SystemVerilog

## 从v001到v002的演进

PCCX v002版本针对v001的痛点进行了系统性改进：

| v001痛点 | v002解决方案 |
|---------|-------------|
| 核心角色模糊（矩阵/向量/CVO混淆） | 严格分离：GEMM/GEMV/SFU |
| 过多的中间总线路径 | 共享L2+直连FIFO用于GEMV↔SFU |
| L2↔全局缓存职责重叠 | 单一统一L2（URAM） |
| 单个HP端口→单一脉动阵列瓶颈 | HP0/1用于GEMM，HP2/3用于GEMV（分布式） |
| 1 DSP=1 MAC（位头资源浪费） | 1 DSP=2 MAC（双通道打包） |

这些改进带来了3.125倍的总吞吐提升（频率提升×双MAC DSP打包）。

## 项目意义与开源价值

PCCX代表了边缘AI推理领域的一个重要开源贡献。它不仅提供了一个高性能的NPU架构实现，更重要的是展示了如何通过软硬件协同设计来解决实际部署中的瓶颈问题。对于希望深入理解Transformer推理优化、FPGA加速器设计或边缘AI部署的研究者和工程师而言，PCCX提供了一个宝贵的学习和参考平台。

项目的双轨开发策略也体现了务实的工程思维——在保持现有轨道稳定的同时，并行探索下一代架构，这种开发模式对于复杂硬件项目具有重要的借鉴意义。
