福利|AMD × LMCache:基于 AMD GPU 的 LMCache 推理加速

福利|AMD × LMCache:基于 AMD GPU 的 LMCache 推理加速

作者:Andy Luo, Haichen Zhang, AMD AIG, Yihua, nijaba and LMCache Lab

引言

随着上下文长度不断拉长、推理并发规模持续增大,LLM 推理变得越来越难“跑顺畅”。传统的推理引擎主要依赖基于前缀(prefix-based)的 KV cache 复用,这种方式在面对长文本、大量重复片段或不同请求之间存在重叠内容时,可优化空间非常有限。

LMCache 正是为解决这一问题而设计。它是对现有 LLM 推理引擎的一种扩展,在长上下文场景下,能够显著降低首 token 延迟(TTFT),并提升整体吞吐。与传统仅支持前缀复用的方式不同,LMCache 可以对任意位置出现的重复文本进行细粒度 KV cache 复用,而且不受具体服务实例的限制。

通过将可复用的KV cache 存储在 GPU 显存、CPU 内存、DRAM 和本地磁盘等多级介质中,LMCache 能避免大量重复计算,释放宝贵的 GPU 算力。

在与vLLM 集成后,LMCache 在 AMD GPU 上针对包括 Qwen3、Llama3 和 Qwen-VL 在内的多种社区模型,带来了约 3–10 倍的性能提升。

对于长文档问答、多轮问答等典型LLM 场景,将 LMCache 与 vLLM 结合使用,可以在明显提升性能的同时有效减少 GPU cycle 消耗。

长文档基准测试

为了验证效果,我们选取了长文档场景的基准测试,对比在AMD GPU 上启用与关闭 LMCache 的性能差异。测试中将文档数量设置为 100,单个文档长度设置为 10,000,用于评估性能表现。

下面的结果基于多个广泛使用的社区模型(包括Qwen3、Llama3、Qwen-VL)生成,用来展示在不同模型架构下的性能收益。

该基准主要评估了Llama3 (70B)、Qwen2.5 Vision Language 模型、Qwen3 系列模型(特别是 8B 和 30B 参数规模的版本)在长文档问答任务中的表现,并重点观察开启 LMCache 前后的影响。

测试在一台AMD GPU服务器上完成,整体方法如下:

  • 后端使用vLLM 框架提供模型服务
  • 客户端使用(long_doc_qa.py)基准脚本发起请求
  • 每个文档长度为10,000 tokens,生成长度为 300 tokens
  • 主要变量是文档数量:分别测试100、200、500 个文档

在服务端配置上,我们明确区分了两种场景:

一种是启用 LMCache,另一种是未启用。

启用LMCache 时,配置了关键环境变量,如PYTHONHASHSEED=0 和LMCACHE_MAX_LOCAL_CPU_SIZE,这些变量根据模型大小进行调优(例如:Qwen3-8B 使用 200,Qwen3-30B 使用 180 和 150 等配置)。在 vLLM 启动命令中,通过 --kv-transfer-config 参数指定使用 LMCacheConnectorV1。配套图表的测试结果显示,在启用 LMCache 时,性能有明显提升。

综合结论是:LMCache 能有效优化长上下文场景下的推理过程。通过缓存 transformer 中 attention 机制的 key–value 对,在处理长文本和相似文档时,LMCache 可以减少重复计算,从而降低延迟,特别是首 token 延迟(TTFT),提升整体吞吐。在 AMD GPU 硬件上,这让 Qwen3 等模型在处理大规模文本数据时更加高效、响应更快。针对不同模型尺寸调优 LMCACHE_MAX_LOCAL_CPU_SIZE 也说明,合理的 cache 配置对资源利用率和性能都非常关键。

如何复现长文档基准测试

服务端配置

启用LMCache:

PYTHONHASHSEED=0 \ LMCACHE_MAX_LOCAL_CPU_SIZE=200 \ vllm serve Qwen/Qwen3-8B \ --tensor-parallel-size 1 \ --kv-transfer-config \ '{"kv_connector": "LMCacheConnectorV1", "kv_role": "kv_both"}' \ --gpu-memory-utilization 0.9 \ --load-format dummy \ --trust-remote-code

关闭LMCache:

PYTHONHASHSEED=0 vllm serve Qwen/Qwen3-8B \ --tensor-parallel-size 1 \ --gpu-memory-utilization 0.9 \ --load-format dummy \ --trust-remote-code

客户端配置

示例:文档数量为100

python3 benchmarks/long_doc_qa/long_doc_qa.py \ --model Qwen/Qwen3-8B \ --num-documents 100 \ --document-length 10000 \ --output-len 300 \ --repeat-count 1 \ --repeat-mode tile \ --max-inflight-requests 4

多轮问答(Multi-round QA)基准测试

场景示意

多轮问答工作流可以理解为:多个用户同时与同一个LLM 引擎持续进行多轮对话,模型需要在保留上下文的前提下连续回答问题。

为了验证LMCache 在这一场景的效果,我们选取 Multi-round QA 基准,对比在 AMD GPU 上启用与关闭 LMCache 的性能差异。测试配置为:

  • 模拟用户数:20

  • 每个用户对话轮数:6

该基准模拟的负载是一个多用户并发、多轮对话的问答任务,每个用户与LLM 引擎持续交互,形成典型的“多轮 QA”负载模式。

下面的结果同样基于多个社区常用模型(包括Qwen3、Llama3、Qwen-VL)生成,用以展示在不同模型架构下,多轮 QA 场景中启用 LMCache 所带来的性能提升。

如何复现多轮问答(Multi-round QA)基准测试

服务端配置

开启LMCache:

PYTHONHASHSEED=0 \ MIOPEN_USER_DB_PATH=/app/miopen \ MIOPEN_FIND_MODE=FAST \ VLLM_USE_V1=1 \ VLLM_ROCM_USE_AITER=1 \ SAFETENSORS_FAST_GPU=1 \ vllm serve Qwen/Qwen2.5-VL-72B-Instruct \ --tensor_parallel_size=8 \ --trust_remote_code \ --mm-encoder-tp-mode "data" \ --load-format dummy \ --gpu-memory-utilization 0.6

关闭LMCache:

PYTHONHASHSEED=0 \ MIOPEN_USER_DB_PATH=/app/miopen \ MIOPEN_FIND_MODE=FAST \ VLLM_USE_V1=1 \ VLLM_ROCM_USE_AITER=1 \ SAFETENSORS_FAST_GPU=1 \ vllm serve Qwen/Qwen2.5-VL-72B-Instruct \ --tensor_parallel_size=8 \ --trust_remote_code \ --mm-encoder-tp-mode "data" \ --load-format dummy \ --gpu-memory-utilization 0.6

客户端压测脚本

python3 multi-round-qa.py \ --num-users 20 \ --num-rounds 6 \ --qps 1 \ --shared-system-prompt 1000 \ --user-history-prompt 2000 \ --answer-len 100 \ --model Qwen/Qwen2.5-VL-72B-Instruct \ --base-url http://localhost:8000/v1

总结

LMCache Long Document QA 基准测试主要用于评估大语言模型在处理长文档场景时的表现,尤其是对长上下文进行理解与问答的能力。该基准展示了AMD GPU 系统在以下方面的能力:

  • 支持超长上下文窗口(extended context window)

  • 在长文档条件下依然保持较好的信息检索与回答准确性

  • 适合作为评估LLM 服务系统在高内存压力、长上下文场景下表现的工具

LMBenchmark 套件通过多轮问答(multi-round QA)场景,对LLM 服务系统做系统性的评估。它通过多用户并发对话模拟真实使用场景,包括:

  • ShareGPT 场景(真实对话,QPS=1.34)

  • 可配置的用户数量与轮数

  • 支持从类llama 模型到 Vision Language 模型,以及 MoE 模型等多种形态

在这些不同负载条件下,LMCache 能为部署在 AMD GPU 上的大规模语言模型带来关键的性能优化加速,帮助系统更好地支撑大规模在线服务。

LMCache 路线图

在2026 年第一季度,LMCache 的路线图以两个核心目标为主:

  • 稳定核心功能

  • 探索并落地高级的全局KV cache 共享机制,以支持更大规模的LLM 部署

主要方向包括:

  • 生态集成扩展:对接更多推理/ 服务引擎,例如 TRTLLM、Modular
  • 存储层优化:利用io_uring 与 NVMe FDP 提升 I/O 性能
  • 内部基础架构重构

o 重构RPC基础设施

o 优化内存分配器

o 支持大规模点对点缓存共享

o 提供解耦式资源池化能力

更重要的是,我们将进一步强化对异构硬件(包括AMD)的适配能力:

  • 在CI/CD 流水线中建立专门的 AMD 测试平台

  • 持续验证在AMD 硬件上的兼容性与性能表现

  • 将LMCache 打造成下一代高效 LLM 服务基础设施中的关键组件

更多细节可以参考我们的Q1 路线图 [1]。

致谢

感谢在本次合作中做出贡献的同事与伙伴:

  • AMD:Andy Luo、Haichen Zhang,以及 AMD AIG 团队

  • LMCache:Junchen Jiang、Yihua Cheng、Nick Barcet

我们会在接下来的数周与数月中持续优化,进一步挖掘与释放系统潜力。

加入我们

期待更多合作!我们正在寻找对社区和研究充满热情的开发者与研究人员,一起在AMD GPU 上:

  • 训练下一代router model

  • 共建值得信赖的AI 基础设施

如果你感兴趣,欢迎联系:

Haichen Zhang:haichzha@amd.com

Yihua Cheng:yihua@tensormesh.ai

AMD开发者小助手:AMD_Developer(微信号)

参考链接

[1] LMCache Q1 roadmap:https://github.com/LMCache/LMCache/issues/2350

有礼互动

LMCACHE_MAX_LOCAL_CPU_SIZE如何设置最合理?

2026年1月22日23:59前在评论中分享,抽3位送「AMD RYZEN键帽夜灯」各一个!

AMD RYZEN键帽夜灯如上图展示,但实际奖品外观可能会因产品供应情况而有所不同。我们将于2026年1月24日前通知获奖者,获奖者须在收到通知72小时内提供准确的收货信息。我们将在收到获奖者的收货信息后的30个工作日内寄出奖品。