lucienhuangfu/eLLM
eLLM can infer LLM on CPUs faster than on GPUs
What it solves
eLLM 解决了在 CPU 上运行大语言模型(LLM)推理的性能差距和高成本问题。虽然 GPU 通常是默认选择,但由于显存(VRAM)有限,它们在超长上下文下常常无法一次性处理完整提示,必须将提示拆成小块。eLLM 通过利用服务器级 CPU 更大的内存和缓存容量,优化 CPU 推理,使其在多 GPU 系统中具备竞争力,并且在某些长上下文场景下甚至更快。
How it works
eLLM 采用“以存储换算力”的理念来降低运行时开销和延迟:
- Elastic Static Computation Graph:构建全局唯一的静态图,使用维度优先的张量布局,使其能够支持各种输入长度而无需重新构建图。
- Static-Shape KV Cache:不使用分页内存管理,而是预分配固定形状的张量作为键值(KV)缓存,允许直接基于坐标访问,减少元数据开销。
- Massive-Dimensional Tensors:为 token 和序列保留极大维度,实现“无界” KV 张量,能够在单次 Prefill 中处理完整数据。
- Head-by-Head Attention:在 Prefill 阶段一次只计算一个注意力头,使单个头的 KV 数据尽可能长时间驻留在 CPU 大容量 L3 缓存中,最小化重复的内存加载。
Who it’s for
该框架面向在 CPU 服务器(Intel Xeon 第四代以上、支持 AMX)上运行长上下文工作负载的用户,特别是:
- AI Agents:需要大量上下文进行推理的计算使用代理。
- Developers:处理跨文件或跨模块上下文的代码 Copilot。
- Enterprise RAG:将大量外部文档注入提示的企业检索增强生成系统。
- Researchers:涉及多步骤合成大量材料的深度研究工作流。
Highlights
- Pure CPU Inference:无需 GPU 或 NPU,直接在 Xeon/EPYC 服务器上运行。
- vLLM API Compatible:可轻松集成现有 LLM 生态系统。
- Long Context Support:利用巨量 CPU RAM 支持近乎无限的上下文窗口。
- Reduced Latency:通过避免 GPU 必须的分块处理,优化首次 Token 时间(TTFT)。
- Cost Effective:相较于 GPU 部署,硬件和每用户的推理成本显著降低。