v2_npu_tutorial

NPU设计全流程教程:从算法到RTL实现

课程概述

本教程深入探讨神经网络处理器(NPU)的设计全流程,从上游算法映射到RTL实现、验证与仿真。课程聚焦自动驾驶和具身智能两大前沿应用场景,以200 TOPS推理性能为设计目标,支持2:4结构化稀疏和nvfp4量化。通过对比脉动阵列(Systolic Array)和数据流(Dataflow)两种主流架构,结合TPU和Groq TSP的实际案例,帮助读者掌握NPU设计的核心技术。

目标读者

预备知识


第一部分:基础篇

第1章:NPU设计导论

  1. NPU vs GPU vs CPU:架构特征对比
  2. 推理加速的关键指标:延迟、吞吐量、能效
  3. 自动驾驶场景:感知、预测、规划算法需求
  4. 具身智能场景:VLM/VLA模型特征
  5. 200 TOPS设计空间探索
  6. 练习重点:屋顶线模型(Roofline Model)分析

第2章:算法与算子分析

  1. 自动驾驶核心网络剖析
    • 2D检测:YOLO系列、CenterNet
    • 3D检测:PointPillars、CenterPoint
    • BEV感知:BEVFormer、BEVDet
    • 轨迹预测与规划网络
  2. VLM/VLA工作负载特征
    • CLIP与对比学习
    • LLaVA、Flamingo多模态架构
    • RT-1/RT-2机器人控制模型
  3. 算子级性能分析
    • GEMM、Conv2D、Attention计算密度
    • Memory-bound vs Compute-bound分析
  4. 练习重点:算子融合优化策略

第3章:量化与稀疏化技术

  1. nvfp4 (E2M1)数值系统
    • 动态范围与精度权衡
    • 指数偏置选择策略
    • Gradual underflow处理
  2. 2:4结构化稀疏
    • 稀疏模式约束与压缩率
    • 稀疏索引编码方案
    • 与非结构化稀疏对比
  3. 量化感知训练(QAT)与后训练量化(PTQ)
  4. 混合精度策略与敏感层识别
  5. 练习重点:量化误差传播分析

第4章:存储系统与数据流

  1. 存储层次设计
    • 片上SRAM vs HBM vs DDR
    • 存储带宽需求计算
    • Bank冲突与访问模式优化
  2. 数据重用模式
    • Temporal vs Spatial重用
    • Loop tiling与blocking策略
    • Dataflow分类:WS/OS/RS
  3. DMA设计与数据预取
  4. 片上网络(NoC)基础
  5. 练习重点:带宽利用率计算

第二部分:脉动阵列架构(以TPU为例)

第5章:脉动阵列原理与设计

  1. 脉动阵列基本概念
    • 数据流动与计算同步
    • Weight-stationary设计选择
    • 阵列维度与利用率分析
  2. TPU v1-v4i架构演进
    • MXU (Matrix Multiply Unit)设计
    • 向量单元与标量单元
    • 双缓冲与流水线设计
  3. 控制流与指令集
    • VLIW vs MIMD vs SIMD
    • 指令调度与依赖管理
  4. 练习重点:脉动阵列利用率优化

第6章:脉动阵列RTL实现

  1. PE (Processing Element)设计
    • MAC单元与累加器
    • 权重寄存器与控制逻辑
    • 时序收敛策略
  2. 阵列级互连
    • 数据广播网络
    • 部分和传递链
    • Skew buffer设计
  3. 控制器设计
    • FSM状态机设计
    • Counter chain与地址生成
    • 异常处理与边界情况
  4. 练习重点:RTL时序分析与优化

第7章:TPU编译器与映射

  1. XLA编译流程
    • HLO (High-Level Optimizer)图优化
    • 算子融合与内存规划
    • Tiling策略与参数选择
  2. 矩阵乘法映射
    • 大矩阵分块策略
    • Padding与对齐要求
    • 批处理维度处理
  3. 卷积映射优化
    • Im2col vs Direct convolution
    • Winograd变换适用性
    • Depthwise/Pointwise分解
  4. 练习重点:映射效率分析

第8章:脉动阵列验证方法

  1. 功能验证策略
    • 单元测试vs系统测试
    • 定向测试vs随机测试
    • 覆盖率驱动验证
  2. 性能验证
    • Cycle-accurate模拟器
    • 性能计数器设计
    • 瓶颈分析方法
  3. 数值验证
    • Bit-accurate参考模型
    • 误差累积分析
    • Corner case测试
  4. 练习重点:验证计划制定

第三部分:数据流架构(以Groq TSP为例)

第9章:数据流架构原理

  1. 数据流计算模型
    • 静态vs动态数据流
    • Token-based执行
    • 确定性执行优势
  2. Groq TSP架构特征
    • 无外部DRAM设计理念
    • 编译时调度
    • 确定性延迟保证
  3. 与脉动阵列对比
    • 灵活性vs效率权衡
    • 编程模型差异
    • 适用场景分析
  4. 练习重点:数据流图构建与分析

第10章:TSP微架构设计

  1. 计算单元设计
    • Vector ALU阵列
    • Matrix multiplication unit
    • 特殊函数单元(SFU)
  2. 片上存储系统
    • 分布式SRAM banks
    • 地址生成与仲裁
    • Multi-casting机制
  3. 片上网络设计
    • 2D mesh拓扑
    • 路由算法与死锁避免
    • 虚通道与流控
  4. 练习重点:NoC带宽与延迟计算

第11章:数据流RTL实现

  1. 流处理器设计
    • 指令解码与发射
    • 操作数收集与转发
    • 背压处理机制
  2. 同步与调度
    • 全局同步机制
    • Credit-based流控
    • Stall处理策略
  3. 功耗优化技术
    • Clock gating
    • Power gating
    • DVFS支持
  4. 练习重点:流水线hazard分析

第12章:TSP编译器技术

  1. 静态调度算法
    • 指令调度与资源分配
    • 寄存器分配策略
    • 内存布局优化
  2. 数据流图优化
    • 公共子表达式消除
    • 死代码消除
    • 循环优化技术
  3. 自动并行化
    • 数据并行识别
    • 流水线并行
    • 模型并行策略
  4. 练习重点:调度算法复杂度分析

第四部分:系统集成与优化

第13章:多核扩展与互连

  1. Scale-up架构
    • 多芯片互连技术
    • Cache一致性协议
    • NUMA效应与优化
  2. Scale-out架构
    • 分布式训练vs推理
    • 参数服务器vs AllReduce
    • 梯度压缩与量化
  3. 芯片间互连
    • NVLink/CXL/UCIe对比
    • 拓扑选择:Ring/Mesh/Torus
    • 集合通信优化
  4. 练习重点:多核性能建模

第14章:软硬件协同设计

  1. 硬件抽象层(HAL)设计
    • 驱动接口定义
    • 内存管理接口
    • 同步原语实现
  2. 运行时系统
    • 任务调度器设计
    • 内存分配器
    • 性能profiling接口
  3. 调试与诊断
    • Hardware trace机制
    • Performance counter
    • Error reporting系统
  4. 练习重点:API设计最佳实践

第15章:性能分析与优化

  1. 性能建模方法
    • Analytical model
    • Cycle-level simulation
    • ML-based预测
  2. 瓶颈识别技术
    • Roofline分析
    • Critical path分析
    • 资源利用率分析
  3. 优化案例研究
    • Attention优化:Flash Attention
    • 卷积优化:Implicit GEMM
    • 激活函数融合
  4. 练习重点:性能优化决策树

第16章:工程实践与部署

  1. 芯片bring-up流程
    • 功能验证检查清单
    • 性能验证与校准
    • 可靠性测试
  2. 量产考虑
    • 良率分析与binning
    • 功耗分级
    • 热设计与散热
  3. 实际部署案例
    • 数据中心部署
    • 边缘端部署
    • 车载部署要求
  4. 练习重点:部署检查清单

附录

附录A:数学基础回顾

附录B:常用算子参考

附录C:工具链使用指南

附录D:术语表


学习路径建议

快速路径(4周)

标准路径(8周)

深入路径(12周)

配套资源


本教程持续更新中,欢迎反馈与贡献