阶段一:计算基础

1课:AI加速器概述

📖 课程概述

本课全面介绍AI加速器生态——从Google TPU到苹果Neural Engine,从NVIDIA Tensor Core到国产NPU。理解不同架构的权衡取舍是设计优秀加速器的根基。AI加速器通过牺牲通用性换取特定领域的极致效率,这是专用计算的核心哲学。

🔍 为什么需要专用加速器?

指标CPUGPUNPU
计算密度极高
能效比(TOPS/W)~0.1~1-5~10-100
内存利用率
灵活性极高低-中
核心洞察:神经网络计算本质是大量规则的矩阵运算和数据并行,一次DRAM访问能耗≈200倍MAC运算,数据搬运而非计算才是瓶颈。

🏗️ 四大架构流派

1. 脉动阵列 — Google TPU

数据有节奏流动,PE只与邻居通信,极高数据复用。

2. SIMD向量 — NVIDIA Tensor Core

单指令多数据,WMMMA矩阵分块,灵活编程。

3. 数据流 — MIT Eyeriss

计算图直接映射硬件,最小化内存访问。

4. CGRA — 清华Thinker

可重构互连+可配置功能单元,平衡灵活与效率。

📊 Roofline性能模型

可达到性能 = min(峰值算力, 带宽 × 计算密度)

计算密度 = FLOPs / 访存字节数。矩阵乘法计算密度高(O(√N)),受计算限制;向量加法计算密度低,受带宽限制。

💻 Verilog实现:加速器顶层

顶层模块包含命令解码FSM(6态)、4个PE并行阵列和统一内存接口。FSM流程:IDLE→DECODE→LOAD→COMPUTE→STORE→FINISH。

📈 性能分析

4 PE × 200MHz = 0.8 GOPS(INT16),面积约5K门,功耗约5mW@28nm。

🧪 练习

1) 扩展PE到8个计算算力提升 2) FSM添加ERROR状态 3) 计算256×256矩阵乘在4PE上的周期数

🌐 全球AI加速器生态

当前AI加速器市场呈现百花齐放的格局,不同厂商根据自身技术积累和应用场景选择了不同的架构路线:

云端训练加速器

产品厂商架构算力工艺功耗
A100NVIDIATensor Core+CUDA312 TFLOPS(FP16)7nm400W
TPU v4Google脉动阵列275 TOPS(INT8)7nm300W
昇腾910华为达芬奇架构256 TFLOPS(FP16)7nm310W
MI250XAMDMatrix Core383 TFLOPS(FP16)6nm560W

边缘推理加速器

产品厂商架构算力功耗
Jetson OrinNVIDIATensor Core40 TOPS15-60W
Neural EngineApple数据流15.8 TOPS~5W
昇腾310华为达芬奇16 TOPS8W
寒武纪220寒武纪MLU8 TOPS5W

📐 AI加速器设计方法论

设计一个AI加速器需要系统性的方法论,从应用需求到架构决策:

设计流程

  1. workload分析:分析目标网络的计算特征(计算密度、数据复用模式、内存访问模式)
  2. 架构探索:基于Roofline模型评估不同架构的计算/带宽平衡点
  3. 微架构设计:PE设计、存储层次、互连网络、控制逻辑
  4. RTL实现:Verilog编码、功能仿真、综合优化
  5. 验证与优化:Verilator lint、波形仿真、面积/时序/功耗优化

关键设计决策

🔬 计算密度与架构选择

不同神经网络操作的计算密度差异巨大,直接影响加速器架构选择:

计算密度 = FLOPs / DRAM访问字节数 (FLOPs/Byte)
操作矩阵维度FLOPsDRAM(Bytes)计算密度
FC层1024×10242M12K167
Conv3×364ch,56×5623.7M648K36.6
Conv1×1256ch,14×1425.6M411K62.3
Depthwise64ch,56×56376K154K2.4
Attention512×6467M295K227
关键洞察:深度可分离卷积的计算密度极低(2.4),属于带宽受限操作,需要专门的数据复用策略(行缓存)。而FC层和Attention计算密度高,属于计算受限,适合脉动阵列。

⚡ 能耗优化层次

AI加速器的能耗优化从算法到电路有多个层次:

层次优化方法节能比例
算法层量化(INT8/INT4)、剪枝、蒸馏2-10×
架构层数据复用、存内计算、近似计算2-5×
电路层电压缩放、时钟门控、功耗门控1.5-3×
工艺层先进工艺(7nm→3nm)、3D封装1.3-2×
设计哲学:高层优化(算法/架构)的效果远大于低层优化(电路/工艺)。先优化算法,再设计架构,最后优化电路。

📊 AI加速器发展时间线

年份里程碑影响
2016Google TPU v1发布脉动阵列成为AI加速器主流架构
2017NVIDIA Volta(Tensor Core)混合精度训练成为标配
2018MIT Eyeriss v2行驻留数据流展示了灵活数据复用
2019华为昇腾910达芬奇架构3D Cube
2020Apple Neural Engine移动端AI加速器普及
2022NVIDIA H100(Transformer Engine)FP8量化+专门Attention加速
2023存内计算芯片(如后摩智能)SRAM/RRAM存内计算开始落地
2024Chiplet NPU(如寒武纪)多芯粒扩展突破单芯片限制
🏆

成就解锁:AI加速器概述

完成本课后,你已掌握 AI加速器概述 的核心概念与硬件实现方法。

🔬 加速器微架构设计模式

不同加速器的微架构设计遵循几种基本模式,理解这些模式有助于快速评估和设计新架构:

模式1:计算单元 + 本地SRAM + DMA

这是最经典的设计模式,几乎所有商用NPU都采用:

// 典型数据流:
// 1. CPU配置参数(层类型、维度、地址)
// 2. DMA搬运输入数据到片上SRAM
// 3. 计算单元从SRAM读取数据执行计算
// 4. 结果写回SRAM
// 5. DMA搬运结果到外存
// 
// 关键:步骤2和3可以流水重叠(双缓冲)
// 关键:步骤4和5可以流水重叠(写回+下一层输入)

模式2:多级存储层次

复杂NPU通常采用3-4级存储层次:

数据在层次间流动,每升一层延迟增大约10倍,但容量也增大约10倍。设计的核心是最小化L3访问(最慢、最耗能)。

模式3:可重构互连

CGRA架构允许动态重构PE间的互连网络:

// 可重构互连配置示例:
// 时隙0:配置PE阵列为4×4脉动阵列
//   PE(0,0)→PE(0,1)→PE(0,2)→PE(0,3)  水平连接
//   PE(0,0)→PE(1,0)→PE(2,0)→PE(3,0)  垂直连接
// 
// 时隙1:配置为2路4×2并行
//   路径A: PE(0,0)→PE(0,1)→PE(1,0)→PE(1,1)
//   路径B: PE(2,0)→PE(2,1)→PE(3,0)→PE(3,1)
//
// 互连网络由配置SRAM控制,每个周期可切换

📐 面积与功耗估算方法

在架构探索阶段,需要快速估算不同设计的面积和功耗:

面积估算

总面积 ≈ PE面积 × PE数量 + SRAM面积 + 互连面积 + 控制面积
组件面积(28nm, mm²)面积占比
INT8 PE0.001基线
INT16 PE0.004
FP16 PE0.01212×
6T SRAM(1KB)0.003-
64KB SRAM0.19-
256×256 INT8 阵列~65-

功耗估算

动态功耗 = α × C × V² × f,其中α是翻转率
组件功耗(28nm, mW/MHz)占比
INT8 MAC0.001-
SRAM读(1KB)0.0005-
时钟树(大阵列)-20-30%
互连网络-10-15%
漏电功耗-10-20%(28nm)

💡 常见设计陷阱与解决方案

陷阱症状解决方案
阵列利用率低实际算力远低于峰值可变阵列大小/分块优化
带宽不足PE空转等待数据增加Bank数/数据复用
控制开销大状态机复杂难以验证简化FSM/微码控制
精度不够INT8量化后精度崩塌混合精度/累加器余量
时钟树困难大阵列时序不满足分区时钟/流水线切割

📋 本课关键概念总结

概念定义硬件影响
计算密度FLOPs/访存字节数决定计算/带宽受限
数据复用同一数据被多个PE使用减少DRAM访问次数
流水线多级操作重叠执行提高吞吐量,增加延迟
双缓冲两组缓冲区交替使用隐藏数据加载延迟
分块计算大矩阵分成小块处理适配有限片上存储
饱和算术溢出时钳位到极值防止精度崩溃
时钟门控空闲模块关闭时钟降低动态功耗

🎯 学习目标检查

📚 拓展阅读

下一课预告:本课掌握的知识将在下一课中进一步深化。建议先完成练习,确保理解核心概念后再继续。