4. 硬件选型与异构计算:CPU vs GPU vs TPU vs FPGA

在AML推理链路中,硬件选型直接决定了延迟天花板。不同计算架构在并行度、内存带宽、数据流控制和编译优化上存在本质差异。本章从微架构特征出发,对比CPU、GPU、TPU、FPGA四类处理器在低延迟推理场景下的适用性,并给出可落地的选型策略。

核心观点:低延迟推理没有“万能芯片”。延迟敏感度、模型结构、批处理大小、精度需求共同决定最优硬件。异构计算的核心是将计算模式与硬件微架构对齐。

4.1 四类处理器微架构对比

维度 CPU GPU TPU FPGA
计算模型 控制流 + 标量 SIMT 向量 Systolic Array 数据流 + 流水线
并行粒度 指令级 / 线程级 线程束级 (Warp) 矩阵级 (MXU) 流水线级 / 位宽级
内存层次 多级缓存 + 大容量DRAM HBM + L2 + Shared Mem HBM + 统一缓冲区 BRAM + URAM + DDR
延迟特征 ns级响应,确定性高 μs级启动,吞吐优先 μs级,批处理优化 ns级,确定性极高
典型延迟 (单次推理) 1-10 ms 5-50 ms 2-20 ms 0.1-5 ms
编程难度 低 (标准C++/Python) 中 (CUDA/OpenCL) 高 (XLA/TF专用) 高 (HLS/Verilog)
能效比 (TOPS/W) 低 中 高 极高
关键洞察:CPU的延迟优势在于单线程响应速度和缓存命中率;FPGA的延迟优势在于无指令取指开销的纯数据流架构。GPU和TPU的延迟主要来自线程调度和批处理累积。

4.2 低延迟场景硬件选型策略

选型策略需要根据延迟预算和模型特征进行分层决策。以下给出三个典型场景的推荐方案:

4.2.1 场景一:在线服务 < 10ms P99

  • 推荐硬件:CPU (Intel Xeon with AMX / AMD EPYC with AVX-512) + FPGA 加速卡
  • 理由:CPU处理前处理、后处理及控制逻辑;FPGA卸载Transformer中的矩阵乘和注意力计算。
  • 典型配置:Intel Xeon 8480+ (AMX BF16) + Xilinx Alveo U280
  • 延迟实测:BERT-Large单次推理可达 3-5ms (FPGA) vs 8-12ms (纯CPU)

4.2.2 场景二:批量推理 < 50ms P99

  • 推荐硬件:GPU (NVIDIA L40S / H100) 或 TPU v5e
  • 理由:GPU/TPU在batch size ≥ 4时吞吐优势明显,适合广告推荐、内容审核等场景。
  • 典型配置:NVIDIA H100 (FP8 Tensor Core) + TensorRT-LLM
  • 延迟实测:LLaMA-7B batch=8 可达 25-35ms

4.2.3 场景三:极致低延迟 < 1ms P99

  • 推荐硬件:FPGA (Xilinx Versal / Intel Agilex) 或 专用ASIC
  • 理由:FPGA可实现端到端流水线,无中断、无调度抖动;ASIC如Groq LPU进一步消除内存墙。
  • 典型配置:Xilinx Versal AI Core + 定制HLS内核
  • 延迟实测:ResNet-50 单次推理可达 0.3-0.8ms
避坑提示:不要盲目追求GPU的TFLOPS。当batch size = 1时,GPU的利用率通常低于30%,而延迟却比CPU高2-5倍。对于在线实时推理,优先考虑CPU+FPGA异构方案。

4.3 异构计算架构设计

异构计算不是简单堆叠硬件,而是设计数据流管道,让每个计算阶段运行在最合适的处理器上。以下给出一个典型的低延迟推理异构架构:

低延迟推理异构计算架构 输入请求 CPU 前处理 Tokenize / 特征提取 / 数据编排 异构计算核心 (延迟敏感路径) FPGA 矩阵乘 / 注意力 GPU 大Batch / 稀疏计算 CPU 控制核 调度 / 分支 / 后处理 输出响应 说明:FPGA处理固定计算模式(矩阵乘/注意力),GPU处理动态Batch,CPU负责控制流和不可预测分支。 三者通过PCIe/NVLink/CXL互联,数据流由CPU统一编排。

4.4 硬件选型决策流程

以下决策树帮助团队快速锁定硬件方案:

  1. 延迟预算 < 1ms? → FPGA 或 ASIC;跳过GPU/TPU。
  2. 延迟预算 1-10ms? → CPU + FPGA 异构;CPU处理动态部分,FPGA卸载固定计算。
  3. 延迟预算 10-50ms? → GPU (batch=1~4) 或 TPU;使用TensorRT/XLA优化。
  4. 延迟预算 > 50ms? → GPU (大batch) 或 TPU;优先吞吐。
  5. 模型是否包含动态shape/控制流? → 必须保留CPU核;FPGA/TPU难以高效处理。
  6. 是否需要确定性延迟? → FPGA > CPU > GPU > TPU;GPU的线程调度抖动不可控。
实战建议:在项目初期使用CPU+GPU方案快速验证,然后根据延迟瓶颈将热点算子迁移到FPGA。不要一开始就追求全FPGA方案,开发周期和调试成本会显著增加。

4.5 关键指标与选型对照表

指标 CPU GPU TPU FPGA
P99延迟 (batch=1) 2-8 ms 8-30 ms 5-20 ms 0.2-3 ms
P99延迟 (batch=8) 15-50 ms 10-40 ms 8-25 ms 2-10 ms
延迟抖动 (σ) < 5% 10-30% 5-15% < 2%
能效 (W/推理) 高 中 低 极低
开发周期 1-2周 2-4周 4-8周 8-16周
适用模型 小模型 / 树模型 大模型 / CNN / Transformer 超大模型 / 矩阵密集 固定结构 / 低延迟
选型口诀:CPU保底,GPU提吞吐,TPU压成本,FPGA砍延迟。异构计算的核心是“让每个计算找到最合适的硅片”。