Cloudflare 在 2025 年推出了自研的 LLM 推理引擎 Infire,这是一个用 Rust 从头编写的边缘推理系统,用于替代此前基于 vLLM 的 Workers AI 基础设施。这一迁移并非简单的性能优化,而是针对边缘计算场景的系统性架构重构。
边缘推理的独特约束
与中心化数据中心的推理部署不同,Cloudflare 的网络拓扑决定了其推理服务必须满足三个硬性约束:
资源竞争环境:推理进程需要与反向代理、WAF、缓存服务等共享同一台边缘节点的 CPU 资源。在满负载场景下,vLLM 通过 gvisor 沙箱运行时消耗高达 2.5 个 CPU 核心,与关键服务争抢时间片,导致 GPU 利用率下降。
动态多模型调度:边缘节点需要同时承载数十个不同规模的模型(从 8B 到 109B 参数),且流量模式高度不可预测。vLLM 不支持在不使用 MIG(Multi-Instance GPU)的情况下同一 GPU 上动态调度多个模型,这造成了资源碎片和冷启动延迟。
安全沙箱开销:Cloudflare 无法信任第三方 Python 进程直接运行在边缘节点上,必须通过 gvisor 进行隔离。这层虚拟化增加了额外的启动 / 销毁开销,而 vLLM 本身的启动时间已经较长。
从 Python 到 Rust 的底层重构
Infire 的核心架构决策是用 Rust 替代 Python 实现整个推理引擎。这一选择的技术依据在于:
消除解释器开销:Python 的多层抽象使低级别优化难以落地。Infire 通过直接控制内存布局、CUDA 流管理和内核调度,将 CPU 负载从 vLLM+gvisor 的 250% 降至 25%。
裸机运行能力:Rust 的内存安全保证使 Infire 可以作为受信任的裸机进程运行,无需 gvisor 沙箱。这消除了虚拟化层带来的上下文切换开销,同时保持了安全边界。
JIT 内核编译:Infire 在模型加载时即时编译针对特定模型参数(隐藏层大小、词表规模)和 GPU 架构优化的 CUDA 内核。对于矩阵乘法等计算密集型操作,它会动态选择使用 cuBLASlt 库或自定义内核。
模型加载流程也经过优化:权重从 R2 对象存储获取后,利用 Page Locked 内存和 CUDA 异步复制机制通过多流并行传输到 GPU。Llama-3-8B 从磁盘加载到就绪的启动时间控制在 4 秒以内。
连续批处理与分页 KV 缓存
Infire 的批处理策略是性能提升的关键。它采用 ** 连续批处理(Continuous Batching)结合分块预填充(Chunked Prefill)** 的混合模式:
预填充阶段:由于输入 token 全部已知,可以并行处理以摊销内存访问成本。Infire 将预填充 token 与解码阶段的 batch slot 混合调度,最大化矩阵乘法规模以充分利用 Tensor Core。
分页 KV 缓存:传统预分配方式在 128K 上下文窗口下只能支持 4 个并发请求。Infire 将 KV 缓存分割为固定大小的页(pages),根据实际 token 数量动态分配。由于大多数请求不会用满上下文窗口,这种技术实现了 "理论上无限" 的并发能力。
请求生命周期管理:batch 组件负责检测 End of Stream token、回收已完成请求的 KV 缓存页,并将解码后的 token 送回 HTTP 层转换为文本输出。
CUDA 图与硬件级优化
针对 Nvidia Hopper 架构,Infire 实现了细粒度 CUDA Graph 优化:
按需编译图结构:为每种可能的 batch size 动态生成对应的 CUDA Graph,存储后复用。Graph 将一系列内核启动替换为单一构造体,显著降低内核启动的摊销成本。
PTX 指令级优化:开发团队针对 Hopper GPU 使用底层 PTX 指令优化特定计算内核,这是通用推理框架难以实现的硬件专属优化。
内存带宽最大化:推理的瓶颈在于从显存读取模型权重的时间。通过增大矩阵运算规模(聚合多个请求的矩阵乘法),Infire 更好地利用了内存带宽和计算单元的并行能力。
性能基准与生产数据
在 H100 NVL GPU 上的 ShareGPT v3 数据集测试(4000 条请求,并发度 200)显示:
| 方案 | 请求 / 秒 | Token / 秒 | CPU 负载 |
|---|---|---|---|
| Infire | 40.91 | 17224.21 | 25% |
| vLLM 0.10.0 | 38.38 | 16164.41 | 140% |
| vLLM+gvisor | 37.13 | 15637.32 | 250% |
| vLLM+gvisor(1 CPU) | 22.04 | 9279.25 | 100% |
在空载机器上,Infire 比 vLLM 快约 7%;在真实生产负载下(CPU 受限场景),优势扩大到近 2 倍。更重要的是,GPU 利用率提升至 80% 以上,直接降低了运营成本。
工程决策的启示
Infire 的设计体现了边缘 AI 基础设施的核心取舍:
专用化优于通用性:vLLM 作为开源项目需要支持广泛的硬件和场景,而 Infire 针对 Cloudflare 的特定网络拓扑和硬件(Hopper GPU)进行深度定制,换取了显著的性能收益。
安全与性能的再平衡:通过 Rust 的内存安全特性,Cloudflare 在不牺牲安全性的前提下消除了沙箱虚拟化开销。这表明系统级语言在现代 AI 基础设施中的回归趋势。
模型即配置:JIT 编译策略将模型参数视为编译期常量,生成针对性的优化内核。这种 "模型专用化" 思路与通用推理引擎的设计理念形成对比。
目前 Infire 已支撑 Llama 3.1 8B 等模型在 Workers AI 上运行。根据官方路线图,多 GPU 支持(用于更大模型)、量化技术和真正的多租户能力将是下一阶段的开发重点。
资料来源
- Cloudflare Blog: "How we built the most efficient inference engine for Cloudflare's network" (2025-08-27)
- Cloudflare Developers Documentation: Workers AI Overview
内容声明:本文无广告投放、无付费植入。
如有事实性问题,欢迎发送勘误至 i@hotdrydog.com。