openlake-project/openlake
OpenLake is a high performance storage engine for efficient LLM inference and GPU Training
解決的問題
OpenLake 是一款專為 GPU 工作負載設計的高效能分散式儲存引擎。它解決了儲存 I/O 緩慢的瓶頸問題,這種瓶頸通常會導致 GPU 在訓練和推論期間閒置。透過提供超低延遲和高吞吐量,它確保加速器能被充分利用。
運作原理
OpenLake 使用 Rust 建構並利用 Linux io_uring,將從儲存到 GPU 記憶體的路徑降至最低。它採用了幾項關鍵技術:
- 零拷貝: 使用 GPUDirect Storage 和 RDMA 在 NVMe/NIC 和 GPU 記憶體之間直接移動資料,繞過主機 CPU 和頁面快取。
- 核心本地非同步 I/O: 每個實體核心執行一個釘選的執行階段,以避免跨核心爭用。
- 突發感知 RDMA: 實作基於信用的流量控制,以防止接收端過載並保護尾延遲。
- 抹除碼: 使用 SIMD Reed Solomon 抹除碼實現持久且容量高效的儲存。
- KV 快取卸載: 允許 LLM 推論引擎(如 vLLM)跨 GPU 叢集卸載並擷取 PB 級規模的 KV 快取。
適用對象
它適用於需要最佳化 LLM 推論成本、加速模型訓練,以及為 AI 代理管理大量上下文儲存的 AI 基礎架構工程師和 ML 實踐者。
重點特色
- 極致效能: 在 1ms 內提供超過百萬的 IOPS,並在 MLPerf Storage v3.0 物件檢查點基準測試中名列前茅。
- S3 相容性: 為 GPU 叢集提供 S3 相容的物件儲存。
- KV 快取管理: 透過跨 GPU 節點快取前綴,顯著減少長提示和重複提示的首字元時間 (TTFT)。
- 無損壓縮: 包含 ExANS,這是一種適用於 BF16 KV 快取的無損 GPU 編解碼器,可降低成本。
- 廣泛的實用性: 支援 VectorDB 的快速索引建構,以及 RL/ML 工作負載的超快速檢查點功能。
相關
- 專案
- 專案
- 專案
- 專案