GPU

GPU向けストレージ選定ガイド|NVMeとGPUDirect Storageの仕組みからワークロード別構成まで解説

投稿日
更新日
Index

GPUを導入したものの、「期待したほど処理が速くならない」「GPUの使用率が上がらない」と感じることはないでしょうか。その原因として、GPUの性能不足ではなく、ストレージからのデータ供給が追いついていないことにあるケースが少なくありません。
どれだけ高性能なGPUを搭載しても、処理に必要なデータが適切な速度で供給されなければ、GPUは演算を待つアイドル状態となり、本来の性能を発揮できなくなります。

AIの学習や推論、高性能コンピューティング(HPC)の現場では、データの読み書き速度やストレージとGPUの間のデータ転送経路が、システム全体の処理効率を左右する重要な要素となっています。
本記事では、GPUの性能を最大限に活かすために欠かせないストレージの役割を整理し、NVMeやNVIDIA GPUDirect® Storageといった技術が、なぜAI・HPC環境で求められるのかを解説します。ストレージの選定に迷っている方や、GPUの導入効果を高めたいと考えている方に向けて、判断材料となる情報を整理します。

GPU製品・サービス

GPU製品・サービス

AI/IoT、デジタルツイン用途に適したGPUサーバーを設計・構築。さらにデータセンター・ネットワークなど、GPU運用に必要なシステムをワンストップで提供可能。

GPUとストレージの役割分担 ― 計算側とデータ供給側の連携

GPUは、大量のデータを並列に処理することに優れたプロセッサです。AIの学習や推論、科学技術計算などの処理では、GPUが多数のコアを同時に使い、高速な演算を実行します。しかし、この演算を行うためには、処理対象のデータをあらかじめGPUのメモリ(VRAM)に読み込んでおく必要があります。

まず、それぞれの役割を整理しましょう。

  • GPU(Graphics Processing Unit):大量の計算を同時に実行できるプロセッサです。AIの学習や推論では、数百万枚の画像を処理したり、複雑なモデルの計算を行ったりしますが、GPUは数千〜数万の計算ユニットを同時に動かすことで、こうした処理を短時間で完了させます。
  • ストレージ:処理に必要なデータを保存しておく装置です。AIの学習では、学習用の画像データ、テキストデータ、モデルのパラメータなど、大量のデータをストレージに保存します。GPUが計算を始めるには、まずストレージからこれらのデータを取り出し、GPUの作業領域(メモリ)に読み込む必要があります。

GPUがどれだけ高速に計算できても、ストレージからデータが届かなければ、GPUは処理を始められません。この二つの関係は、「計算する側」と「データを供給する側」の連携といえます。

AI・HPC環境で発生するストレージのボトルネック

AI・HPC環境で発生するストレージのボトルネック

AIの学習では、数百万〜数千万枚の画像を繰り返しGPUに読み込ませます。ストレージからデータを運ぶ速度が遅いと、GPUは次のデータが来るまで待機することになります。この待ち時間が積み重なると、高性能なGPUを導入しても、実際の処理時間は期待したほど短縮されません。では、AI・HPC環境でストレージがボトルネックとなるのは、具体的にどのような場面でしょうか。ここでは、学習と推論の2つの観点から、代表的なボトルネックのパターンを見ていきます。

次の表にワークロードごとの特徴を整理しました。

ワークロード データの特性 ストレージに求められる性能
学習(大規模データセット) 大容量・連続読み出し 高スループット
学習(小ファイル群) 多数の小ファイル 高IOPS + メタデータ処理性能
推論(リアルタイム) 小サイズ・ランダム読み出し 低レイテンシ
チェックポイント 大容量・一括書き込み 高書き込みスループット

次に、その詳細を見ていきましょう。

学習時のボトルネック

学習時には、大きく3つのボトルネックがあります。

  • 大量データの連続読み込み:AIモデルの学習では、大量の画像やテキストデータを繰り返しGPUに読み込ませます。データセットのサイズがTB単位に達することも珍しくありません。この大量のデータを連続的に読み出す処理では、ストレージの高い持続的なスループット(単位時間あたりのデータ転送量)が求められます。
  • 小ファイル群の処理:学習データが多数の小さなファイル(画像ファイル群など)で構成されている場合は、ファイルのメタデータ処理がボトルネックとなります。メタデータとは、ファイル名、サイズ、作成日時、アクセス権限など、ファイルの属性情報を指します。小さなファイルを大量に読み込む際、データ本体の転送だけでなく、これらのメタデータの検索・読み取り処理がストレージに負荷をかけます。
  • チェックポイントの書き出し:一定の学習ステップごとにモデルの状態を保存する「チェックポイント」の処理も発生します。大規模なモデルでは、1回のチェックポイントで数十GB〜数百GBのデータをストレージに書き込みます。チェックポイントの書き出し中は、GPUの学習処理が一時停止するため、書き込み速度が遅いと学習全体の効率に影響します。

推論時のボトルネック

推論処理では、学習時のような大量の連続データ読み出しは必要ありません。代わりに、リアルタイム性が求められる場面では、個々のリクエストに対して短時間でデータを返すことが重要になります。推論で必要となるデータは比較的小さなサイズ(数KB〜数MB)であることが多いため、データ要求に対する応答速度の短さが求められます。

このように、AI・HPC環境ではワークロードの種類によって求められるストレージの性能が大きく異なります。これらのボトルネックへの対策としては、並列ファイルシステム、RAID構成、ネットワークストレージ、高速インターフェースなど、さまざまな技術があります。ここからは、その中でもGPU環境で特に重要となる2つの技術、NVMeGPUDirect Storageについて解説します。

NVMeストレージ性能と従来方式との違い

NVMeストレージ性能と従来方式との違い

NVMe(Non-Volatile Memory Express)は、SSD(Solid State Drive)などのフラッシュストレージをPCIeバスで接続するための通信規格です。PCIe(Peripheral Component Interconnect Express)は、CPUやGPU、ストレージなどの高速デバイスを接続するための内部インターフェースです。NVMeはこのPCIeバスを利用してストレージを接続するため、GPUと同じ高速インターフェース上でデータをやり取りできます。

このように、NVMeはGPUと同じPCIeベースの接続を利用できるため、GPU環境でも高速なデータ転送を実現しやすいストレージ方式となっています。

NVMeと従来方式の性能比較

NVMeとSATA/SASの性能の違いを、次の表で比較しました。「最大スループット」はインターフェースの理論上の上限値、「接続方式」はストレージとシステム間の物理的な接続経路を示しています。

項目 SATA III SAS(12Gbps) NVMe(PCIe Gen4 x4) NVMe(PCIe Gen5 x4)
最大スループット 約600MB/s 約1.2GB/s 約8GB/s 約16GB/s
接続方式 SATAコントローラ経由 SASコントローラ経由 PCIeバス直結 PCIeバス直結

※本表のスループットは各インターフェースの理論上の最大値です。実運用ではドライブの性能やシステム構成により、実効値は変動します。各インターフェースの仕様の詳細は、NVM Express Base SpecificationSATA-IOおよびBroadcom SAS 9305 Product Briefを参照してください。

表から分かるように、NVMeはSATA/SASと比較して大幅に高いスループットを持ちます。PCIe Gen4 x4ではSATA IIIの約13倍、Gen5ではさらにその倍に達します。加えて重要なのが接続方式の違いです。SATAやSASはコントローラを経由してストレージにアクセスするのに対し、NVMeはPCIeバスに直接接続されるため、データ転送経路が短く、低レイテンシでのアクセスが可能になります。

この構造の違いにより、GPUへデータを供給する際のオーバーヘッドが抑えられ、AIやHPCのような大量データ処理において、より効率的なデータ転送が実現されます。

GPUDirect Storage ― GPUとストレージを直結する技術

NVMeの採用によりストレージ自体の帯域は大幅に向上しますが、ストレージからGPUメモリにデータが届くまでの転送経路にも、性能を左右する重要な要素があります。NVMeストレージとGPUが同じPCIeバス上にあっても、従来のデータ転送では必ずCPUメモリを経由する経路をたどります。

次に、この従来のデータ転送経路の課題と、それを解決するGPUDirect Storageについて解説します。

従来のデータ転送経路とその制約

従来のデータ転送では、ストレージからCPUのシステムメモリへデータを読み出し、そこからPCIeバスを経由してGPUメモリへ転送する、という二段階の経路をたどります。

この「ストレージ → CPUメモリ → GPUメモリ」という経路には、次の3つの制約が伴います。

  • データコピーの二重発生:ストレージから読み出したデータは、一度CPUメモリ上のバッファにコピーされた後、さらにGPUメモリへコピーされるため、余分な転送が発生します
  • CPUへの負荷集中:データ転送の制御をCPUが担うため、大量データを扱う処理ではCPUリソースが消費され、本来の処理に影響を与えることがあります
  • メモリ帯域の制約:データがCPUメモリを経由することで、その帯域がボトルネックとなり、転送性能が制限されます

これらの制約により、ストレージからGPUへのデータ供給が処理速度に追いつかず、GPUが演算を待つ「アイドル状態」が発生することがあります。

GPUDirect Storageとは

GPUDirect Storageは、NVIDIAが提供する、ストレージとGPUメモリの間でDMA(Direct Memory Access、CPUを介さずにデバイス間でデータを直接転送する方式)を実現するデータ転送技術です。GPUDirect Storageのソフトウェアスタックは、アプリケーションがcuFile APIを通じてI/Oを発行し、nvidia-fsドライバがストレージドライバと連携してGPUメモリへの直接転送を制御する構成になっています。CUDA® 12.8以降の一部環境では、ローカルNVMeに対してnvidia-fsを介さない経路も利用可能です。

従来のデータ転送では「ストレージ → CPUメモリ(バウンスバッファ) → GPUメモリ」という経路をたどり、データのコピーが二重に発生していました。GPUDirect Storageを使用すると、ストレージからGPUメモリへの直接転送が可能となり、CPUメモリでの中継を省略できます。

下図は、この2つの転送経路を比較したものです。左側がCPUメモリを経由する従来の方式(Before GPUDirect Storage)、右側がGPUDirect Storageによる直接転送(GPUDirect Storage Enabled)を示しています。

出典:NVIDIA, GPUDirect Storage Design Guide, Figure 4.1

出典:NVIDIA, GPUDirect Storage Design Guide, Figure 4.1

この「直接転送」の仕組みにより、従来の3つの制約が次のように改善されます。

  • データコピーの削減:バウンスバッファを経由しないため、データのコピー回数が2回から1回に減り、転送にかかる時間が短縮されます
  • CPUの負荷軽減:CPUメモリを介した中継処理が不要になり、データ転送に伴うCPU負荷を抑えられるため、CPUのリソースを他の処理(データの前処理、プロセス管理など)に充てやすくなります
  • メモリ帯域の制約緩和:CPUメモリのバウンスバッファを介さないため、メモリ帯域の制約が緩和されます。特にGPUとNVMeストレージが同じPCIeスイッチ配下にある構成では、より広い帯域を活用できる可能性があります

性能面での効果

NVIDIAの公式資料によると、GPUDirect Storageを使用した場合、従来のバウンスバッファ方式と比較して次の効果が報告されています。

  • 帯域幅の向上:ストレージとGPUの間のデータ転送で、2〜8倍の帯域幅の向上
  • レイテンシの低減:エンドツーエンドのデータ転送で、3.8倍のレイテンシ低減

※これらの数値はNVIDIAが公表した測定結果に基づくものであり、実際の効果はシステム構成やワークロードにより異なります。詳細はNVIDIA Technical Blog: GPUDirect Storageを参照してください。

ワークロード別に見るストレージの構成と選定ポイント

ワークロード別に見るストレージの構成と選定ポイント

ここまで、GPUとストレージの関係や性能向上の仕組みを見てきました。ここでは、実際の選定を進める際の判断の流れと、構成の考え方を整理します。

ストレージ選定では、次のような観点から検討を進めます。

  • ワークロードと性能要件 - 用途ごとに重視される性能指標と接続方式
  • GPU構成 - GPU枚数が増えた時のストレージ容量・帯域の考え方
  • 技術選択の組み合わせ方 – NVMe、GPUDirect Storage、共有ストレージなどの効果的な組み合わせ
  • コストとのバランス - 階層型ストレージによる性能とコストの両立

次に、それぞれの観点について整理します。

ワークロードと性能要件

ワークロードごとに、どのような性能が重視され、どのような接続方式が検討されるかを表に整理しました。表では、前述したボトルネックに対応する性能指標と、技術との対応関係を示しています。

用途 重視される性能 接続方式の目安 GPUDirect Storageの有効性
ローカル学習(単体サーバー) スループット・IOPS NVMe 大(スループット改善)
共有学習(マルチノード) スループット・CPU負荷 NVMe-oF / 並列FS 大(CPU負荷軽減)
リアルタイム推論 レイテンシ NVMe 中(レイテンシ改善)
データ前処理・ETL 容量・コスト NVMe / NAS 小〜中
アーカイブ・長期保存 容量単価 SATA / SAS 不要

実際の選定では、上記の表の観点に加えて、データ量、予算、既存環境などを総合的に検討して判断します。

GPU構成とストレージ容量・帯域の考え方

GPU枚数が増える場合、ストレージ側でも帯域や容量を拡張する方法があります。

  • 単体サーバーで複数GPU:1台のサーバー内に複数のGPUを搭載する場合、NVMeストレージを複数台でRAID構成にすることで、スループットを向上させることができます。GPU枚数に応じてストレージ側の帯域も拡張できる柔軟性があります。
  • マルチノードでの分散構成:複数のサーバーにまたがってGPUを運用する場合、NVMe-oF(NVMe over Fabrics)や並列ファイルシステムを使うことで、各サーバーから共通のデータセットに高速アクセスできます。データセットのサイズや更新頻度によっては、各ノードにローカルコピーを配置する運用も選択できます。

技術選択の組み合わせ方

前述の表で示したNVMe、GPUDirect Storage、共有ストレージなどの技術は、用途や環境に応じて組み合わせることができます。

  • NVMeと従来型ストレージの使い分け:NVMeは高スループット・低レイテンシを実現します。アクティブなデータセットにはNVMeを使い、アーカイブデータには容量単価の低いSATA/SASを使うことで、性能とコストを両立できます。
  • GPUDirect Storageの活用:GPUDirect Storageは、学習ワークロードでデータ転送を高速化できます。Turing世代以降のGPUとローカルNVMe、またはNVMe-oFの組み合わせで利用でき、既存環境に追加で導入することも可能です。
  • 共有ストレージとローカルストレージ:マルチノードでは、NVMe-oFや並列ファイルシステムによる共有ストレージで、データ管理を一元化できます。データセットのサイズによっては、各ノードにローカルコピーを配置する構成も選択できます。

階層型ストレージとデータ配置

実務では複数のワークロードが同一環境で混在するケースが多く、すべてのデータを高速なNVMeストレージに配置するのはコスト面で現実的ではありません。そのため、高速なNVMe SSD層と大容量ストレージ層を組み合わせた「階層型ストレージ」が基本的な構成となります。頻繁にアクセスするデータ(学習中のデータセットや直近のチェックポイントなど)はNVMe層に配置し、アーカイブデータや過去のモデルは大容量ストレージ層に分離する方法が考えられます。データのライフサイクルに応じて、高速層と大容量層の間でデータを移動させる運用も選択肢の一つです。

ここまで、ストレージ選定の判断軸を整理してきました。実際の選定では、データ量、予算、既存環境、GPU構成など、個別の要件を総合的に判断する必要があります。本章で示した指標を検討の出発点として、具体的な構成を進めていくことになります。

NTTPCが提供するGPU向けストレージソリューション

NTTPCでは、NVIDIA認定エリートパートナーとして、AI・HPC環境に適したストレージ製品を幅広く取り扱っています。具体的な構成の検討や製品選定でお悩みの場合は、NTTPCにお気軽にご相談ください。

構成設計の具体例として、Mantra株式会社様の導入事例もあわせてご覧ください。
▶︎ 文字認識×翻訳×画像編集で実現するマンガ自動翻訳~GPUクラスタとフルスタックエンジニアリングが支えるAI翻訳技術でエンターテインメントから言語の壁をなくす~

主に次の製品を取り扱っており、用途やワークロードに応じた最適化された構成をGPUサーバーとあわせて提案可能です。

  • DDN(DataDirect Networks)
  • Seagate
  • Dell Technologies
  • Supermicro

▶︎ ストレージ・ラインナップを見る

まとめ

本記事では、GPU環境におけるストレージの役割と、選定のポイントについて整理しました。GPUの処理能力がどれだけ高くても、データの供給が追いつかなければ、その性能を十分に発揮することはできません。AI・HPC環境では、ワークロードによって求められるストレージ性能も異なります。例えば、学習ではスループットやIOPS、推論ではレイテンシが重視されるため、それぞれの用途に適した構成を検討する必要があります。

NVMeストレージは、PCIeバスに直接接続することで、従来のSATA/SASと比べて高速なデータ転送を実現します。さらに、GPUDirect Storageを利用することで、CPUメモリを経由せずにストレージからGPUへデータを直接転送できるため、データ供給の遅れを抑えることができます。
ストレージを選定する際には、ワークロードの特性を踏まえ、GPU構成とのバランスを考慮した設計が重要です。

NTTPCでは、NVIDIA認定エリートパートナーとして、GPUサーバーとストレージを含めたシステム全体の設計を支援しています。導入前の相談から運用支援まで対応しておりますので、GPU環境のストレージ設計でお悩みの方はお気軽にお問い合わせください。

GPU製品・サービス

GPU製品・サービス

AI/IoT、デジタルツイン用途に適したGPUサーバーを設計・構築。さらにデータセンター・ネットワークなど、GPU運用に必要なシステムをワンストップで提供可能。

※NVIDIA、GPUDirect、CUDAは、米国およびその他の国におけるNVIDIA Corporationの商標または登録商標です。
※NVMeは、NVM Express, Inc.の登録商標です。その他の会社名および製品名は、各社の商標または登録商標です。