Nvidia の新しい Rubin GPU は、ソフトウェア エミュレーションを活用して HPC 向けの FP64 パフォーマンスを強化し、この手法の実世界への適用可能性に関して AMD が明言したにもかかわらず、この分野での最近の AMD のリードに挑戦しています。倍精度浮動小数点計算 (FP64) は、最新の HPC および科学計算アプリケーションに不可欠です。 Nvidia が新たに発表した Rubin GPU は、エミュレーションなしで 33 テラフロップスのピーク FP64 パフォーマンスを提供します。これは、4 年前の H100 よりも 1 テラフロップス少ないです。 Nvidia の CUDA ライブラリでソフトウェア エミュレーションが有効になっているため、このチップは最大 200 テラ FLOPS の FP64 マトリックス パフォーマンスを達成できると報告されています。これは、今後発売される Blackwell アクセラレータのハードウェア機能の 4.4 倍の増加に相当します。 Nvidia のスーパーコンピューティング製品担当シニア ディレクターである Dan Ernst 氏は、「パートナーとの多くの研究と当社独自の内部調査を通じて、エミュレーションから得られる精度は、ハードウェアのテンソル コアから得られる精度と少なくとも同等であることがわかりました。」と述べました。 AMDフェローのNicholas Malaya氏は、「一部のベンチマークでは非常に優れているが、実際の物理科学シミュレーションでは優れていることは明らかではない」と述べた。 Malaya 氏は、FP64 エミュレーションにはさらなる研究と実験が必要であると示唆しました。 FP64 は、18.44 京 (264) 固有の値。逆に、DeepSeek R1 のような最新の AI モデルは、256 個の一意の値を表現できる FP8 で頻繁にトレーニングされます。 HPC シミュレーションは基本的な物理原理に依存しているため、AI ワークロードとは異なり、エラーが許容されません。 Malaya 氏は、「エラーが発生し始めるとすぐに、これらの有限エラーは伝播し、爆発のような事態を引き起こします。」と説明しました。 FP64 をエミュレートするために低精度のデータ型を使用するという概念は新しいものではありません。 Ernst 氏は、「エミュレーションは古いものです。浮動小数点用のハードウェアが登場する前に、エミュレーションは 50 年代半ばにありました。」と述べました。 2024 年の初めに、東京工業大学と芝浦工業大学の研究者らが、この概念を調査した論文を発表しました。彼らの手法は、FP64 行列演算が複数の INT8 演算に分解され、Nvidia の Tensor コアでネイティブよりも高いパフォーマンスを達成できることを示しました。 Ozaki スキームとして知られるこのアプローチは、昨年末にリリースされた Nvidia の FP64 エミュレーション ライブラリの基礎を形成しています。 Ernst 氏は、「これはまだ FP64 です。混合精度ではありません。ハードウェアの観点から異なる方法で実行および構築されているだけです。」と明言しました。最新の GPU には、低精度の tensor コアが含まれています。たとえば、Rubin の tensor コアは、35 ペタ FLOPS の高密度 FP4 コンピューティングが可能です。 FP64 では、これらのチップは 1,000 倍以上遅くなります。 Ernst 氏は、これらの低精度テンソル コアの構築と実行の効率が、FP64 計算での使用の探求を促したと説明しました。 「ハードウェアはあるので、使ってみましょう。それがスーパーコンピューティングの歴史です。」と彼は言いました。 AMDはFP64エミュレーションの精度について懸念を表明した。 Malaya 氏は、High Performance Linpack (HPL) ベンチマークを引用して、FP64 エミュレーションが適切に調整された数値システムで良好にパフォーマンスすることを示しました。しかし、「材料科学、燃焼コード、帯状線形代数システムなどを見ると、それらははるかに条件の悪いシステムであり、突然壊れ始めます」と彼は言いました。 Malaya 氏は、Nvidia のアルゴリズムでは、正のゼロと負のゼロ、数値エラーや無限数エラーなどのニュアンスが考慮されていないため、FP64 エミュレーションは完全には IEEE に準拠していないと指摘しました。エミュレーションのための中間操作における小さなエラーが不正確さを引き起こす可能性があります。これを軽減するために操作を増やすと、パフォーマンスの利点が損なわれる可能性があります。 Malaya 氏はまた、「FP64 行列をエミュレートするために Ozaki の約 2 倍のメモリ容量を使用していることを示すデータがある」とも報告しました。したがって、AMD は倍精度と単精度に特化したハードウェアに焦点を当てており、次期 MI430X ではチップレット アーキテクチャを利用してパフォーマンスを強化しています。 Ernst 氏は、Nvidia の実装にギャップがあることを認めました。彼は、正負のゼロはほとんどの HPC 実践者にとって重要ではないと主張しました。 Nvidia は、非数値や無限数などの問題を検出して軽減するための補足アルゴリズムを開発しました。メモリ消費量に関して Ernst 氏は、メモリ消費量がさらに高くなる可能性があることを認めましたが、このオーバーヘッドはアプリケーションではなく操作に関連しており、通常は数ギガバイトの行列が含まれると述べました。同氏はまた、IEEE 準拠の問題は行列乗算の場合には起こらないことが多いと主張した。 「IEEE 準拠の順序付けルールが適用されるユースケースのほとんどは、行列や行列の乗算のケースには現れません。とにかく、実際にそのルールに従う傾向のある DGEMM は存在しません」と Ernst 氏は共有しました。 FP64 エミュレーションは主に、DGEMM (Dense General Matrix Multiply) 演算に依存する HPC アプリケーションのサブセットに対して効果的です。 Malaya は、HPC ワークロードの 60 ~ 70% において、エミュレーションによるメリットは最小限であると推定しています。 「私たちの分析では、実際の HPC ワークロードの大部分は DGEMM ではなくベクトル FMA に依存しています」と同氏は述べています。数値流体力学などのベクトルを多用するタスクの場合、Rubin GPU は CUDA コア内の低速の FP64 ベクトル アクセラレータで動作します。 Ernst 氏は、メモリ帯域幅によって現実のパフォーマンスが制限されることが多いため、FLOPS が高くても必ずしも有用な FLOPS が得られるわけではないことを強調しました。同氏は、TOP500 のベクトルを多用した高性能共役勾配ベンチマークについて言及しました。このベンチマークでは、メモリ サブシステムの FLOPS あたりのビット数が高いため、CPU がリードすることがよくあります。 Nvidia の Blackwell GPU と Rubin GPU を統合した新しいスーパーコンピューターにより、FP64 エミュレーションの実現可能性がテストされます。アルゴリズムは特定のハードウェアから本質的に独立しているため、時間の経過とともに潜在的な改善が可能になります。 Malaya氏は、AMDが適切なアプリケーションを特定するためにソフトウェアフラグを介してMI355Xなどのチップ上でFP64エミュレーションを検討していることを認めた。同氏は、エミュレーションと専用シリコンの間で一貫した結果を保証することで、IEEE 準拠によりこのアプローチが検証されるだろうと述べた。 Malaya 氏は、「パートナーのところに行って、この 2 つのバイナリを実行してくださいと言うことができれば、これはもう一方と同じ答えが得られ、より高速です。そして、内部では何らかの計画を実行しています。これは、ゴールデンタイムに向けた説得力のある議論だと考えてください。」と述べました。同氏は、エミュレーションを使用すると特定のアプリケーションの信頼性が高まる可能性があると付け加え、「コミュニティとして、注目すべきアプリのバスケットを構築する必要がある」と示唆した。

  Best Kid Icarus: 蜂起するキャラクター

注目の画像クレジット

Source: Nvidia Rubin GPU: ソフトウェア エミュレーションによる 200 テラFLOPS FP64