openlake: 一個用於 GPU 工作負載的高吞吐量分散式物件儲存系統,可繞過主機 CPU 與核心
openlake: 一個用於 GPU 工作負載的高吞吐量分散式物件儲存系統,可繞過主機 CPU 與核心
它解決了什麼問題
OpenLake 旨在透過減少從儲存裝置到 GPU 記憶體的數據移動時間,來消除 AI 基礎設施中的瓶頸。它解決了由主機 CPU、分頁快取(page caches)以及多個使用者空間副本所引起的開銷,這些因素通常會減慢訓練與推論集群的效率。
運作原理
OpenLake 是一個使用 Rust 與 io_uring 並採用 thread-per-core 架構構建的分散式物件儲存系統。它採用了多項高效能技術:
- 零拷貝數據移動 (Zero-copy data movement):使用 GPUDirect Storage 與 RDMA 將數據直接從網路介面卡 (NIC) 移動到 GPU VRAM,從而繞過主機記憶體與核心。
- 繞過核心 (Bypassing the kernel):HTTP 前端與儲存引擎在同一個執行緒上執行,以防止請求跨越核心邊界。
- 高效儲存:使用 SIMD Reed Solomon 糾刪碼(erasure coding)來降低儲存成本,同時維持高吞吐量。
- 擁塞控制:實作了 PacedRDMA,這是一種基於信用額度的系統,用於處理請求突發並將尾端延遲(tail latencies)降至最低。
對象是誰
它適用於開發者與工程師,特別是那些正在建構 AI 基礎設施,並管理用於訓練與推論的高吞吐量 GPU 工作負載的人員。
重點特色
- 高效能:提供超過一百萬 IOPS 與低於 1 毫秒的延遲。
- S3 相容性:可以使用任何標準的 S3 用戶端進行互動。
- 基於 Rust:使用 Rust 語言構建,確保安全性與記憶體效率。
- 硬體加速:利用 GPUDirect Storage 與 RDMA 以實現最大吞吐量。
Sources
- undefinedopenlake-project/openlake