⚠️ Alpha内测版本警告:此为早期内部构建版本,尚不完整且可能存在错误,欢迎大家提Issue反馈问题或建议。
Skip to content

推理加速与硬件适配

在线 Notebook

对应的交互式版本可在 Google Colab 打开,统一使用方式见 第0章说明

第 8 章主线关注模型压缩、推理优化、成本控制和生产系统。更深一层看,真正落地时还要解决一个现实问题:模型怎么在具体硬件和运行时里跑得快、跑得稳、跑得下去。

这一节不讲硬件体系结构的完整课程,只保留和 LLM 工程直接相关的三个主题:

  • 指令集与算子优化
  • GPU / NPU 的并行计算与调度
  • 模型转换、导出和运行时适配

为什么需要这层适配

同一个模型,在不同硬件和运行时上的表现可能差异很大。

  • 在 GPU 上,瓶颈常常来自内存带宽、kernel 调度和批处理效率。
  • 在 NPU 上,瓶颈常常来自算子支持范围、图编译和量化格式兼容性。
  • 在 CPU 上,瓶颈常常来自向量化能力、线程调度和缓存效率。

因此,工程问题不是“模型理论上能不能跑”,而是:

这套模型、这组算子、这份精度格式,能不能在目标硬件上稳定高效地执行?


指令集与算子优化

这里的“指令集优化”不只是 CPU ISA 层面的概念,也包括运行时如何把高层算子变成更高效的底层实现。

常见目标:

  • 减少内存访问次数
  • 合并多个小算子,减少 kernel launch 开销
  • 让矩阵乘法、归一化、激活函数和 attention 的实现更贴近硬件特性
  • 让低精度推理真正兑现速度收益,而不是只省参数存储

工程上常见的手段:

手段作用代价
算子融合把多个小步骤合成一个 kernel实现复杂,调试困难
张量布局优化让数据布局更适合底层访问需要和 runtime 一起设计
低精度 kernel用 INT8 / INT4 等格式减少带宽压力依赖硬件和校准
编译后端优化把计算图编译成更高效的执行计划图结构变化时需要重新适配

这里的重点不是“某种指令集一定更强”,而是:底层实现是否和模型结构、精度格式、内存布局匹配。


GPU / NPU 并行计算

LLM 推理通常不是单一的“一个大矩阵乘法”,而是一串和并行策略强相关的计算。

GPU

GPU 更擅长大规模并行和高吞吐算子:

  • 矩阵乘法
  • attention 相关的批量计算
  • 多请求连续批处理
  • 高并发场景下的吞吐优化

NPU

NPU 往往更强调固定图、低精度和高能效:

  • 对固定形状和固定算子链更友好
  • 更依赖编译器和图优化
  • 对量化格式、算子支持和模型导出要求更高

并行策略

策略关注点适用场景
数据并行多个请求并发执行多租户服务、高吞吐
张量并行单层参数切分到多卡大模型推理、显存不足
流水并行不同层分布在不同设备超大模型、跨设备部署
批处理并行合并多个请求一起算在线服务降本增效

这些策略不是互相替代,而是经常组合使用。真正的难点不在“能不能并行”,而在“并行后是否还能保持可控的延迟、显存和调度复杂度”。


模型转换与导出

模型转换的目标,是把训练时的框架表示,变成能被目标 runtime 和目标硬件接受的格式。

常见链路可以抽象成:

text
训练框架
   ↓ 导出
中间表示 / 交换格式
   ↓ 优化、量化、编译
目标运行时 / 硬件引擎

模型转换时最常见的风险:

  • 算子不支持
  • 动态 shape 不兼容
  • 精度损失超出预期
  • 图优化改变了数值行为
  • 同一模型在不同 runtime 上结果不一致

所以,模型转换不是“导出一下就完了”,而是要配合:

  • 算子覆盖检查
  • 数值一致性验证
  • 小样本推理对齐
  • 量化校准
  • 性能回归测试

工程检查清单

做硬件适配时,可以先问这几个问题:

  1. 目标硬件支持哪些精度格式和算子?
  2. 主要瓶颈是算力、带宽、显存还是调度?
  3. 模型是否需要改成固定图或静态 shape?
  4. 量化后的精度是否还能满足业务评估集?
  5. 并行策略会不会让延迟和故障恢复变复杂?
  6. 模型转换后是否存在结果不一致或算子回退?

如果这些问题没有回答清楚,单纯追求“更快”往往会换来更差的稳定性。


与第 8 章主线的关系

  • 8.1 负责把模型变小。
  • 8.2 负责把单次推理做快。
  • 本节负责把模型真正适配到目标硬件和 runtime。
  • 8.3 到 8.5 负责把系统从“能跑”推进到“能长期稳定上线”。

所以,这一节更像是第 8 章的“硬件和运行时接口层”,而不是主线中的单独一环。


本节小结

  • 指令集优化的核心,是减少内存访问和算子开销,让底层实现匹配模型结构。
  • GPU 更适合高吞吐并行,NPU 更依赖固定图、低精度和编译适配。
  • 模型转换的关键不是导出格式本身,而是算子、shape、精度和数值一致性。
  • 硬件适配应该和量化、推理优化、评估回归一起看,而不是单独追求理论峰值。

返回: 第 8 章首页

本教程采用 CC BY-NC-SA 4.0 许可协议