paint-brush
飢餓状態の GPU には高速オブジェクト ストレージが必要@minio
21,891 測定値
21,891 測定値

飢餓状態の GPU には高速オブジェクト ストレージが必要

MinIO6m2024/03/15
Read on Terminal Reader
Read this story w/o Javascript

長すぎる; 読むには

MinIO は、飢えた GPU に電力を供給するのに必要なパフォーマンスを提供します。最近のベンチマークでは、わずか 32 ノードの既製 NVMe SSD で GET で 325 GiB/s、PUT で 165 GiB/s を達成しました。

People Mentioned

Mention Thumbnail
featured image - 飢餓状態の GPU には高速オブジェクト ストレージが必要
MinIO HackerNoon profile picture

チェーンは最も弱いリンクと同じくらい強いですが、AI/ML インフラストラクチャの速度は最も遅いコンポーネントと同じです。 GPU を使用して機械学習モデルをトレーニングする場合、弱点はストレージ ソリューションである可能性があります。その結果が、私が「GPU 不足問題」と呼ぶものです。 GPU 不足の問題は、ネットワークまたはストレージ ソリューションが GPU を最大限に活用するのに十分な速さでトレーニング ロジックにトレーニング データを提供できない場合に発生します。症状はかなり明らかです。 GPU を監視していると、GPU が完全に活用されていないことに気づくでしょう。トレーニング コードをインストルメント化している場合は、合計トレーニング時間の大部分が IO によって占められていることがわかります。


残念ながら、この問題に取り組んでいる人にとっては悪いニュースです。この問題が今後数年間でさらに悪化する可能性があることを理解するために、GPU に関するいくつかの進歩を見てみましょう。

GPU は高速化しています

GPU は高速化しています。生のパフォーマンスが向上しているだけでなく、メモリと帯域幅も増加しています。 Nvidia の最新 GPU の 3 つの特徴を見てみましょう。 A100 H100そしてそのH200


GPU

パフォーマンス

メモリ

メモリ帯域幅

A100

624TFLOPS

40GB

1,555GB/秒

H100

1,979TFLOPS

80GB

3.35TB/秒

H200

1,979TFLOPS

141GB

4.8TB/秒

上の表は、A100 の PCIe (Peripheral Component Interconnect Express) ソケット ソリューションと、H100 および H200 の SXM (Server PCI Express Module) ソケット ソリューションに合わせた統計を使用しています。 A100 には SXM 統計が存在しません。パフォーマンスに関しては、浮動小数点 16 Tensor コアの統計が比較に使用されます。


上記の統計に関するいくつかの観察は注目に値します。まず、H100 と H200 のパフォーマンスは同じ (1,979 TFLOPS) であり、A100 の 3.17 倍です。 H100 には A100 の 2 倍のメモリがあり、メモリ帯域幅も同様の量だけ増加しています。これは当然のことですが、そうでないと GPU 自体が枯渇してしまいます。 H200 は 141GB という驚異的なメモリを処理でき、そのメモリ帯域幅も他の GPU に比べて比例して増加しました。


これらの各統計をさらに詳しく見て、それが機械学習にとって何を意味するかについて説明します。


パフォーマンス- テラフロップス (TFLOP) は、1 秒あたり 1 兆 (10^12) の浮動小数点演算です。これは、1 の後にゼロが 12 個付いたもの (1,000,000,000,000) です。モデルのトレーニング中に発生する浮動小数点演算には単純なテンソル計算と、損失関数 (勾配とも呼ばれます) に対する一次導関数が含まれるため、TFLOP をギガバイト単位の IO 需要と同等に扱うのは困難です。ただし、相対比較は可能です。上記の統計を見ると、H100 と H200 は両方とも 1,979 TFLOPS でパフォーマンスが 3 倍高速であることがわかります。他のすべてが追いつくことができれば、データの消費速度は 3 倍になる可能性があります。


GPU メモリ- ビデオ RAM またはグラフィックス RAM とも呼ばれます。 GPU メモリはシステムのメイン メモリ (RAM) から分離されており、グラフィックス カードによって実行される集中的なグラフィック処理タスクを処理するように特別に設計されています。 GPU メモリは、モデルをトレーニングするときのバッチ サイズを決定します。以前は、トレーニング ロジックを CPU から GPU に移動するときにバッチ サイズが減少していました。ただし、GPU メモリが容量の点で CPU メモリに追いつくと、GPU トレーニングに使用されるバッチ サイズが増加します。パフォーマンスとメモリ容量が同時に増加すると、結果としてリクエストが大きくなり、各ギガバイトのトレーニング データがより速く処理されます。


メモリ帯域幅- GPU メモリ帯域幅は、メモリと計算コアを接続する「高速道路」と考えてください。単位時間あたりに転送できるデータ量が決まります。高速道路の幅が広ければ一定時間内により多くの車が通過できるのと同じように、メモリ帯域幅が高くなるとメモリと GPU の間でより多くのデータを移動できるようになります。ご覧のとおり、これらの GPU の設計者は、新しいバージョンごとにメモリに比例してメモリ帯域幅を増加させました。したがって、チップの内部データバスがボトルネックになることはありません。

未来への展望

2023 年 8 月に、Nvidia 発表された加速コンピューティングと生成 AI のための次世代プラットフォームである GH200 グレース ホッパー スーパーチップ プラットフォーム。新しいプラットフォームでは、グレース・ホッパー・スーパーチップ、追加のスーパーチップと接続できます。 NVIDIA NVリンク、モデルのトレーニングと推論中に共同作業できるようになります。


Grace Hopper スーパーチップのすべての仕様は以前のチップに比べて改善されていますが、AI/ML エンジニアにとって最も重要な革新はそのユニファイド メモリです。 Grace Hopper は、GPU に CPU のメモリへのフル アクセスを許可します。これは重要です。なぜなら、これまで、トレーニングに GPU を使用したいエンジニアは、まずデータをシステム メモリに取り込み、そこからデータを GPU メモリに移動する必要があったからです。 Grace Hopper を使用すると、GPU にデータを取得するために CPU のメモリをバウンス バッファとして使用する必要がなくなります。


いくつかの主要な GPU 統計と Grace Hopper の機能を単純に比較することは、GPU をアップグレードし、他のすべての機能が維持できるようにする責任を負っている人にとっては、少し怖いものに違いありません。ストレージ ソリューションは、これらの GPU の改善に対応するために、より高速な速度でデータを提供する必要があります。 GPU の空き容量の問題に対する一般的な解決策を見てみましょう。

一般的な解決策

この問題には、組織が既存のストレージ ソリューションを交換またはアップグレードする必要のない、一般的で明白な解決策があります。既存のストレージ ソリューションをそのまま維持できるため、組織が必要とするすべてのエンタープライズ機能を活用できます。このストレージ ソリューションは、組織のすべての非構造化データを保持するデータ レイクである可能性が高く、非常に大規模になる可能性があるため、総所有コストが考慮されます。また、冗長性、信頼性、セキュリティを実現する多くの機能も備えており、これらはすべてパフォーマンスに影響を与えます。


ただし、できることは、コンピューティング インフラストラクチャと同じデータ センターにストレージ ソリューションをセットアップすることです。理想的には、これはコンピューティングと同じクラスター内にあります。利用可能な最高のストレージ デバイスを備えた高速ネットワークがあることを確認してください。そこから、ML トレーニングに必要なデータのみをコピーします。


アマゾンが最近発表したAmazon S3 Express 1 ゾーンはこのアプローチの例です。これは、高スループットと低遅延向けに最適化されたバケット タイプであり、単一のアベイラビリティ ゾーン (レプリケーションなし) に制限されます。 Amazon の目的は、顧客が高速アクセスを必要とするデータのコピーを保持するために Amazon を使用することです。したがって、モデルのトレーニング専用に構築されています。 Amazon によると、S3 Standard の 8 倍のコストで 10 倍のデータ アクセス速度を提供します。 Amazon S3 Express One Zone の評価について詳しく読むここ

MinIO ソリューション

上で概説した一般的なソリューションでは、AWS はコストを高めて特殊なバケットを提供することで S3 ストレージ ソリューションをカスタマイズする必要がありました。さらに、一部の組織 (MinIO の顧客ではない) は、上で説明した簡単な処理を実行する特殊なストレージ ソリューションを購入しています。残念ながら、比較的単純な問題を解決するには新しい製品が必要となるため、既存のインフラストラクチャがさらに複雑になります。


これらすべての皮肉なことに、MinIO の顧客には常にこのオプションが用意されていました。 NVMe ドライブを備えた高速ネットワーク上に MinIO を新規インストールすると、上で説明したことを正確に行うことができます。 MinIO はソフトウェア デファインド ストレージ ソリューションです。同じ製品が、さまざまなストレージ デバイスを使用してベア メタルまたは選択したクラスター上で実行されます。企業の Data Lake が HDD を備えたベアメタル上で MinIO を使用しており、それがすべての非 ML データに対して正常に動作している場合、それを置き換える理由はありません。ただし、GPU を使用しているために ML に使用されるデータセットでより高速な IO が必要な場合は、この投稿で概説したアプローチを検討してください。 MinIO の高速インスタンスで使用するために、必ず ML データのコピーを作成してください。ゴールド コピーは、強化された MinIO インストール内に常に存在する必要があります。これにより、MinIO の高速インスタンスでレプリケーションや暗号化などの機能をオフにすることができ、パフォーマンスがさらに向上します。 MinIO を使用するとデータのコピーが簡単になりますミラーリング特徴。



MinIO は、飢えた GPU に電力を供給するのに必要なパフォーマンスを提供します。最近のベンチマークわずか 32 ノードの既製 NVMe SSD で、GET で 325 GiB/s、PUT で 165 GiB/s を達成しました。


ダウンロードMinIO今日は、データ レイクハウスを構築することがいかに簡単かを学びましょう。ご質問がございましたら、必ずお問い合わせください。スラック


ここにも登場します。