前面七篇把 LLM 的模型与系统层走完了,从这篇开始进入支撑一切的AI Infra(AI 基础设施)。第一站是硬件:为什么 CPU 跑不动大模型、GPU 凭什么成为主力、NPU(以昇腾达芬奇架构为例)又用什么样的设计哲学换取能效,以及端侧 NPU(RK3588 这类)的取舍。仍然是从晶体管分配讲到数据流,全部落到可计算的数量级上。

1. 三堵墙:一切硬件设计的出发点

三堵墙:算力与带宽的剪刀差
三堵墙:算力与带宽的剪刀差

计算墙:一个 7B 模型训练一次约需 10²¹ FLOPs 量级的计算(按 Chinchilla 法则 6ND 估算:6 × 7e9 × 2e12 ≈ 8.4e22,即数万卡·月)。一颗通用 CPU 的峰值算力是 TFLOPS 级,差了十几个数量级——必须用大规模并行。

内存墙:二十年来处理器算力指数增长,内存带宽却近乎线性(图左)。回顾推理篇的结论:decode 阶段算术强度 ≈ 1 FLOP/Byte,而现代加速器"跑满算力"需要 100~300 FLOP/Byte 的强度——搬运能力的缺口决定了大芯片的大部分面积要花在缓存与互联上。

功耗墙:机房供电与散热有硬上限。同样 1 焦耳能量,专用芯片能完成的 MAC 次数可以是通用芯片的数倍到数十倍——能效比(TFLOPS/W)是数据中心和端侧共同的第一性指标。

三堵墙共同指向一个答案:把晶体管从"通用控制逻辑"挪给"乘加阵列 + 数据搬运"。GPU、NPU、ASIC 的差异只是这条路线走得有多坚决。

2. CPU 为什么不行:晶体管花在了哪

一颗现代服务器 CPU 的晶体管预算大致分配:大半在缓存(L1/L2/L3 可占 30~50%)与控制(分支预测器、乱序执行窗口、重命名寄存器),真正做运算的 ALU 只占一小部分。这套设计为的是单线程延迟——任何一段串行代码都快。

它对付矩阵乘的姿势:一条 AVX-512 指令一次算 16 个 FP32 FMA(32 FLOP),核数 × 频率 × 向量宽度拼出峰值。问题有三:

  1. 算力密度低:数十核 × 每周期数百 FLOP,总量停在 TFLOPS 级;
  2. 带宽配不上:DDR 通道数百 GB/s,喂饱上述算力需要的 TB/s 级;
  3. 能效差:大量功耗消耗在"让指令流跑起来"而不是计算本身。

矩阵乘是高度规则、海量数据并行的负载——为串行延迟优化的 CPU 拿到它,就像用轿车拉砂石。

3. GPU:吞吐型并行的成熟答案

GPU 的 SM 结构
GPU 的 SM 结构

GPU 的思路是用 thousands of threads 淹盖延迟(SIMT 模型):一颗芯片上百个 SM(流多处理器),每个 SM 承载上千线程;某批线程等显存时,调度器零开销切到另一批——不需要大缓存,靠并行度把访存延迟藏掉。

为 AI 带来质变的是 Tensor Core:一条指令完成一个小矩阵块的乘累加(如 16×8×16 的 MMA),把"乘加阵列"固化成硬件单元。A100 级别的 BF16 峰值 312 TFLOPS,其中绝大多数由 Tensor Core 贡献——CUDA Core 只是配角。配合 HBM(2TB/s 级)与数十 MB L2,Transformer 的大 GEMM(通用矩阵乘)正好是它的甜点负载。

GPU 的代价:SIMT 的灵活性(任意 kernel、任意访存模式)需要完整的硬件线程调度、寄存器堆、指令缓存——这些晶体管不直接产出 FLOPS,能效比天然低于专用架构。NPU 的机会就在这里。

4. NPU 设计哲学:以昇腾达芬奇架构为例

国产 NPU 里生态最完整的是华为昇腾。它的核心计算IP叫达芬奇架构,设计哲学一句话:假定负载就是神经网络算子,把一切资源向矩阵乘与数据搬运倾斜。

达芬奇架构的 AI Core
达芬奇架构的 AI Core

4.1 三种计算单元:各干一件事

每个 AI Core 内有三类单元,一个 kernel 里三类单元同时流水:

  • 3D Cube(矩阵单元):架构的灵魂。一个周期完成一个 16×16×16 的乘累加块——输出平面上 256 个输出、每个输出 16 次 MAC,共 4096 次 MAC(8192 FLOP)/周期。这比向量单元乘同样规模的矩阵快一个数量级;
  • Vector(向量单元):128 lane 的 SIMD,处理激活函数、LayerNorm/RMSNorm、逐元素加减——矩阵乘之外的"非线性杂活";
  • Scalar(标量单元):循环控制、地址计算、分支。专门有个单元干这个,是为了让 Cube 和 Vector 不被控制流打断——专用化的意义就是互不等待。

不适合 Cube/Vector 的算子(embedding 查表、动态形状控制)交给旁边的 AI CPU(常规 CPU 核),不占 AI Core。

4.2 Cube 一个周期在算什么

3D Cube 的分块矩阵乘
3D Cube 的分块矩阵乘

大矩阵乘 C=A·B 被切分成 16×16 的小块:Cube 每周期取 A 的一个 16×16 面、B 的一个 16×16 面,累加进 C 的 16×16 面(L0C 累积缓冲)。软件(算子编译器)的工作就是把这个分块循环、L0A/L0B 的预取、L0C 的写出编排成无缝流水。这本质上是把脉动阵列(systolic array)的思想做成了固定功能单元——数据进阵列后在内部流动复用,控制开销接近零。

4.3 存储层次:手动管理的金字塔

NPU 的存储层次
NPU 的存储层次

与 GPU"缓存对程序员透明"不同,达芬奇的 L0A/L0B/L0C、L1/Unified Buffer 对算子开发者可见可控,配合多组 MTE 搬运引擎(DMA)做双缓冲:Cube 在算第 N 块时,MTE 已经在搬第 N+1 块。计算与搬运完全重叠——这是能效的另一个来源:没有缓存命中率的赌局,只有确定性的数据流编排。

一颗 910 级训练处理器:32 个 AI Core + AI CPU + 数十 MB L2 + 数十 GB HBM,FP16/BF16 数百 TFLOPS 量级;更新的 910B 级别把 BF16 算力推到 400 TFLOPS 量级、HBM 扩到 64GB——对标国际旗舰 GPU 的训练规格。

4.4 与 GPU 的本质区别

维度 GPU 达芬奇 NPU
并行模型 SIMT,线程调度硬件化 数据流编排,编译期静态调度
矩阵乘 Tensor Core 指令 Cube 固定单元 + 分块流水
片上存储 缓存层次,透明 L0/L1 显式管理
灵活性 任意 kernel 面向 NN 算子族
能效 基准 同工艺下约数倍
生态 CUDA 城墙 CANN 追赶中

一句话:GPU 是"并行的通用机",NPU 是"神经网络的专用机"。专用性换来能效与成本,代价是生态——下一篇讲 CANN 如何在软件上补这块短板。

5. 卡间互联:另一条胜负手

单颗芯片放不下大模型(训练篇:7B 需要 112GB 训练态),卡间带宽成为集群性能的一部分:

PCIe 4.0 x16     ≈ 32 GB/s    —— GPU 传统连接, TP 并行下严重不够
NVLink (A100)    ≈ 600 GB/s   —— 8 卡全互联, 机内
HCCS (昇腾)      ≈ 数百 GB/s  —— 机内卡间高速互联
跨机             RoCE/IB 200G  —— 参数面网络 (集群篇展开)

TP 并行每层要做两次卡间通信,PCIe 的 32GB/s 会把数百 TFLOPS 的算力饿死——机内高速互联(NVLink/HCCS)是训练卡与推理卡的本质区别之一,这也是为什么"8 卡机"是并行策略的最小完整单元。

6. 端侧 NPU:另一个极端的设计

写这篇的读者里应该不少玩过 RK3588——它就是端侧 NPU 的典型样本:

  • 3 个 NPU 核、合计 6 TOPS(INT8):注意单位是 TOPS 不是 TFLOPS——端侧靠 INT8 量化拿算力(INT8 吞吐是 FP16 的 2~4 倍),呼应量化篇的结论:端侧部署 = 量化 + 轻量化模型 + NPU;
  • 工具链 RKNN-Toolkit2:ONNX → RKNN 转换 + 量化(PTQ/QAT)+ 仿真 + 板端部署,思路与云端一致但更强调"转换即部署";
  • 设计取舍:无 HBM(共享 DDR,带宽是最大约束)、Cube 规模小、追求 TOPS/W 而非绝对算力。跑 7B 级 LLM 需要到 4bit 量化 + 内存带宽的极限优化——端侧 LLM 至今仍是"带宽问题"多过"算力问题"。

端侧/嵌入式背景的工程师切入 AI Infra,路径通常是:RKNN 部署小模型 → 量化与算子适配 → 云端训练/推理集群——这条线正好把量化篇和本系列连起来。

7. 选型:什么任务用什么芯片

处理器谱系对比
处理器谱系对比
  • 云训练/大规模推理:GPU 或训练级 NPU(910B 类),看算力、HBM 容量、卡间互联与生态支持;
  • 私有化中等规模推理:推理卡(310B 类:高能效、多卡密度)或国产 GPU,重点算 token 成本;
  • 端侧/嵌入式:RK3588 NPU、Jetson、专门的 LLM 端侧芯片——INT8/4bit 生态成熟度是第一考量;
  • 非 NN 的高吞吐定制负载(低延迟转发、特定信号处理):FPGA 仍有一席之地。

8. 小结

  • 三堵墙(计算/内存/功耗)决定了 AI 芯片把晶体管从控制逻辑挪向乘加阵列与数据搬运;
  • GPU 用 SIMT 线程淹没延迟 + Tensor Core 固化矩阵乘,生态(CUDA)是其最深护城河;
  • 达芬奇 NPU 用 Cube/Vector/Scalar 三单元分工 + 显式存储层次 + MTE 双缓冲,拿专用性换能效;
  • 机内互联(NVLink/HCCS)是训练卡的生死线,跨机参数面是集群篇的主题;
  • 端侧 NPU 是"带宽受限下的量化艺术",RKNN 工具链是嵌入式工程师的切入起点。

硬件给了算力,但让 32 个 AI Core 或 108 个 SM 干活的是软件栈——下一篇:以昇腾 CANN 为例拆解 NPU 编程栈,逐层对照 CUDA。