本节摘要:AI 训练几乎被 GPU 垄断,但推理场景里 FPGA 有自己的生态位——低精度计算、定制数据流、确定性延迟。本节讲清训练与推理的硬件需求差异,拆解 FPGA 的卷积数据流架构与 INT8 量化的收益,并介绍 SmartNIC 这类网络卸载场景为什么偏爱 FPGA。
行业预测里,AI 推理的市场规模长期超过训练——道理很朴素:模型训练一次是集中投入,推理是持续不断的生产(每个请求都推理一次)。训练可以等几小时,推理必须毫秒级响应。这个"毫秒级持续生产"的需求,恰恰是 FPGA 的主场之一。
但先泼盆冷水:FPGA 做训练几乎总是输给 GPU——训练要海量浮点计算和巨大显存带宽,这两项都是 GPU 的强项,FPGA 的浮点性能天生吃亏。推理则不同:推理可以用低精度(INT8 甚至更低)、算子形状相对固定、数据流可以定制。这几个特征正好绕过 FPGA 的短板、放大它的长处。所以行业共识是:训练用 GPU,推理看场景——边缘、定制化、低功耗、延迟敏感的推理,FPGA 常是更优解。
卷积是神经网络的主力算子。软件和 GPU 的实现思路是"把卷积当成矩阵乘法,用大量通用核心计算"。FPGA 的思路不同:把卷积的形状直接刻成数据流——输入特征图流过一个"脉动阵列",每个处理单元完成一步乘加,数据像水流过管道一样一层层流过去,最后得到输出。
// 卷积单元的数据流骨架(概念代码,非完整实现) module conv_pe ( input [7:0] in_data, // 输入特征值(INT8) input [7:0] weight, // 权重 input valid, // 数据有效 output reg [15:0] acc // 累加结果 ); // 每个处理单元:乘加 + 流水打拍 always @(posedge clk) begin if (valid) acc <= acc + in_data * weight; // INT8 乘加,DSP 切片执行 end endmodule
数据流架构的收益:权重是"硬布线"进电路的(或从片上存储流式供给),省去了通用计算里的取指、调度、缓存管理;每周期每个处理单元做一次乘加,吞吐由处理单元数量直接决定。代价是灵活性差:架构是针对特定算子形状刻的,换一个不同的网络结构,效率就下降——所以 FPGA 推理的黄金场景是"模型相对固定、批量推理、长期运行"。
模型参数是浮点训练出来的,推理时能不能用整数?量化就是回答这个问题的:把浮点权重和激活值映射到低精度整数(INT8),精度损失通常可以接受(经过校准和微调)。量化的收益是实打实的:
| 指标 | FP32 | INT8 |
|---|---|---|
| 每个乘加的存储 | 4 字节 | 1 字节 |
| DSP 切片的乘法效率 | 1 次 | 多次 |
| 吞吐相对值 | 基准 | 约 2~4 倍 |
| 功耗相对值 | 基准 | 显著下降 |
FPGA 的 DSP 切片原生支持低精度乘法的高效打包——INT8 乘法往往能用一块 DSP 切片完成多个并行运算。所以"量化 + FPGA"的组合拳,在能效比上常常压过同代 GPU。这也是为什么边缘推理设备(摄像头、智能网关、自动驾驶域控)大量采用 FPGA 的原因:瓦特级功耗里挤出可用的推理算力。
AI 之外,数据中心还有一个 FPGA 大户——智能网卡(SmartNIC)。云服务器的网卡要干的事越来越多:虚拟网络封装、防火墙、加密、负载均衡、RDMA。这些活如果全让 CPU 干,核会被吃光;用固定芯片又跟不上协议演进。FPGA 在这里的价值:把协议处理和加速逻辑卸载到硬件,同时保持可重配——协议更新了,重编一版比特流就行。
一个典型分工:CPU 管应用逻辑,FPGA 管"网口进来的一切预处理",两者通过高速接口配合。这套"卸载"思想与第 6 章的软硬协同如出一辙——只是把"PL 加速器"换成了"智能网卡"。
这张图值得记下来:推理市场的三分格局——通用弹性的走 GPU,定制低功耗的走 FPGA,超大规模固化的走 ASIC。三个象限之间没有谁取代谁,只有"需求形态"对号入座。
想上手 FPGA AI 加速,别从零写网络,路径是:先用现成推理加速框架(如开源的部署工具链)跑通一个模型,观察资源占用与吞吐;再针对瓶颈算子(往往是卷积层)做深度优化;最后再考虑端到端定制。这条路的每一步都建立在第 2~4 章的能力上——流水线、位宽、时序,一样不能少。
💡 关键直觉:FPGA 做 AI 的定位是"定制化推理加速器",不是"通用 AI 芯片"。把这句话记牢,选型和沟通都不会跑偏。
下一步进入 8.3:推理要毫秒级,高频交易要微秒级——把低延迟逼到极限的极端战场。