LPU
面向端侧大模型推理的处理器架构设计项目,覆盖需求分析、架构定义、Memory Model、Execution Model 与后续 RTL 落地路径。
LPU 项目的目标,是围绕端侧大模型推理场景,系统性地完成一套处理器架构的定义与实现路径设计。这个项目不仅关注算子支持和性能目标,也强调从需求、架构、指令集到模型验证和 RTL 实现的完整闭环。
项目背景
- 大语言模型正在推动新一轮技术变革,边缘端对大模型推理的需求持续增长。
- 现有主流推理框架和处理器方案更多面向云端,针对端侧大模型优化的架构仍然存在明显空白。
- LPU 项目既服务于真实应用需求,也用于完整梳理 NPU 设计全流程。
核心目标
- 支持 Vision Transformer、Large Language Model、Vision Language Model 推理。
- 支持 ResNet、MobileNet 等 DNN 推理任务。
- 支持 bf16 矩阵乘法、激活函数、Reduce、Norm、Softmax、RoPE、Mask 等关键能力。
- 面向工程落地定义清晰的 Memory Model 和 Execution Model。
整体架构
LPU 整体框图,覆盖 MXU、ARU、IS、BIU、UB、LMB、RMB、PMB、PSB 等关键模块。
LPU 的架构围绕矩阵乘法、激活与数据搬运三个核心方向组织:
- MXU 负责矩阵乘法计算。
- ARU 负责激活、reshape、reduce 等处理。
- IS 负责取指和向各执行单元分发指令。
- BIU、GDMA、LDMA 共同完成全局与局部数据搬运。
- UB、LMB、RMB、PMB、PSB、ARB 共同组成分层缓冲体系。
Memory Model
LPU 的 Data Path 设计,用于定义 GM、UB、LMB、RMB、PMB、PSB、ARB 之间的数据流向。
在 Memory Model 层面,项目重点明确了:
- 数据如何在 GM、UB 和各类局部 Buffer 之间流动。
- 矩阵乘法左右矩阵、参数与部分和的布局形式。
- 不同算子场景下的数据搬运与 layout 转换方式。
Execution Model
通过 set / wait 机制组织 GDMA、LDMA、MXU、ARU 等模块的并行执行与数据依赖关系。
Execution Model 的重点是通过指令级同步机制管理模块并行:
- GDMA、LDMA、MXU、ARU 等二级模块并行运行。
- Instruction Scheduler 通过 set 和 wait 控制数据依赖。
- 以 matmul 为例,数据搬运、矩阵运算与激活写回可以按依赖顺序组织成稳定流程。
项目流程
LPU 项目按照完整处理器研发链路推进:
- 收集需求:明确支持的网络类型、任务场景、算子能力与性能目标。
- 定义架构:形成整体处理器架构以及 Memory Model、Execution Model。
- 定义 ISA:根据模块能力定义指令语义与参数。
- Function Model 验证 ISA:用 C++ 或 Python 验证指令集是否满足预期需求。
- 设计微架构:纵向拆分模块、横向演绎功能闭环。
- Cycle-Accurate Model 验证微架构:用时钟周期级模型评估正确性与性能。
- RTL 实现:基于已验证架构推进硬件实现与验证。