※ 本記事は、Pinkesh Valdriaによる”Accelerate AI and ML workloads with OCI, NVIDIA Magnum IO GPUDirect Storage, and IBM Storage Scale“を翻訳したものです。

2023年9月29日


モデル・サイズの増加およびコンピューティング・ニーズの拡大には、NVIDIA GPUおよび共有データの単一ノード以上が必要です。複数のGPUコンピュート・ノードにまたがるIBMソフトウェア定義ストレージは、NVIDIA Magnum IOアクセラレーテッド通信のメリットを享受したデータ・プラットフォームを作成します。ハイパーコンバージド・クラスタは、迅速にデプロイされ、高いパフォーマンスを実現し、非常に効率的です。

NVIDIAおよびIBMと協力して、Oracle Cloud Infrastructure (OCI)は、リモート・ダイレクト・メモリー・アクセス(RDMA)と相互接続されたベア・メタルNVIDIA A100 Tensor Core GPUコンピュート・ノードのハイパーコンバージド・クラスタを使用して、OCI上でNVIDIA Magnum IOストレージを検証しました。各ノードには、8つのNVIDIA A100 40GB SXM GPU、16の100Gbps RDMAネットワーク・インタフェース・カード(NIC)、4つの6.8TB (27.2TB)のローカル非エフェメラルNVMeソリッド・ステート・ドライブ(SSD)が付属しています。IBM Storage Scaleのパラレル・ファイル・システムを使用して、すべてのGPUノードからSSDを使用して単一のグローバル・ネームスペースを構築しました。

OCIは、NVIDIA A100 GPUをベア・メタル・オファリングとして提供し、NVIDIA Magnum IO GPUDirect Storage (GDS)の前提条件を提供する最初の主要なクラウド・サービス・プロバイダです。OCIでは、GDSを使用して、ストレージI/Oのパフォーマンスを大幅に向上させ、レイテンシを下げ、帯域幅を増やすことでGPUのパフォーマンスを最大化できます。GPUアプリケーションとGDSは、CPUおよびホスト・メモリーの使用を大幅に削減し、コンバージド・アーキテクチャでストレージ・ノードとコンピュート・ノードを実行できるようにします。このソリューションは拡張性が高く、総所有コスト(TCO)を低く抑えることができます。

GDSの利点は次のとおりです:

  1. DeepCam推論ベンチマーク: 気候シミュレーション・データでハリケーンおよび大気河川の識別に使用されるアプリケーションのパフォーマンスを示し、GDSを有効にすると、帯域幅(GB/秒)とスループット(サンプル/秒)がほぼ1.5倍向上
  2. RAPIDS cuDF Parquetリーダー・ベンチマーク: GPU加速Pythonライブラリのオープン・ソース・スイートを使用して、データ・サイエンスと分析パイプラインを改善し、GDSで最大7倍の改善を実現
  3. gdsioストレージ・ベンチマーク: ストレージIO負荷生成ツールを使用して、ストレージのパフォーマンスを分析し、最大3.5倍の帯域幅、最大3.5倍の低レイテンシ、および低CPU使用率を実現

 

NVIDIA Magnum IO GPUDirect Storageとは?

データセットのサイズが大きくなると、データのロードに要する時間がアプリケーションのパフォーマンスに影響する可能性があります。NVIDIA GPUDirect Storageは、GPUメモリーとローカル・ストレージまたはリモート・ストレージの間でRDMAのダイレクト・データ・パスを作成します(NVMeまたはNVMe over Fabrics (NVMe-oF)など)。ネットワーク・アダプタまたはストレージの近くでダイレクト・メモリー・アクセス(DMA)エンジンを有効にすると、データがGPUメモリー内またはGPUメモリー外に移動されるため、CPUを介したバウンス・バッファが回避されます。このダイレクト・パスによって、システム帯域幅が増加し、CPUのレイテンシおよび使用率の負荷が減少します。

IBM Storage Scaleとは?

IBM Storage Scaleは、高パフォーマンスのファイル・システムの業界リーダーです。基礎となるパラレル・ファイルシステム(GPFS)は、スケーラブルなスループットと低レイテンシのデータ・アクセス、および優れたメタデータ・パフォーマンスを提供します。

IBM Storage Scaleは、一般的なデータ・パターン、NVIDIA GPUDirect Storageおよびランタイム・コントロールに最適化されており、小規模なファイル、複数のプロトコル、メタデータ操作の最適化など、データ・パフォーマンスをアプリケーションのニーズにあわせて調整します。複数のディレクトリまたは多数のファイルにデータを分散する多くのワークロードでは、高速ディレクトリおよびファイル管理が必要です。

IBM Storage Scaleは、システム間で単一のネームスペースまたはデータ・プレーンを作成します。この単一のデータ・プレーンを使用すると、データ管理者、アナリストまたはデータ・サイエンティストがすべてのデータに1箇所でアクセスできます。取込みから推論まで、データ・パイプライン全体を完了できるため、より多くのコピーを作成したり、システム間でデータを移動する必要がありません。

 

リファレンス・アーキテクチャ

次の図は、GPUコンピュート・アプリケーションとストレージ・サーバーが同じノードで実行される、ハイパーコンバージド・クラスタを示しています。使用可能なストレージ容量の要件、シェアードナッシング・アーキテクチャ上のレプリケーションがないデータ・レジリエンシ、またはレプリケーションとイレイジャ・コーディングを使用したデータ・レジリエンシ、およびクラスタ内で使用可能なGPUノード数(N)に応じて、ストレージ・スケール・ファイル・サーバーを実行するためにすべてのノードまたは少数のノード(M)のみを使用するかどうかを柔軟に決定できます。Mの値は、3つ以上のノードと最大Nノードです。シェアードナッシング・アーキテクチャを使用する場合、Mは3つ以上のノードである必要があります。Storage Scale Erasure Coded Editionを使用する場合、Mは6ノード(4+2P)以上である必要があります。ストレージ・スケール・クライアントは、すべてのGPUノードで実行されます。

A graphic depicting the architecture for a deployment of an OCI A100 GPU cluster with NVIDIA GDS and IBM Storage Scale.

図1.GPUアプリケーションとストレージを同じノードで実行するハイパーコンバージド・クラスタのリファレンス・アーキテクチャ。

 

Testbed

RoCEv2 RDMAと相互接続された3つのGPUノード(8つのNVIDIA A100 40GB SXM、16の100Gbps RDMA、4つの6.8TB NVMe SSD)のハイパーコンバージド・クラスタを作成しました。すべてのノードからSSDを使用してIBM Storage Scaleを実行することで、単一のグローバル・ストレージ・ネームスペースを作成しました。DeepCam推論では、RAPIDS cuDF Parquetリーダーと、gdsioやelbenchoなどのストレージ・ベンチマークが実行されました。cufile.jsonで8つのRDMA NICを使用するようにtestbedを構成しました。ただし、使用するRDMA NICを少なくするか、または増やすように構成できます。12台のNSDドライブとして構成された12台のNVMeドライブで75TBの使用可能なストレージ容量の単一ネームスペースを作成するために、シェアードナッシング・アーキテクチャ・モード(レプリケーションなしおよびイレイジャ・コーディングなし)でストレージ・スケールを構成しました。

A graphic depicting the architecture for the testbed cluster nodes.

図2. 3つのノードを持つハイパーコンバージド・クラスタのテスト済クラスタ

ノードは次のソフトウェアパッケージを実行しました:

  1. Ubuntu 20.04 (5.15.0-1030-oracle)
  2. NVIDIA MOFED 5.4-3.6.8.1
  3. Storage Scale 5.1.6.1
  4. NVIDIA Drivers 525.85.12-1
  5. NVIDIA CUDA-11.8

 

ベンチマーク

DeepCam推論ベンチマーク

DeepCam推論ベンチマークを使用して、気候シミュレーションデータにおけるハリケーンと大気河川の識別に使用されるアプリケーションのパフォーマンスを示します。単一ノード(8 GPU)および3ノード(24 GPU)推論実行でGDSが有効になっている場合、GB/秒での高帯域幅とサンプル数/秒でのスループットがほぼ1.5倍向上しました。

 単一ノードおよび3ノード・テストのDeepCam推論ベンチマーク結果

ノード数 IO Type GDS enabled GDS disabled GDS gain
1 Node (8 GPUs) Max bandwidth GB/s 35.59 23.94 1.48 times
Max throughput samples/sec 674.88 459.76 1.47 times
3 Nodes (24 GPUs) Max bandwidth GB/s 81.53 57.31 1.42 times
Max throughput samples/sec 1546.12 1086.64 1.42 times

 

 

 

 

 

 

 

 

 

 

 

単一ノード(8-GPU)推論

 

 

A chart showing the max bandwidth in GB/s and max throughput in samples/sec for a single-node 8-GPU inference test.

図3. GDSが有効化および無効化されている単一ノードの8-GPU DeepCam推論テストの最大帯域幅およびスループットを示します

 

3ノードの24GPU推論

A chart showing the max bandwidth in GB/s and max throughput in samples/sec for a three-node 24-GPU inference test.

図4. GDSが有効化および無効化されている3ノードの24-GPU DeepCam推論テストの最大帯域幅およびスループットを示します

 

GDSIOベンチマーク

NVIDIAは、GDSのパフォーマンスを測定するためのgdsioツールを提供します。次の表は、IBM Storage Scaleシステムに対してシミュレーションされた様々なIO転送サイズを使用して、OCIでの通常のIOパフォーマンスに対するGDSのパフォーマンスをまとめたものです。

テストした最大IO転送サイズに対してGDSが有効になっているため、READパフォーマンスが最大2.7倍向上しました。

gdsio read gain

表2.異なるIO転送サイズに対してGDSが有効になっている場合のREADパフォーマンスの向上(GDSゲイン)を示します

 

A bar graph comparing the read bandwidth in GB/s and GDS gain for different IO transfer sizes with GDS enabled and disabled.

図5.GDSの有効化および無効化による様々なIO転送サイズの読取り帯域幅(GB/s)およびGDSゲイン

 

図6は、GDSが最大3.5倍の高帯域幅および最大3.5xの低レイテンシを実現することを示しています。

A bar graph comparing GPUDirect IO throughput and transfer size with latencies.

図6.GDSのIOテストでは、GDSの有無に関係なく、異なるIO転送サイズに対して最大3.5倍の大きいスループットと最大3.5倍の低いレイテンシが示されます

 

図7は、GDSが有効になっている場合のCPU使用率の低下を示しています。

A bar chart comparing GPUDirect CPU utilization of throughput in GiB/s and IO transfer size to user space CPU utilization percentage.

図7.GDSの有無にかかわらず、様々なIO転送サイズのCPU使用率およびスループットを表示

 

図8は、GPUスレッド数に対する帯域幅と待機時間を示しています。

A table showing the bandwidth and latency performance against worker threads per GPU for GDS.

表3.GDS有効または無効のGPU当たりのワーカー・スレッド数に対する帯域幅およびレイテンシ・パフォーマンスを表示

 

A bar graph showing GPU thread scaling comparing bandwidth in GiB/s, thread count, and latency.

図8.GDS有効または無効のGPU当たりのワーカー・スレッド数に対する帯域幅およびレイテンシ・パフォーマンスを表示

 

結果は、GDSが有効になっていると、READスループットのパフォーマンスが向上し、レイテンシが減少し、CPU使用率が削減されることを示しています。

 

RAPIDS cuDF Parquet Readerベンチマーク

RAPIDS cuDF Parquet Readerベンチマークは、パフォーマンスの向上を測定するために、GDSが有効または無効になっているRAPIDS cuDFと併用した場合の、ParquetやORCなどの一般的なデータ型の読み取りIOパフォーマンスを評価します。

ベンチマークでは、GDSを使用したParquetファイルの読取りが7.2倍改善されました。

GDSでのRAPIDS cuDF Parquetリーダーのパフォーマンス向上

Data type Cardinality Run length GPU time GDS enabled GPU time GDS disabled GDS gain
INTEGRAL 0 1 64.400 ms 464.772 ms 7.21 times

 

 

 

 

 

Elbenchoベンチマーク

Elbenchoは、CPUとGPUの両方でファイル、オブジェクトおよびブロック・ストレージのパフォーマンスを測定するために使用されるオープン・ソース・ツールです。Elbenchoツールは、CPU、GPUおよびGDSフラグを使用した直接IO読取り操作をシミュレートして、ストレージ・スケール・パフォーマンスを示すために使用します。

GDSを使用した単一ホスト・テストでは37.5 GB/sを達成し、3ノード・テストでは、パフォーマンスはNVMe SSDでストレージ・バインドされたため、わずか50GB/sでした。ノード当たりのSSDの数を増やすことで、この制限を克服できると考えています。NVIDIA H100 GPUノードには、テストしたA100 GPUノードより4回改善された16のNVMe SSDが含まれています。

A bar chart showing Elbencho single-host performance comparing bandwidth in MiB/s, IO type, and latencies.

図9.単一ホストのパフォーマンスのためのElbenchoベンチマーク

次の図は、Elbenchoマルチホスト分散ベンチマークの結果を示しています。この場合、3つのGPUノードすべてを使用して、クラスタ全体の分散IOをシミュレートしました。

A bar chart showing Elbencho distributed host performance results.

図10. 3ホストパフォーマンスのためのElbenchoベンチマーク

 

まとめ

GDSを利用することで、人工知能および機械学習アプリケーションは、ストレージ・パフォーマンスによって制限されることなくGPUパフォーマンスを最大化し、ハイパーコンバージド・クラスタで実行しながらTCOを低くして実行できるため、より効率的に実行できます。

NVIDIA、IBM、OCIの次のチーム・メンバーに、その貢献について感謝の意を表します:

OCI上のGDSソリューションの詳細は、Oracle Sales担当者に問い合せて、Oracle Cloud Infrastructureストレージ・スペシャリスト・チームと相談してください。

詳細は、次のリソースを参照してください: