openlake: 호스트 CPU와 커널을 우회하는 GPU 워크로드를 위한 고처리량 분산 오브젝트 스토어
openlake: 호스트 CPU와 커널을 우회하는 GPU 워크로드를 위한 고처리량 분산 오브젝트 스토어
해결하는 문제
OpenLake는 스토리지에서 GPU 메모리로 데이터를 이동하는 데 소요되는 시간을 줄임으로써 AI 인프라의 병목 현상을 제거하도록 설계되었습니다. 이는 일반적으로 훈련 및 추론 클러스터를 느리게 만드는 호스트 CPU, 페이지 캐시 및 여러 사용자 공간 복사본으로 인해 발생하는 오버헤드를 해결합니다.
작동 방식
OpenLake는 Rust와 io_uring을 사용하여 thread-per-core 아키텍처로 구축된 분산 오브젝트 스토어입니다. 다음과 같은 여러 고성능 기술을 채택합니다:
- Zero-copy 데이터 이동: GPUDirect Storage 및 RDMA를 사용하여 호스트 메모리와 커널을 우회하여 네트워크 인터페이스 카드(NIC)에서 GPU VRAM으로 데이터를 직접 이동합니다.
- 커널 우회: HTTP 프론트엔드와 스토리지 엔진은 동일한 스레드에서 실행되어 요청이 코어 경계를 넘지 않도록 합니다.
- 효율적인 스토리지: SIMD Reed Solomon erasure coding을 사용하여 높은 처리량을 유지하면서 스토리지 비용을 줄입니다.
- 혼잡 제어: 요청 버스트를 처리하고 꼬리 지연 시간(tail latencies)을 최소화하기 위해 크레딧 기반 시스템인 PacedRDMA를 구현합니다.
대상 사용자
AI 인프라를 구축하는 개발자와 엔지니어, 특히 훈련 및 추론을 위한 고처리량 GPU 워크로드를 관리하는 사람들을 대상으로 합니다.
주요 특징
- 고성능: 1ms 미만의 지연 시간과 함께 100만 IOPS 이상의 성능을 제공합니다.
- S3 호환성: 표준 S3 클라이언트를 사용하여 상호작용할 수 있습니다.
- Rust 기반: Rust 언어를 사용하여 안전성과 메모리 효율성을 위해 구축되었습니다.
- 하드웨어 가속: 최대 처리량을 위해 GPUDirect Storage 및 RDMA를 활용합니다.
Sources
- undefinedopenlake-project/openlake