NVIDIA/gds-nvidia-fs
NVIDIA GPUDirect Storage Driver
NVIDIA gds-nvidia-fs
何であるか – Linuxカーネルモジュール(nvidia-fs.ko)としてNVIDIAのGPUDirect Storage(GDS)ドライバを実装します。サポートされているストレージシステムがDMA/RDMA経由でGPUメモリへデータを直接送受信できるようにし、CPUとホストメモリを経由せずにデータ移動を可能にします。
重要性 – 現代のAI/MLワークロードは、GPUに高速でテラバイト単位のデータを供給する必要があります。従来の方法ではデータがCPUを経由してコピーされるため、帯域幅のボトルネックが発生します。このドライバによりゼロコピー経路が実現され、学習・推論・データ集約型分析において帯域幅を大幅に向上させ、レイテンシを低減できます。
コア機能
| 機能 | 詳細 |
|---|---|
| GPU直接I/O | NVMe/NVMe-OF、ScaleFluxの計算ストレージ、またはRDMA対応ファイルシステムとGPUメモリ間で、ホストRAMに一時保存せずにデータを移動可能。 |
| サポートされるストレージバックエンド | • NVMe/NVMe-OF/ScaleFlux CSD上のXFSおよびEXT4(順序モード) • RDMA経由のNFS(MOFED ≥ 5.1) • 分散RDMAファイルシステム:DDN Exascaler、WekaFS、VAST |
| ハードウェア要件 | NVIDIA TeslaまたはQuadro GPU(Pascal世代以降)、互換性のあるNVMeまたは分散ストレージ、Linuxカーネル ≥ 4.15、MOFED ≥ 5.1、CUDA ≥ 10.0、ドライバ ≥ 418.40 |
| カーネル統合 | ロード可能なカーネルモジュール(nvidia-fs.ko)としてビルドされます。 |
| ドキュメント | 公式GDSドキュメント: https://docs.nvidia.com/gpudirect-storage/index.html |
一般的な使用例ワークフロー
- 環境準備 – サポートされているNVIDIA GPU、適切なストレージ(例:NVMe SSDまたはRDMA対応ファイルシステム)、および必要なソフトウェアスタック(Linuxカーネル、MOFED、CUDAツールキット、NVIDIAドライバ)をインストール。
- ドライバのビルド
cd src export CONFIG_MOFED_VERSION=$(ofed_info -s | cut -d '-' -f 2) sudo make - モジュールのロード
sudo insmod nvidia-fs.ko - CUDAアプリケーション(またはRAPIDS、PyTorch-Dataloader、TensorFlowなどのライブラリ)から
cufileAPIを使用して、サポートされるストレージ上のファイルを開き、GPUバッファに直接読み書き。 - 利点 – より高い実効I/O帯域幅とCPUオーバーヘッドの低減により、大規模モデルの学習や推論におけるデータパイプラインのスループットが向上。
セットアップ手順
# リポジトリのクローン(例)
git clone https://github.com/NVIDIA/gds-nvidia-fs.git
cd gds-nvidia-fs/src
# ホストで検出されたMOFEDバージョンをエクスポート
export CONFIG_MOFED_VERSION=$(ofed_info -s | cut -d '-' -f 2)
# カーネルモジュールのビルドとインストール
sudo make
sudo insmod nvidia-fs.ko
ロード後、ドライバはカーネルに登録され、NVIDIA GPUDirect Storage(cufile)ライブラリを呼び出すアプリケーションで利用可能になります。
使用対象者
- 大規模モデルの学習用高性能データパイプラインを構築するAI/MLエンジニア。
- CPU側のI/Oボトルネックを削減し、GPUの利用効率を最大化したいデータセンター運用担当者。
- ストレージ意識型GPUコンピューティング、計算ストレージ、RDMAベースシステムに関する研究者。
制限事項と注意点
- ドライバはLinuxカーネル4.15以降でのみ動作し、RDMAサポートにはMOFED(Mellanox OFED)スタックが必要です。
- XFS/EXT4は順序モードでのマウントが必要です。その他のマウントオプションはサポートされません。
- 低レベルのカーネルコンポーネントであるため、通常は上位レベルのライブラリ(例:NVIDIAの
cufileAPI)を介して操作されるのが一般的です。
要約 – nvidia-fsはNVIDIAのGPUDirect Storageを実現するカーネルレベルの要素であり、現代のストレージシステムからGPUメモリへ超高速・ゼロコピーでデータを移動可能にし、次世代AIワークロードの鍵となる構成要素です。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト