ホームページ  >  記事  >  テクノロジー周辺機器  >  システム設計の芸術: HPC および AI アプリケーションが主流になったとき、GPU アーキテクチャはどこに向かうべきでしょうか?

システム設計の芸術: HPC および AI アプリケーションが主流になったとき、GPU アーキテクチャはどこに向かうべきでしょうか?

WBOY
WBOY転載
2023-04-08 13:51:031330ブラウズ


システム設計の芸術: HPC および AI アプリケーションが主流になったとき、GPU アーキテクチャはどこに向かうべきでしょうか?

私たちは何年も前に、十分なデータを備えた畳み込みニューラル ネットワークを使用して AI ワークロードをトレーニングすることが成長トレンドになりつつあると述べました。世界中の HPC (ハイ パフォーマンス コンピューティング) センターは、長年にわたってこの負荷を NVIDIA の GPU 処理に引き渡してきました。シミュレーションやモデリングなどのタスクでは、GPU のパフォーマンスは非常に優れています。本質的に、HPC シミュレーション/モデリングと AI トレーニングは実際には一種の調和収束であり、GPU は超並列プロセッサとして、この種の作業の実行に特に優れています。

しかし、2012 年以降、AI 革命が正式に勃発し、画像認識ソフトウェアの精度が初めて人間を超えるレベルに向上しました。したがって、同様の GPU 上での HPC と AI の効率的な処理の共通性がどれくらい続くかについては、非常に興味があります。そこで 2019 年の夏、モデルの改良と反復を通じて、混合精度演算ユニットを使用して、Linpack ベンチマークでの FP64 計算と同じ結果を達成しようとしました。翌年、Nvidia が「Ampere」GA100 GPU を発売する前に、私たちは HPC と AI の処理性能を再度テストしようとしました。当時、Nvidia はまだ「Ampere」A100 GPU を発売していなかったので、グラフィック カードの巨人は混合精度の tensor コアで AI モデルをトレーニングすることに正式に傾いていませんでした。答えはもちろん明らかです。FP64 ベクトル ユニット上の HPC ワークロードには、GPU のパフォーマンスを最大化するためにいくつかのアーキテクチャの調整が必要です。それらがちょっとした「二級市民」であることは疑いの余地がありません。しかし、当時はまだすべてが可能でした。

今年初めに Nvidia の「Hopper」GH100 GPU が発売されたことにより、AI と HPC の間の世代間のパフォーマンス向上の差はさらに広がりました。それだけでなく、最近の秋の GTC 2022 カンファレンスで、Nvidia の共同創設者で CET の Huang Jensen 氏は、AI ワークロード自体も多様化しており、Nvidia は CPU ビジネスの探索を開始せざるを得なくなっている、あるいはより正確に言えば、そうすべきであると述べました。 GPU 指向の最適化された拡張メモリ コントローラーと呼ばれます。

この問題については後で詳しく説明します。

2つの花が咲き、両側に1つずつです。

まず、最も明確な判断から始めましょう。 Nvidia が気象モデリング、流体力学計算、有限要素解析、量子色力学、その他の高強度数学シミュレーションなどの 64 ビット浮動小数点 HPC アプリケーションをサポートするために、GPU に強力な FP64 パフォーマンスを持たせたい場合、アクセラレータの設計アイデアは次のようになります。次のように: テンソル コアや FP32 CUDA コア (主に CUDA アーキテクチャでグラフィックス シェーダーとして使用される) を持たない製品を作成します。

しかし、残念ながらそのような製品を購入する顧客は数百人だけなので、1 つのチップの価格は数万ドル、場合によっては数十万ドルになる可能性があります。設計と製造の費用がカバーされます。より大規模で収益性の高いビジネスを構築するために、Nvidia はベクトル演算機能が CPU よりも単純に強力な、より一般的なアーキテクチャを設計する必要があります。

したがって、NVIDIA は 15 年前に HPC アプリケーション向けの製品を真剣に設計することを決定して以来、地震処理、信号処理、ゲノミクス ワークロードでの使用を含む、FP32 浮動小数点演算演算を使用する HPC シナリオに焦点を当ててきました。単精度データと処理タスクを強化し、GPU の FP64 機能を段階的に向上させます。

2012 年 7 月に発売された K10 アクセラレータには、ゲーム グラフィックス カードで使用されている GPU と同じ「Kepler」GK104 GPU が 2 つ搭載されています。 1536 個の FP32 CUDA コアを備えており、専用の FP64 コアは使用しません。 FP64 のサポートは純粋にソフトウェアで行われるため、大幅なパフォーマンスの向上は見込めません。デュアル GK104 GPU は、FP32 タスクでは 4.58 テラフロップス、FP64 では 190 ギガフロップスで実行され、比率は 24 対 1 です。 2012 年末の SC12 スーパーコンピューティング カンファレンスでリリースされた K20X は、FP32 パフォーマンスが 3.95 テラフロップス、FP64 パフォーマンスが 1.31 テラフロップスで、比率が 3:1 に増加した GK110 GPU を使用しています。この時点までに、この製品は HPC アプリケーションおよびアカデミック/ハイパースケール コンピューティング領域で AI モデルをトレーニングするユーザー向けに初期利用可能になります。 K80 GPU アクセラレータ カードは 2 つの GK110B GPU を使用します。これは、NVIDIA が当時最上位の「Maxwell」GPU に FP64 サポートを追加しなかったためで、GK110 B が当時最も人気があり、コスト効率の高いオプションとなったためです。 K80 の FP32 パフォーマンスは 8.74 テラフロップス、FP64 パフォーマンスは 2.91 テラフロップスで、依然として 3 対 1 の比率を維持しています。

「Pascal」 GP100 GPU では、FP16 混合精度インジケーターの導入により HPC と AI の間のギャップがさらに広がりましたが、ベクトル FP32 とベクトル FP64 の比率はさらに 2:1 に変換されました。 「Volta」では、GV100 以降の「Ampere」GA100 や「Hopper」GH100 などの新しい GPU にも維持されています。 Volta アーキテクチャでは、NVIDIA は固定行列 Lei を備えた Tensor コア行列数学ユニットを初めて導入しました。これにより、浮動小数点 (および整数) の計算能力が大幅に向上し、アーキテクチャ内のベクトル ユニットは引き続き維持されました。

これらの tensor コアは、ますます大規模な行列を処理するために使用されますが、特定の計算精度はますます低下しているため、このタイプの機器は非常に誇張された AI ロード スループットを達成しています。もちろん、これは機械学習自体のあいまいな統計的性質から切り離すことはできず、また、ほとんどの HPC アルゴリズムで必要とされる高精度の数学との大きなギャップも残しています。以下の図は、AI と HPC のパフォーマンスの差を対数で表したもので、両者の傾向の違いがすでにおわかりいただけると思います。

システム設計の芸術: HPC および AI アプリケーションが主流になったとき、GPU アーキテクチャはどこに向かうべきでしょうか?

対数形式では十分に印象的ではありません。実際の比率を使用してもう一度見てみましょう:

システム設計の芸術: HPC および AI アプリケーションが主流になったとき、GPU アーキテクチャはどこに向かうべきでしょうか?

システム デザインの芸術: HPC および AI アプリケーションが主流になったとき、GPU アーキテクチャはどこに向かうべきでしょうか?

すべての HPC アプリケーションがテンソル コア用に調整できるわけではなく、すべてのアプリケーションが数学演算をテンソル コアに転送できるわけではないため、Nvidia は GPU アーキテクチャに一部のベクトル ユニットを保持しています。さらに、多くの HPC 組織は、HPL-AI のような反復ソルバーを実際に思いつくことができません。 Linpack ベンチマーク テストで使用される HPL-AI ソルバーは、FP16 と FP32 演算を備えた通常の HPL Linpack と、純粋な FP64 総当たり計算と同じ答えに収束するために少しの FP64 演算を使用します。この反復ソルバーは、オークリッジ国立研究所のフロンティア スーパーコンピューターでは 6.2 倍、理化学研究所の富岳スーパーコンピューターでは 4.5 倍の効果的な高速化を実現できます。より多くの HPC アプリケーションが独自の HPL-AI ソルバーを受け入れることができれば、AI と HPC の「分離」の問題は解決される、その日が来ると私は信じています。

しかし同時に、多くのワークロードでは、依然として FP64 のパフォーマンスが唯一の決定要因となります。そして、強力な AI コンピューティング能力で多額の利益を上げてきた Nvidia には、短期間に HPC 市場の世話をする時間は決して多くないでしょう。

さらに 2 つの花が咲き、それぞれ 1 つずつ枝分かれします

Nvidia の GPU アーキテクチャは、許容可能な HPC パフォーマンスを維持しながら、主により高い AI パフォーマンスを追求し、2 つの側面からのアプローチを使用していることがわかります。顧客は毎日、ハードウェアは 3 年ごとに更新されます。純粋な FP64 パフォーマンスの観点から見ると、Nvidia GPU の FP64 スループットは、2012 年から 2022 年までの 10 年間で、K20X の 1.3 テラフロップスから H100 の 30 テラフロップスまで 22.9 倍増加しました。テンソル コア マトリックス ユニットを反復ソルバーで使用できる場合、増加は 45.8 倍に達する可能性があります。ただし、低精度の大規模並列コンピューティングのみを必要とする AI トレーニング ユーザーの場合、FP32 から FP8 へのパフォーマンスの変化は誇張されており、初期の FP32 のコンピューティング能力は 3.95 テラフロップスから 4 ペタフロップスの FP8 スパースに増加しました。マトリックスは 1012.7 倍に向上しました。そして、当時の K20X GPU 上の FP64 エンコード AI アルゴリズム (当時の主流) と比較すると、過去 10 年間のパフォーマンス向上は情けないことにわずか 2 倍です。

明らかに、この 2 つのパフォーマンスの差は、それほど大きなものとは言えません。黄仁勲自身も、現在のAI陣営自体が再び2つに分かれていると述べた。 1 つのタイプは、トランスフォーマー モデルによってサポートされる巨大な基本モデルであり、大規模言語モデルとも呼ばれます。このようなモデルのパラメータの数は急速に増加しており、ハードウェアの需要も増加しています。以前のニューラル ネットワーク モデルと比較すると、次の図に示すように、今日のトランスフォーマー モデルは完全に別の時代を表しています。

システム設計の芸術: HPC および AI アプリケーションが主流になったとき、GPU アーキテクチャはどこに向かうべきでしょうか?

この図が少しぼやけていることをお許しください。ポイントは次のとおりです: 変圧器を含まない最初の AI モデルのセットでは、コンピューティング要件は 2 年間で 8 倍に増加しましたが、変圧器を含む AI モデルでは、コンピューティング要件は 2 年間で 275 倍に増加しました。浮動小数点演算が処理に使用される場合、需要を満たすにはシステム内に 100,000 個の GPU が必要になります (これは大きな問題ではありません)。ただし、FP4精度に切り替えると計算量が2倍になり、将来的にGPUに1.8nmトランジスタが採用されると計算能力は約2.5倍になるため、まだ55倍程度の差がある。 FP2 演算を実装できれば (そのような精度が問題を解決するのに十分であると仮定して)、計算量は半分に減りますが、それには少なくとも 250,000 個の GPU の使用が必要になります。さらに、大規模な言語変換モデルは拡張が難しいことが多く、特に経済的に実現可能ではありません。したがって、核兵器が強国のみにあるのと同じように、このタイプのモデルは巨大企業専用のものとなった。

「デジタル経済エンジン」としてのレコメンドシステムは、計算量が飛躍的に増加するだけでなく、大規模な言語モデルのメモリ容量をはるかに超えるデータ規模が必要となります。 GPU。 Huang Renxun は前回の GTC 基調講演で次のように述べました:

システム設計の芸術: HPC および AI アプリケーションが主流になったとき、GPU アーキテクチャはどこに向かうべきでしょうか?

「大規模な言語モデルと比較すると、推奨システムを処理する際に各コンピューティング ユニットが直面するデータ量は一桁大きくなります。明らかに、推奨システムはより高速なメモリ速度を必要とするだけでなく、その 10 倍のメモリ速度も必要とします。大規模言語モデルのモデルのメモリ容量。大規模言語モデルは時間の経過とともに指数関数的な成長を維持し、一定の計算能力を必要としますが、推奨システムもこの成長率を維持し、より多くのメモリ容量を消費し続けます。大規模言語モデルと推奨システムは、現在の AI モデルの 2 つの最も重要なタイプと言われており、コンピューティング要件が異なります レコメンデーション システムは、数十億のユーザーと数十億のアイテム、すべての記事、すべてのビデオ、すべてのソーシャル投稿に拡張可能 各埋め込みテーブルには、数十テラバイトのデータが含まれる可能性がありますデータを処理するには、複数の GPU で処理する必要があります。レコメンデーション システムを処理する場合、ネットワークの一部でデータの並列処理を実装する必要があり、ネットワークの他の部分でモデルの並列処理を実装する必要があるため、さまざまな部分でより高い要件が要求されます。

#次の図に示すように、推奨システムの基本的なアーキテクチャです。

システム設計の芸術: HPC および AI アプリケーションが主流になったとき、GPU アーキテクチャはどこに向かうべきでしょうか?

具体的なメモリ容量とこれを決定するのは帯域幅の問題であるため、NVIDIA は「Grace」Arm サーバー CPU を開発し、それを Hopper GPU と緊密に結合しました。また、必要なメイン メモリの量が非常に大きい場合、Grace は実際には Hopper のメモリ コントローラにすぎないという冗談もあります。しかし、長期的には、NVLink プロトコルを実行する多数の CXL ポートを Hooper の次世代 GPU に接続するだけかもしれません。

つまり、NVIDIA が製造した Grace-Hopper スーパー チップは、「子供」レベルの CPU クラスターを巨大な「大人」レベルの GPU アクセラレーション クラスターに組み込むことに相当します。これらの Arm CPU は従来の C および Fortran ワークロードをサポートできますが、代償が伴います。ハイブリッド クラスターの CPU 部分のパフォーマンスはクラスター内の GPU のパフォーマンスのわずか 10 分の 1 ですが、コストは 3 ~ 3 倍になります。従来のピュアCPUクラスタの5倍。

ところで、私たちは NVIDIA によるエンジニアリング上の選択を尊重し、理解しています。 Grace は優れた CPU であり、Hopper も優れた GPU であり、この 2 つの組み合わせは間違いなく良い結果をもたらします。しかし、現在起こっていることは、同じプラットフォーム上で 3 つの異なるワークロードに直面しており、それぞれがアーキテクチャを異なる方向に引っ張っているということです。高性能コンピューティング、大規模な言語モデル、推奨システム、これら 3 兄弟にはそれぞれ独自の特徴があり、コスト効率の高い方法でアーキテクチャを同時に最適化することはまったく不可能です。

そして、AI には大きな利点がある一方で、HPC は徐々に劣勢になっていることは明らかであり、この状況は 10 年近く続いています。 HPC が変革を完了したいのであれば、そのコードは FP64 上で既存の C および Fortran コードを実行することに固執し続けるのではなく、推奨システムや大規模な言語モデルに近づく必要があります。そして、HPC の顧客が AI の顧客と比較してあらゆる操作においてプレミアムを持っていることは明らかです。したがって、HPC の専門家が、より低い精度で物理世界をモデル化できる反復ソルバーの普遍的な開発方法を見つけ出さない限り、この消極的な状況を逆転させることは困難でしょう。

何十年もの間、私たちは自然そのものが数学的法則に従わないと常に感じてきました。私たちは自然の影響を説明するために高精度の数学を使用することを余儀なくされているか、客観的な現実を説明するために不適切な言語を使用しています。もちろん、自然は私たちが想像しているよりも微妙である可能性があり、反復ソルバーはモデル化したい現実に近づきます。もしこれが事実であれば、それは人類にとっての祝福であり、10 年前の HPC と AI の偶然の一致よりもさらに幸運かもしれません。

結局のところ、世界には道はなく、歩く人が増えると道になります。

以上がシステム設計の芸術: HPC および AI アプリケーションが主流になったとき、GPU アーキテクチャはどこに向かうべきでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事は51cto.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。