openlake: ホストCPUとカーネルをバイパスするGPUワークロード向けの高スループット分散オブジェクトストア
openlake: ホストCPUとカーネルをバイパスするGPUワークロード向けの高スループット分散オブジェクトストア
何を解決するか
OpenLakeは、ストレージからGPUメモリへのデータ移動に費やされる時間を短縮することで、AIインフラストラクチャにおけるボトルネックを解消するように設計されています。これは、トレーニングや推論クラスターを通常低速化させる原因となる、ホストCPU、ページキャッシュ、および複数のユーザースペースコピーによって引き起こされるオーバーヘッドに対処します。
仕組み
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 erasure codingを使用して、ストレージコストを削減しながら高スループットを維持します。
- Congestion control: リクエストのバーストを処理し、テイルレイテンシを最小限に抑えるためのクレジットベースのシステムであるPacedRDMAを実装しています。
対象ユーザー
AIインフラストラクチャを構築している開発者やエンジニア、特にトレーニングと推論のために高スループットなGPUワークロードを管理している人々を対象としています。
ハイライト
- High Performance: 1ms未満のレイテンシで100万IOPS以上を実現します。
- S3 Compatibility: 標準的なS3クライアントを使用して操作できます。
- Rust-based: Rust言語を使用して、安全性とメモリ効率のために構築されています。
- Hardware Acceleration: 最大のスループットを実現するために、GPUDirect StorageとRDMAを活用します。
Sources
- undefinedopenlake-project/openlake