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/网卡和 GPU 内存之间直接移动数据,绕过主机 CPU 和页缓存。
- 核心本地异步 I/O: 每个物理核心运行一个固定(pinned)的运行时,以避免跨核心争用。
- 突发感知 RDMA: 实现基于信用的流控制,以防止接收端过载并保护尾延迟。
- 纠删码: 使用 SIMD Reed Solomon 纠删码实现持久且具有容量效率的存储。
- KV 缓存卸载: 允许 LLM 推理引擎(如 vLLM)在 GPU 集群中以 PB 级规模卸载和检索 KV 缓存。
适用人群
它面向需要优化 LLM 推理成本、加速模型训练以及管理 AI 智能体海量上下文存储的 AI 基础设施工程师和机器学习从业者。
核心亮点
- 极致性能: 在 1ms 内提供超过百万的 IOPS,并在 MLPerf Storage v3.0 对象检查点基准测试中名列前茅。
- S3 兼容性: 为 GPU 集群提供兼容 S3 的对象存储。
- KV 缓存管理: 通过在 GPU 节点间缓存前缀,显著减少长提示和重复提示的首字时间(TTFT)。
- 无损压缩: 包含 ExANS,这是一种用于 BF16 KV 缓存的无损 GPU 编解码器,旨在降低成本。
- 广泛实用性: 支持为向量数据库(VectorDBs)快速构建索引,以及为强化学习/机器学习(RL/ML)工作负载提供超快检查点功能。
相关
- 项目
- 项目
- 项目
- 项目