DNN Accelerator Systolic Dataflow(DNN 加速器与脉动数据流)

arch-study 并行篇 Day 25:H&P Ch.7.1–7.5 Domain-Specific Architectures——把 Day 24 GPU SIMT 的「软件 SIMD」再推一步:把并行刻进 MAC 阵列。核心命题:数据复用策略决定一切;脉动阵列是 TPU 的灵魂。

Source: arch-study-30d-day-25.md

为何需要 DSA

通用 CPU 优化路径:↓IC / ↓CPI / ↑Clock。DNN 加速器换路:

通用 CPU典型 DNN 加速器 (TPU v1)
性能~25–50×
功耗~3–4×
性能/Watt~10–15×
GPU (K80) 对照~3–5× vs CPU

晶体管叙事:CPU ~90% 做「判断」(分支、依赖、Cache);真正 MAC ~10%。TPU 把控制砍到 ~5%,MAC 阵列 ~70% + Buffer/NoC ~25%。见 DSA Processor Design Tradeoffs

Roofline for DNN / NPU

Performance = min(Peak_Compute, Bandwidth × AI)
AI = FLOPs / Bytes
Ridge Point = Peak_Compute / Bandwidth
  • AI > Ridge → compute-bound(堆 PE)
  • AI < Ridge → memory-bound(堆带宽 / NoC)
Kernel典型 AI (FLOPs/Byte)类别
大 GEMM100–200Compute-bound
Convolution50–150Compute-bound
Attention Q×Kᵀ50–100Compute-bound
GEMV10–50近 Ridge
Softmax / LayerNorm5–30Memory-bound

算子级 AI 与 Prefill/Decode 对应见 GEMM vs GEMV

TPU v1 锚点(练习)

  • 65,536 INT8 MAC(256×256)、700 MHz、34 GB/s DDR3
  • Peak ≈ 91.8 TOPS INT8;Ridge ≈ 2700 FLOPs/Byte (INT8)(CPU Ridge ~10 → TPU「compute 区」大 ~270×)

NPU 设计锚点:目标 workload AI 与 Ridge 对齐——MLPerf 推理典型 AI 50–100 时,Ridge 落在 100–300 往往更平衡。

脉动阵列 (Systolic Array)

数据像「心跳」在 PE 间流动:算完主动传给邻居,而非每 MAC 写回 memory。

Activation ↓ 列步进;Weight 预载于 PE;Partial Sum → 行/对角累积
C[i,j] = Σₖ A[i,k] × B[k,j]
吞吐 ≈ 1 MAC/cycle/PE;访存相对朴素实现可降到 ~1/N(N=阵列边长)

关键特性:单时钟域同步;控制极简(无 OoO/BP);权重流与激活流正交 → 高复用。

访存直觉(16×16 FP16 GEMM):朴素每 MAC 写回 ≈ 12k 次访存;脉动一次加载复用 ≈ ~8× 访存节省;阵列越大,复用越好(256×256 量级可达 ~256×),但受良率/频率约束。

数据复用三策略

策略驻留对象代表优点缺点
Weight Stationary (WS)Filter/权重TPU(经典)权重访存最小psum 路由复杂
Output Stationary (OS)输出累加NVDLA实现简单权重/输入访存高
Row Stationary (RS)1D 卷积行Eyeriss卷积复用好控制复杂

选型启发:小 batch → WS;大 batch → OS;不规则/深度可分离 → RS。可重构 (dataflow, layout) 见 FEATHER

PE 级混合精度

典型 TPU 风格 PE:Weight reg(可 32b)× Activation(常 8b)+ 宽 Accumulator。低精度输入减带宽,高精度累加保数值——与 Numeric Formats 的 INT8/BF16 选择直接相关。

CPU vs GPU vs TPU 哲学

维度CPUGPUTPU
并行形态少核高 IPCSIMT 宽超大 MAC 阵列
数据复用CacheShared Memory数据流
控制完整 OoO/BP简化极简
编程串行+线程Kernel编译成数据流
性能/Watt3–5×10–15×

GPU Tensor Core = 小矩阵×多实例;脉动阵列 = 大网格×少实例——共同:空间换时间、专用换灵活GPU SIMT)。

WSE SLA vs TPU PE

维度WSE SLATPU PE
粒度微 CPU(多 MAC + SRAM + NoC)1 MAC + 寄存器
互连通用 2-D mesh NoC硬连线阵列
灵活性任意 DAG矩阵乘为主
编译器Placement/routing 重XLA 映射阵列
能效倾向中(含 NoC/控制)阵列内更高
  • 只跑推理矩阵乘 → TPU/脉动路线
  • 训练+控制+通信 → WSE/MIMD PE 路线
  • 中间态PlasticineCGRA(编译时重构连线)

NoC 视角:脉动能借鉴什么

脉动「邻居硬连线」= 专用 NoC:固定拓扑、确定性路由、流量编译期编排 → 无运行时拥塞。

可借鉴不可照搬
确定性路由(DOR)不规则流量下的零拥塞假设
编译期 placement 减冲突单向数据流 → 无死锁
Software-Defined / 预编排路由单时钟域同步

Deterministic Routing and DORMesh and Torus Topology。晶圆级量化综合见 WSE Quantitative Architecture Analysis(Day 26)。

相关页面

Citations

[1] arch-study-30d-day-25.md — H&P Ch.7.1–7.5 DSA(Day 25)