openlake-project/openlake

OpenLake is a high performance storage engine for efficient LLM inference and GPU Training

What it solves

OpenLake는 스토리지에서 GPU 메모리로 데이터를 이동하는 데 소요되는 시간을 줄여 AI 인프라의 병목 현상을 없애도록 설계되었습니다. 호스트 CPU, 페이지 캐시, 다중 사용자 공간 복사로 인한 오버헤드를 해결하여 학습 및 추론 클러스터의 성능 저하를 방지합니다.

How it works

OpenLake는 Rust와 io_uring 로 만든 분산 객체 스토어이며, thread-per-core 아키텍처를 사용합니다. 여러 고성능 기술을 적용합니다:

  • Zero-copy data movement: GPUDirect Storage와 RDMA를 사용해 네트워크 인터페이스 카드(NIC)에서 직접 GPU VRAM으로 데이터를 이동시켜 호스트 메모리와 커널을 우회합니다.
  • Bypassing the kernel: HTTP 프론트엔드와 스토리지 엔진이 같은 스레드에서 실행되어 요청이 코어 경계를 넘는 것을 방지합니다.
  • Efficient storage: SIMD Reed Solomon 이레이저 코딩을 사용해 저장 비용을 낮추면서도 높은 처리량을 유지합니다.
  • Congestion control: PacedRDMA를 구현하여 크레딧 기반 시스템으로 요청 폭주를 처리하고 테일 레이턴시를 최소화합니다.

Who it’s for

AI 인프라를 구축하는 개발자와 엔지니어, 특히 학습 및 추론을 위한 고처리량 GPU 워크로드를 관리하는 사람들을 위한 것입니다.

Highlights

  • High Performance: 서브 1ms 지연으로 백만 이상 IOPS 제공.
  • S3 Compatibility: 표준 S3 클라이언트와 호환됩니다.
  • Rust-based: Rust 언어로 안전하고 메모리 효율적으로 구축되었습니다.
  • Hardware Acceleration: GPUDirect Storage와 RDMA를 활용해 최대 처리량을 달성합니다.