Skip to content

演进简史

本页速览 从 2010 年代 CPU 推理与 OpenVINO,到 GPU/cuDNN 兴起,到 Transformer 与 LLM 推理革命,再到 vLLM/PagedAttention、FP8、投机解码。本文用一条时间线讲清推理加速十五年的起落逻辑与每次跃迁背后的技术原因。

演进简史

推理加速不是一夜之间爆发的。过去十五年它经历了四次范式跃迁——从 CPU 串行到 GPU 并行,从静态图优化到动态 batching,从稠密计算到访存感知,从单机服务到分布式 LLM 引擎——每次跃迁都不是单纯"换个工具",而是硬件能力、模型形态、workload 特征三者共振的结果。理解这条演进线,比背一串引擎版本号重要得多——它能让你看清今天的 LLM 推理工程处在历史的什么位置,以及下一波可能从哪里来。

一、三段式速览

text
2010s 之前        CPU 推理时代:串行计算、规则编码为主       → 推理即"运行模型权重"
2012–2017        GPU 推理时代:cuDNN + 算子库 + 图融合       → TensorRT/OpenVINO 兴起
2017–2022        Transformer 时代:BERT/GPT 改变 workload    → Triton/服务化成熟
2022–至今        LLM 推理革命:自回归 + KV cache + batching   → vLLM/SGLang/投机解码

每次跃迁的本质,都是"推理优化的瓶颈从一维换到另一维":算力 → 访存 → 调度 → 算术强度。今天 LLM 推理工程师的所有日常工作,都能在这条时间线上找到对应的"它解决了上一代的什么瓶颈"。

二、CPU 推理时代(2010 年代之前)

推理 = 在 CPU 上跑串行前向

2010 年代之前,"模型部署"几乎等价于"在 CPU 上跑一段前向计算"。那时的模型主要是 SVM、决策树、浅层 MLP、小 CNN(如 LeNet),算力需求小,CPU 串行前向就够用。OpenVINO(前身为 Intel 的 DLDT,2018 年正式更名)就是这一代的产物——它的核心定位是"在 Intel CPU/iGPU 上优化模型推理",通过算子融合、INT8 量化、图优化把 CPU 推理榨干。

这一代的推理工程关注两件事:

  1. 算子优化:手写 SIMD(AVX2/AVX512)让单个算子在 CPU 上跑快;
  2. 图优化:常量折叠、算子融合、死代码消除——把整张计算图重排成"CPU 友好"的形态。

OpenVINO、ONNX Runtime 的早期版本、TensorFlow Serving(2016)都属于这一代。详见OpenVINO 案例ONNX Runtime 案例

CPU 推理的局限

CPU 推理的天花板由两个事实决定:

  • 算力天花板低:一颗 32 核 Xeon 的峰值算力约 1 TFLOPS(FP32),而 2012 年 AlexNet 的训练就需要 500+ GFLOPS——CPU 根本喂不饱 CNN;
  • 并行度低:CPU 是为低延迟串行任务设计的,不适合矩阵并行的 GEMM。

当 CNN 在 2012 年引爆深度学习时,CPU 推理立刻撞上算力墙,推理工程被推向 GPU。

三、GPU 推理时代(2012–2017)

2012:AlexNet 引爆 GPU 训练,间接推动 GPU 推理

2012 年 AlexNet 在 ImageNet 上把 top-5 错误率从 26.2% 降到 15.3%,关键不在于模型本身(CNN 早在 1998 年 LeNet 就有了),而在于用两块 GTX 580 GPU 训练——这是"GPU 适合神经网络"的第一次实证。训练侧的 GPU 普及迅速带火推理侧:既然训练用 GPU,推理也用 GPU 顺理成章。

2014–2015:cuDNN 让 GPU 推理工程化

2014 年 NVIDIA 发布 cuDNN v2,把卷积、池化、激活等算子做成高度优化的 GPU 库——从此推理工程师不再需要写 CUDA,调 cuDNN API 就能拿到 80%+ 的 GPU 性能。VGG(2014)、GoogLeNet(2014)、ResNet(2015)相继出现,模型越深越宽,CPU 推理彻底退出主流。

cuDNN 的关键贡献是引入了 im2col + GEMM 的卷积实现——把卷积转成矩阵乘,从而利用 GPU 的 Tensor Core。这个思路今天看理所当然,但当年是革命性的,奠定了后续 TensorRT 的基础。

2015–2017:TensorRT 把推理工程变成产品

2015 年 NVIDIA 发布 TensorRT(v1),2016 年 v2 加入 INT8 量化。TensorRT 的核心定位是:把训练框架(TensorFlow/PyTorch/Caffe)导出的计算图,编译成 GPU 上高度优化的推理引擎。它的三大支柱:

  1. 图级融合:Conv+BN+ReLU、MatMul+Add+GELU 自动融合成一个 kernel;
  2. INT8 校准:用少量样本校准量化 scale,把 FP32 模型量化到 INT8,2-4x 加速;
  3. kernel auto-tuning:同一算子在不同 batch/形状下选最优 kernel。

TensorRT 让"推理加速"从"手写 CUDA"变成"调用引擎",推理工程师成为一个独立工种。详见TensorRT 案例

同期:ONNX 与 ONNX Runtime(2017–2019)

2017 年微软与 Facebook 联合发布 ONNX(Open Neural Network Exchange),目标是统一模型格式——训练侧 PyTorch/TensorFlow/PaddlePaddle 都能导出 ONNX,推理侧任意引擎都能加载。2019 年微软发布 ONNX Runtime,把 ONNX 模型在 CPU/GPU/多种加速器上跑起来。ONNX Runtime 与 TensorRT 的差异:前者跨硬件、后者仅 NVIDIA;前者更通用、后者更极致。详见ONNX Runtime 案例

四、Transformer 时代(2017–2022)

2017:Transformer 出现,改变推理 workload

2017 年 Vaswani 等人发表《Attention Is All You Need》,Transformer 横空出世。Transformer 对推理工程的深远影响要在 5 年后才完全显现,但它的几个特征已经埋下伏笔:

  • attention 是访存密集:Q×K^T×V 的中间矩阵远大于卷积的 feature map,访存成为新瓶颈;
  • 自回归生成:decoder 模型一次生成一个 token,与 CNN 的"一次前向出结果"完全不同——这后来成为 LLM 推理的核心痛点。

2018–2019:BERT/GPT 开启 NLP 大模型时代

2018 年 BERT(3.4 亿参数)横扫 11 项 NLP 基准,2019 年 GPT-2(15 亿参数)发布。这两个模型让推理工程第一次面对"百兆到千兆参数"的模型——单卡显存开始吃紧,量化、蒸馏、张量并行开始进入推理工程视野。

但这一时期的"大模型"还是相对小的——BERT-large 只有 340M 参数,FP16 也才 680MB,单卡 12GB 显存绰绰有余。真正的显存压力要到 2020 年 GPT-3(175B)才出现,但 GPT-3 当时是闭源的,社区还没意识到 LLM 推理的特殊性。

2019–2020:Triton Inference Server 与推理服务化

2018–2019 年,NVIDIA 推出 Triton Inference Server(原名 TensorRT Inference Server),把"推理服务"做成产品。Triton 的核心价值:

  • 多模型管理:一个服务进程同时托管多个模型,按 GPU 资源调度;
  • 多框架支持:TensorRT、PyTorch、ONNX Runtime、Python 后端共存;
  • 动态 batching:服务侧自动把到达的请求凑 batch,对短请求延迟、长请求吞吐做权衡。

Triton 让"模型服务化"从"FastAPI 包个模型"升级为"工业级推理服务",至今仍是 NVIDIA 推理栈的核心。详见Triton Server 案例

这一时期推理工程的关注点是:让模型作为在线服务稳定运行——多副本、灰度发布、A/B 测试、监控漂移。模型服务化作为独立领域成形,详见模型服务

五、LLM 推理革命(2022–至今)

2022:ChatGPT 引爆 LLM 推理需求

2022 年 11 月 OpenAI 发布 ChatGPT,两个月用户破亿。这不仅是产品事件,更是推理工程的分水岭——突然间,所有公司都要"部署一个对话式 LLM",而 HuggingFace Transformers 跑 Llama-2-70B 单请求吞吐只有约 20 tokens/s,完全无法支撑真实流量

LLM 推理与传统模型推理的根本差异(详见推理 vs 训练 vs 微调):

  1. 自回归:每生成一个 token 就要跑一次 forward,不能像 CNN 一次出结果;
  2. KV cache 巨大:70B 模型 4k 上下文单请求 KV cache 就要 ~8GB,显存碎片严重;
  3. 请求长度不一:用户的 prompt 从几十到几千 token 不等,static batching 浪费严重;
  4. 算术强度低:batch=1 decode 时算术强度 ~1 FLOP/byte,远低于 GPU roofline,GPU 利用率 <5%。

这四个特征叠加,使得"用 transformers 部署 LLM"在 2022 年成为业界最痛的事——vLLM 就是为解决它而生。

2023:vLLM 与 PagedAttention 革命

2023 年 6 月,UC Berkeley 发布 vLLM 与 PagedAttention 论文《Efficient Memory Management for LLM Serving with PagedAttention》。这是 LLM 推理工程的引爆点——核心思想借鉴操作系统的虚拟内存:

  • PagedAttention:把 KV cache 分成固定大小的"页"(block),按需分配,消除显存碎片,把显存利用率从 ~20% 拉到 ~90%;
  • Continuous batching:请求动态加入和退出 batch,长短请求共存,吞吐提升 10-20 倍。

实测 vLLM 在 Llama-2-70B 上相比 HuggingFace Transformers 提升约 14-24x 吞吐——这是 LLM 推理从"能跑"到"能上线"的关键一跃。详见vLLM 与 PagedAttention

vLLM 之后,开源社区迅速跟进:HuggingFace 推出 TGI(Text Generation Inference),LMSYS 推出 SGLang,TensorRT-LLM 也加入 continuous batching。continuous batching + PagedAttention 成为 LLM 推理引擎的事实标准

2023:TensorRT-LLM 发布与 INT4 量化成熟

2023 年下半年 NVIDIA 正式发布 TensorRT-LLM——把 TensorRT 的图融合能力扩展到 LLM,支持张量并行、流水线并行、INT4/INT8/FP8 量化、in-flight batching(与 continuous batching 类似)。TensorRT-LLM 在 H100 上比 vLLM 的吞吐通常高 30-50%(NVIDIA 优化更激进),但易用性差、社区小。详见TensorRT-LLM 案例

同期,GPTQ(ICLR 2023)与 AWQ(MLSys 2024)让 INT4 权重量化在 LLM 上工程化:

  • GPTQ:基于二阶信息的逐层权重量化,把 70B 模型从 140GB 压到 35GB,单卡 A100 80GB 就能装下;
  • AWQ:激活感知的权重量化,保留对激活异常值敏感的权重通道,掉点比朴素 INT4 少很多。

这两个方法让"INT4 量化部署"成为 LLM 推理的标配。详见模型量化基础权重 only 与混合精度

2024:SGLang、FlashInfer、EAGLE、FP8 H100

2024 年是 LLM 推理工程从"能用"走向"极致"的一年:

  • SGLang:UC Berkeley LMSYS 推出,引入 RadixAttention(前缀共享 KV cache)与结构化生成加速(compressed FSM),在多轮对话与 function calling 场景比 vLLM 快 2-5x;
  • FlashInfer:同团队推出的算子库,把 attention 的 prefill/decode 统一为一个高效内核,被 vLLM/SGLang/TensorRT-LLM 大量采用;
  • EAGLE(ICML 2024):投机解码工程化,用小型草稿头猜 token、大模型并行验证,2-3x 加速且不改变输出分布
  • FP8 普及:H100 的 Transformer Engine 让 FP8 推理落地,相比 INT8 掉点更小,相比 FP16 算力/访存翻倍,成为 H100 上 LLM 推理的首选精度。

这一年算子层优化(FlashInfer)和系统层优化(SGLang 的 RadixAttention、EAGLE 的投机解码)成为主线,单纯图融合的边际收益开始递减。详见算子融合投机解码案例

2025:EAGLE-3、DeepSeek MTP、FP4 Blackwell

2025 年的几条主线:

  • EAGLE-3 / SpecForge:投机解码迭代到第三代,配合树状草稿(一次猜多个分支)与动态深度,在 Llama-3-70B 上实测 2-6x 加速,逐渐成为大模型推理的默认配置;
  • DeepSeek-V3 MTP(Multi-Token Prediction):DeepSeek-V3 在训练时就引入"一次预测多个 token"的辅助头,推理时天然支持投机解码,不需要外部草稿模型,开启了"训练侧为推理优化"的新范式;
  • FP4 / Blackwell:NVIDIA Blackwell(B200)支持 FP4 精度,相比 FP8 再翻倍算力与显存收益,700 亿参数模型可在单 B200 上以 FP4 部署——但 FP4 量化掉点问题比 FP8 更严重,校准技术仍在演进;
  • 异构推理:CPU(Intel AMX、Apple Neural Engine)+ GPU + NPU(华为昇腾)协同推理成为端侧与国产化场景的重点,详见移动端部署硬件入门

六、两条贯穿始终的主线

回顾十五年,所有跃迁都能归到两条主线:

主线一:瓶颈从算力换到访存,再换到调度。 2010 年代 CPU 推理瓶颈是算力(串行);2012–2017 GPU 推理瓶颈是图融合与算子;2017–2022 Transformer 推理瓶颈是 attention 访存;2022 年后 LLM 推理瓶颈是 batching 调度与 KV cache。每一代工程师都在解决上一代留下的瓶颈,然后撞上新的瓶颈

主线二:优化层次自下而上渗透。 每次跃迁都从模型层(量化/蒸馏)开始,往算子层(FlashAttention/FlashInfer)、图层(TensorRT 融合)、系统层(vLLM batching)扩散。真正的飞跃不是某一层,而是四层叠加——今天 vLLM + AWQ + FlashAttention-3 + EAGLE-3 的组合,是十五年工程智慧的层叠产物。

历史给今天的三个提醒

  1. 引擎会过期,原理不会:2018 年的 TensorRT 教程今天看具体 API 全过期了,但"算子融合 + INT8 校准 + 图重排"的原理依然成立。学原理,别只学 API。
  2. 基准数字会过期:任何"vLLM 比 X 快 N 倍"的数字都是某个具体硬件、某个具体模型、某个具体 workload 下的快照,直接引用前先看数据日期。本站案例章的页面会标注 dataAsOf
  3. 下一波跃迁可能在算法侧:DeepSeek-V3 的 MTP 表明,"训练时为推理优化"可能成为下一波——推理工程师不能只懂引擎,还得懂模型结构的推理友好性。

延伸阅读

参考资料