3. 计算硬件基础:CPU、GPU、TPU、NPU等加速器的特点与适用场景
3.1 核心原理:从通用计算到专用计算的谱系
AI算力集群的底层差异,首先来自计算芯片的架构设计取向。理解这些芯片,需要抓住一条主线:从“通用”走向“专用”的权衡。通用芯片追求“什么都能算”,专用芯片追求“特定算法算得极快”。这条谱系上依次排列着CPU、GPU、NPU、TPU,以及FPGA、ASIC等更偏定制的选项。
CPU(中央处理器)的核心设计目标是低延迟控制流。它包含强大的分支预测器、乱序执行引擎和大容量缓存,擅长处理复杂的逻辑判断、操作系统调度和串行任务。其算力密度(每平方毫米芯片面积的计算能力)并不高,但“什么都能跑”的灵活性无可替代。
GPU(图形处理器)最初为图形渲染设计,本质是大规模并行吞吐机。它由数千个简单计算核心组成,遵循SIMT(单指令多线程)模式,非常适合矩阵乘法、卷积等数据并行任务——这正是深度学习训练和推理的主要计算模式。GPU的显存带宽极高,能快速搬运海量权重和中间激活值。
NPU(神经网络处理单元)是面向神经网络推理/训练中特定算子(如卷积、矩阵乘、激活函数)深度优化的处理器。它通常采用脉动阵列或类脉动架构,将乘加运算流水化执行,减少指令开销。NPU的能效比(每瓦特算力)显著优于GPU,但灵活性受限。
TPU(张量处理单元)是Google设计的专用ASIC(专用集成电路),第一代TPU仅用于推理,后续版本支持训练。其核心是脉动阵列(Systolic Array),让数据像波浪一样在计算单元间流动,极大减少寄存器读写和指令发射能耗。TPU与Google的TensorFlow/PyTorch插件深度绑定,在Google Cloud上提供云服务。
3.2 方法流程:AI工作负载如何映射到不同芯片
在实际AI集群中,选择哪种芯片不是拍脑袋决定,而是遵循一套可复用的评估流程。以下四个步骤是业界常用的决策框架:
- 分析计算特征:统计模型中各类算子的占比。如果卷积和矩阵乘法占90%以上,则适合GPU/NPU/TPU;如果包含大量动态shape、稀疏控制流(如循环神经网络中的逐时间步处理),则CPU或GPU的灵活性更占优。
- 确定精度需求:训练通常需要FP16/BF16以保证梯度精度;推理则可用INT8/INT4量化。GPU对FP16/BF16支持成熟,NPU/TPU对低精度推理优化更激进。
- 评估时延与吞吐:在线推荐系统要求毫秒级响应,适合用NPU或小批量GPU;离线批量训练则追求吞吐量,大规模GPU集群或TPU Pod是主流。
- 核算TCO(总拥有成本):包括硬件采购、功耗、散热、机房空间、运维人力。NPU/TPU的能效比优势在大规模部署时能显著降低电费。
3.3 案例/场景:三种典型集群的芯片选型
场景一:大语言模型(LLM)训练集群
训练GPT-3级别(1750亿参数)的模型,需要数千张GPU或TPU。NVIDIA H100/A100凭借NVLink全互联和成熟的CUDA生态成为事实标准。Google则使用TPU v4/v5 Pod,通过高速ICI互联组成超大集群。此场景的核心诉求是高带宽、低延迟的卡间通信,芯片本身的FLOPS只是部分因素。
场景二:边缘AI推理(自动驾驶/安防)
车载域控制器或摄像头边缘盒子对功耗和成本极其敏感。NPU(如地平线征程系列、Mobileye EyeQ)或带NPU的SoC成为首选。它们将卷积、池化、激活函数硬化为专用流水线,以5~15W的功耗实现数十TOPS的INT8算力。相比之下,GPU在此类场景中功耗过高,CPU算力又不足。
场景三:混合云AI平台
大型云厂商通常同时提供CPU、GPU、NPU实例。例如阿里云同时提供GPU(A100)和NPU(含光800)实例;华为云提供昇腾NPU集群。用户按需选择:训练任务用GPU,大规模推理用NPU,CPU则用于数据预处理、模型服务编排等“胶水”逻辑。
3.4 误区/复盘:选型中的常见陷阱
峰值FLOPS只是理论上限。实际训练速度受制于数据加载、通信同步、算子调度效率。一张H100如果喂不饱数据,可能不如两张A100跑得快。复盘时务必用有效算力利用率(MFU)衡量,而非只看规格表。
NPU对算子支持有严格边界。Transformer中的FlashAttention、MoE(混合专家)路由等动态算子,在NPU上可能需要重写为特定实现,甚至无法高效运行。迁移前必须做算子兼容性清单检查。
实际上,CPU负责数据预处理(图像解码、文本tokenize)、分布式训练框架的协调、模型服务中的请求路由。一个8卡GPU服务器通常需要2颗32核以上的CPU才能喂饱GPU。忽略CPU规划会导致GPU空转。
复盘清单:每次完成AI集群设计后,建议对照以下问题检查:
| 检查项 | 具体问题 |
|---|---|
| 工作负载匹配 | 模型算子是否与芯片指令集匹配?动态shape比例是否过高? |
| 精度支持 | 训练是否需要BF16?推理量化后精度损失是否可接受? |
| 互联瓶颈 | 卡间通信带宽是否满足梯度同步需求?是否需NVLink/ICI/HCCS? |
| 软件生态 | 框架版本是否支持该芯片?是否需要额外编译器(如XLA、Triton)? |
| 能效与散热 | 机房单机柜功率上限是多少?液冷还是风冷? |
总结而言,CPU、GPU、NPU、TPU并非替代关系,而是互补关系。一个成熟的AI算力集群,往往是“CPU负责指挥调度,GPU/NPU/TPU负责重计算”的混合体。理解每种芯片的架构基因和适用边界,才能在设计集群时做出理性决策,避免“拿着GPU的锤子,看什么都像钉子”的思维定式。