Back to blog

FlexInfer: Flexible LLM Inference with CPU Computations

利用CPU计算实现灵活的LLM推理

FlexInfer: Flexible LLM Inference with CPU Computations

一、论文概述

项目内容
标题FlexInfer: Flexible LLM Inference with CPU Computations
作者Seonjin Na, Geonhwa Jeong, Byung Hoon Ahn, Aaron Jezghani, Jeffrey Young, Christopher J. Hughes, Tushar Krishna, Hyesoon Kim
机构Georgia Tech, Intel
论文tmpfiles.org PDF
领域cs.LG, LLM推理优化, CPU-GPU混合执行

二、核心思想

问题定义

LLM推理面临严峻的内存挑战,现有卸载方法存在严重性能瓶颈:

时间分解

卸载方法的PCIe瓶颈:

GPU模型PCIe传输占比
A100OPT-66B91.6% - 97.6%
A100LLaMA2-70B89.2% - 97.3%
H100OPT-66B87% - 96.2%
H100LLaMA2-70B86.3% - 95.8%

关键发现:即使使用H100 + PCIe 5.0,PCIe传输仍然主导执行时间。

CPU计算的机会

CPU vs GPU性能对比:

场景CPU优势GPU优势
Decode阶段TPOT降低29.5%-70.8%-
Prefill阶段(短输入)SPR CPU在batch=1时快16.5%-68.2%-
Prefill阶段(长输入/大batch)-GPU显著更快

核心洞察:

  • Prefill阶段:计算密集,GPU更优(尽管有PCIe开销)
  • Decode阶段:内存密集,CPU更优(无PCIe传输)

解决方案概述

FlexInfer提出阶段感知的动态执行策略选择:

组件功能
Execution Planner分析硬件和运行时参数,选择最优策略
Inference Executor根据选定策略执行推理

三、技术架构

整体框架

FlexInfer概览

三种执行策略

执行策略时间线

策略说明适用场景
CPU-only所有计算在CPU上执行内存密集、长输出
GPU with Offloading (FlexGen)数据从CPU传输到GPU计算计算密集、短输入
CPU-GPU Static Partitioning (SplitGen)前N-M层CPU,后M层GPU混合场景

性能估算器

TTFT估算(Prefill阶段):

CPU-only:

TTFT=(CPrefillTHCPU×EffCPU_Comp+DPrefillBWCPU×EffCPU_Mem)×N\text{TTFT} = \left(\frac{C_{\text{Prefill}}}{TH_{\text{CPU}} \times Eff_{\text{CPU\_Comp}}} + \frac{D_{\text{Prefill}}}{BW_{\text{CPU}} \times Eff_{\text{CPU\_Mem}}}\right) \times N

GPU Offloading:

TTFT=max⁡(CPrefillTHGPU×EffGPU_Comp+DPrefillBWGPU×EffGPU_Mem,DCPU→GPUBWICN×EffICN)×N\text{TTFT} = \max\left(\frac{C_{\text{Prefill}}}{TH_{\text{GPU}} \times Eff_{\text{GPU\_Comp}}} + \frac{D_{\text{Prefill}}}{BW_{\text{GPU}} \times Eff_{\text{GPU\_Mem}}}, \frac{D_{\text{CPU→GPU}}}{BW_{\text{ICN}} \times Eff_{\text{ICN}}}\right) \times N

SplitGen:

TTFT=max⁡(CPU部分)×(N−M)+DOutputBWICN×EffICN+GPU部分×M\text{TTFT} = \max(\text{CPU部分}) \times (N-M) + \frac{D_{\text{Output}}}{BW_{\text{ICN}} \times Eff_{\text{ICN}}} + \text{GPU部分} \times M

TPOT估算(Decode阶段):类似公式,考虑KV Cache访问。

策略选择逻辑

FlexInfer为Prefill和Decode阶段独立选择最优策略:

场景Prefill策略Decode策略
短输入、小batchCPU或SplitGenCPU-only
长输入、大batchGPU OffloadingCPU-only或SplitGen
内存受限SplitGenCPU-only

四、核心创新

创新点说明实验依据
阶段感知策略选择Prefill和Decode独立选择最优策略延迟降低75%-76%
性能估算器分析模型预测TTFT/TPOT准确选择最优策略
CPU-GPU混合执行充分利用CPU计算资源Decode阶段CPU显著更优
动态适应根据运行时参数调整策略适应不同batch size和序列长度

五、实验结果

实验设置

配置Server 1Server 2
CPU2× Xeon 8352Y (ICL)2× Xeon 6454S (SPR)
CPU吞吐量9.0 TFLOPS (BF16)144.2 TFLOPS (BF16)
CPU内存256 GB512 GB
GPUNVIDIA A100 40GBNVIDIA H100 80GB
GPU吞吐量312 TFLOPS (BF16)756 TFLOPS (BF16)
互连PCIe 4.0 (32 GB/s)PCIe 5.0 (64 GB/s)

模型:OPT-30B, OPT-66B, LLaMA2-70B, LLaMA3-70B

基线:CPU-only, FlexGen, FlexGen_Opt, SplitGen

端到端延迟

关键结果:

对比Server 1加速Server 2加速
FlexInfer vs FlexGen75%76%
FlexGen_Opt vs FlexGen23%50%
SplitGen vs FlexGen37%61.7%

FlexInfer优势:

  • 动态选择最优策略
  • Prefill用GPU Offloading,Decode用CPU/SplitGen
  • 最小化PCIe传输

TTFT和TPOT

OPT-66B结果:

指标Server 1Server 2
TPOT降低77.7%79.6%
TTFT降低匹配FlexGen6.6%

关键发现:

  • SplitGen在大batch时TTFT增加7.7×(Server 1)和2.6×(Server 2)
  • FlexGen_Opt在Server 1上TPOT仅降低7.7%,Server 2上降低49.1%
  • FlexInfer始终选择最优策略

PCIe流量分析

策略PCIe流量说明
CPU-only无所有数据在CPU内存
SplitGen最小仅传输CPU→GPU输出
FlexGen最高传输权重和KV Cache
FlexGen_Opt中等部分数据在GPU内存
FlexInfer动态优化根据策略选择

不同输入长度

输入长度Server 1加速Server 2加速
128-102472.9%70.2%

FlexInfer在所有输入长度下一致优于FlexGen。

不同输出长度

输出长度Server 1加速Server 2加速
128-102473.3%70.5%

随着输出长度增加,CPU-only和FlexInfer优势更明显(Decode阶段主导)。

六、相关工作

方法类别代表方法特点与FlexInfer的区别
卸载方法FlexGen, DeepSpeed-ZeROCPU内存存储,GPU计算固定策略,PCIe瓶颈
CPU-GPU混合HeteGen, PowerInfer张量并行或稀疏性固定策略,不适应运行时
阶段分离TetriInfer, Splitwise, DistServePrefill/Decode分离GPU未利用CPU计算
CPU优化IPEX, NeoCPUCPU专用内核仅CPU执行

七、总结

核心贡献

  1. 阶段感知策略选择:首次为Prefill和Decode独立选择最优执行策略
  2. 性能估算器:准确预测不同策略的TTFT/TPOT
  3. CPU-GPU混合执行:充分利用CPU计算资源,特别是Decode阶段
  4. 显著性能提升:端到端延迟降低75%-76%

技术影响

  • 延迟降低:75%-76% vs FlexGen
  • PCIe优化:最小化数据传输
  • 资源利用:充分利用CPU和GPU
  • 适应性:动态适应不同硬件和运行时参数

局限性

  1. 模型支持:目前仅支持LLaMA和OPT系列
  2. 策略数量:仅三种基线策略,可扩展
  3. 离线调优:效率因子需要离线profiling
  4. 单GPU:仅考虑单GPU + CPU场景

八、参考资源

  • 论文:tmpfiles.org PDF
  • 相关项目:FlexGen, HeteGen, PowerInfer, IPEX
  • 硬件支持:Intel AMX, NVIDIA A100/H100