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

一般的な使用例ワークフロー

  1. 環境準備 – サポートされているNVIDIA GPU、適切なストレージ(例:NVMe SSDまたはRDMA対応ファイルシステム)、および必要なソフトウェアスタック(Linuxカーネル、MOFED、CUDAツールキット、NVIDIAドライバ)をインストール。
  2. ドライバのビルド
    cd src
    export CONFIG_MOFED_VERSION=$(ofed_info -s | cut -d '-' -f 2)
    sudo make
    
  3. モジュールのロード
    sudo insmod nvidia-fs.ko
    
  4. CUDAアプリケーション(またはRAPIDS、PyTorch-Dataloader、TensorFlowなどのライブラリ)からcufile APIを使用して、サポートされるストレージ上のファイルを開き、GPUバッファに直接読み書き。
  5. 利点 – より高い実効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のcufile API)を介して操作されるのが一般的です。

要約 – nvidia-fsはNVIDIAのGPUDirect Storageを実現するカーネルレベルの要素であり、現代のストレージシステムからGPUメモリへ超高速・ゼロコピーでデータを移動可能にし、次世代AIワークロードの鍵となる構成要素です。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト