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 記憶體支援近乎無限制的上下文窗口。
- Reduced Latency:透過避免 GPU 必須的分塊處理,優化首次 Token 時間(TTFT)。
- Cost Effective:相較於 GPU 部署,硬體與每位使用者的推論成本顯著降低。