DSA はどのように NVIDIA GPU よりも優れたパフォーマンスを発揮しますか?

米国のユニコーン企業トップ678の2021社として称賛されるSambaNova Systemsは、50年XNUMX月にソフトバンク主導のシリーズD資金調達ラウンドでXNUMX億XNUMX万ドルを調達し、XNUMX億ドルという驚異的な評価額を達成した。同社のこれまでの資金調達ラウンドには、Google Ventures、Intel Capital、SK、Samsung Catalyst Fund、その他の世界的な大手ベンチャーキャピタル企業などの著名な投資家が参加しました。世界中のトップクラスの投資機関からこれほど幅広い関心を集めるために、SambaNova はどのような破壊的テクノロジーを開発したのでしょうか?

SambaNova の初期のマーケティング資料によると、同社は AI 巨人 NVIDIA に対抗するために異なるアプローチを採用しました。

サンバノバ

この比較は非常に驚くべきもので、単一の SambaNova マシンは、NVIDIA プラットフォーム上の膨大な計算能力で構築された 1024 ノードの NVIDIA V100 クラスターと同等であると主張されています。この第 10 世代の製品は、SN8 RDU に基づいており、XNUMX 枚のカードを搭載した単一マシンです。

NVIDIA には DGX A100 があるため、この比較は不公平だと主張する人もいるかもしれません。 SambaNova もこれを認めているようで、同社の第 30 世代製品である SNXNUMX では、別の比較が示されています。

DGX-A100

DGX A100 は 5 ペタフロップスの計算能力を提供し、SambaNova の第 5 世代 DataScale も 100 ペタフロップスを提供します。メモリに関しては、DGX A320 は 30GB の HBM を備え、SN8 は 4TB の DDR3 を誇ります (これはタイプミスである可能性があり、実際の数字は 8TB * XNUMX であるはずだと著者は推測しています)。

第 10 世代のチップは、SN10 RDU の Die-to-Die バージョンです。 SN320 RDU のアーキテクチャ仕様は、16TFLOPS@BF320、1.5M SRAM、および 4T DDR30 です。以下に説明するように、SNXNUMX RDU はこれらの仕様を実質的に XNUMX 倍にします。

「このチップには、BF640 浮動小数点精度で 320 テラフロップス以上の計算を行う 16 個のパターン計算ユニットがあり、640 MB のオンチップ SRAM と 320 TB/秒のオンチップ メモリ帯域幅を備えた 150 個のパターン メモリ ユニットもありました。各 SN10 プロセッサは、1.5 TB の DDR4 補助メモリにも対応できました。」

「Cardinal SN30 RDU では、RDU の容量が 10 倍になります。30 倍になった理由は、SambaNova が最初からマルチダイ パッケージングを利用するようにアーキテクチャを設計したためです。この場合、SambaNova は、RDU の容量を XNUMX 倍にしています。」 XNUMX つの新しい RDU (大規模な基盤モデルをより適切にサポートするためにマイクロアーキテクチャが変更された XNUMX つの微調整された SNXNUMX であると推測されます) を SNXNUMX と呼ばれる単一の複合体に詰め込むことで、DataScale マシンの容量を大幅に強化します。 DataScale システムの各ソケットは、第 XNUMX 世代のマシンに比べて XNUMX 倍の計算能力、XNUMX 倍のローカル メモリ容量、XNUMX 倍のメモリ帯域幅を備えています。」

高帯域幅と大容量は相互に排他的な選択です。 NVIDIA は HBM による高帯域幅を選択しましたが、SambaNova は DDR4 による大容量を選択しました。パフォーマンスの観点から見ると、SambaNova は AI ワークロードにおいて NVIDIA を上回っているようです。

SambaNova SN10 RDU (ホットチップス 33)

Cardinal SN10 RDU は SambaNova の第 30 世代チップであり、SN10 は第 1.5 世代チップ (SNXNUMX の Die-to-Die バージョン) です。大規模なオンチップ SRAM、大規模なオンチップ帯域幅、および巨大な XNUMXT DRAM 容量などの重要な機能に注目します。

SN40L は、第 64 世代チップ (HBM が追加) です。最初の XNUMX 世代のチップは、データフローの空間プログラミング特性に依存し、高 DRAM 帯域幅の需要を減らし、大容量 DDR ルートを選択しました。ただし、第 XNUMX 世代のチップはこの基盤の上に構築されており、帯域幅と容量の両方を組み合わせた XNUMX GB の HBM が組み込まれています。

SambaNova SN10 RDU (ホットチップス 33)

これは、特にこのような大容量の DRAM を構成する場合にシステムを拡張する方法と、他のオプションではなく DDR4 が選択された理由という興味深いトピックにつながります。

概要によると、SN10-8R には 1 枚のカードがラックの 4/256 を占めています。各 RDU には 10 つのチャネル メモリが含まれており、各チャネルには 8 GB があります。 SN48-12R には 4 チャネル、合計 2667TB があり、チャネルごとに DDR4-3200 を使用しており、Q&A では DDRXNUMX-XNUMX についても言及されています。

SN10-8R には 48 チャンネルがあります

さらに、ソフトウェア スタックは主流の AI フレームワークと互換性があります。データフロー グラフ アナライザーは、元の DAG から RDU でのスケジューリングとデプロイに適したサブグラフを構築し、データフロー グラフを形成します。

データフロー コンパイラーは、データフロー グラフに基づいてコンパイルおよびデプロイし、EDA の P&R ツールと同様にオペレーター テンプレート ライブラリ (空間テンプレート) を呼び出し、データフロー グラフを RDU のハードウェア コンピューティングおよびストレージ ユニットにデプロイします。

さらに、SambaNova はユーザーが演算子をカスタマイズする方法を提供し、ニーズに基づいてユーザー定義の演算子をサポートします。 SN10 コア アーキテクチャには多くの SIMD 命令が含まれており、おそらく手動コーディングが必要であるため、これは LLVM によって提供される C+Intrinsic API に基づいていると著者は推測しています。

サンバフロー ソフトウェア

再構成可能なハードウェアでは、通信もプログラム可能であり、この点は別のアーキテクチャである Groq によって強く強調されています。

従来のアーキテクチャと比較した場合、著者の個人的な理解では、SambaNova のアーキテクチャにおけるこのアプローチの利点は次のとおりです。

1. 空間プログラミング パラダイムには、より規則的な通信パターンがあり、ソフトウェアで制御できます。対照的に、従来のアプローチでは通信パターンがより混沌としており、潜在的な輻輳につながります。

2. 膨大な DRAM 容量により、より多くのデータをカード上に保存できるため、カード間通信の一部がカード上の DRAM データ交換に変換され、通信オーバーヘッドが削減され、カード間通信帯域幅の需要が低下します。

sambaflow は高度に最適化されたデータフロー マッピングを生成します

GPU は特定の特定のアプリケーションでは優れていますが、単一の GPU に収まらない、または効率的に実行できない非常に大規模なモデルの場合、パフォーマンスが低下する可能性があります。

ゴルディロックス ゾーン

SambaNova のデータフロー アーキテクチャは、多数のコンピューティング PCU (0.5 TOPS) とストレージ PMU (0.5M) を備えており、並列およびデータの局所性の最適化に活用できます。以下の例は、複数の PCU をチェーンすることで、PMU によって PCU 間のデータ交換が容易になり、理想的なデータ局所性制御が提供され、きめ細かいパイプライン並列処理がどのように可能になるかを示しています。

データフローはデータの局所性と並列性を活用します

潜在的な問題

通常のデータ並列処理: Parallel.For のような操作には、データ交換用の共有メモリが必要です。 SN10、SN30ではDDRに限定されるのでしょうか? SN40L では、HBM を使用できるため、遅延が改善される可能性があります。

PCU と PMU の粒度: PCU と PMU の粒度は非常に細かいです。 DAG はどのようにしてこのレベルまで分解されるのでしょうか?

(A) Dataflow Graph Analyzer はこの細かい粒度に直接分解され、オペレーターがそれとインターフェイスしますか?

(B) それとも、データフロー グラフ アナライザーは、オペレーターがハードウェア リソースを制御し、粗粒度のオペレーターがインターフェイスに手書きされるように、より粗い粒度に分解されますか?

私の意見では、グラフ レイヤーはグローバルなビューを提供し、より多くの最適化の機会を可能にします。ただし、最小限のリソースを使用して、Dataflow Graph Analyzer によって生成されたサブグラフから演算子をコード生成するには、強力な自動演算子生成ツールが必要です。柔軟なグラフ層コンパイルでは、手書きの演算子は困難になります。実際のアプローチでは、ほとんどのアプローチと同様に、グラフ レイヤーの Dataflow Graph Analyzer がこれらの既存のパターンに基づいてコンパイルされ、固定パターンの手書き演算子が含まれるのではないかと推測しています。

潜在的なパフォーマンスを最大限に活用することは大きな課題です。 SambaNova のアーキテクチャでは、プログラムがハードウェアに適応する必要がある従来のアーキテクチャとは異なり、ハードウェアを再構成してプログラムに適応することができます。これをきめ細かいコンピューティングとストレージと組み合わせることで、より大きな調整スペースが提供されます。

SN10 アーキテクチャは、図に示すように、プログラム可能な相互接続、コンピューティング、メモリで構成されるタイルで構成されています。タイルは、より大きな論理タイルを形成したり、独立して動作したり、データの並列処理を有効にしたり、異なるプログラムを実行したりできます。タイルは TB レベルの DDR4 メモリ、ホスト マシンのメモリにアクセスし、マルチカード相互接続をサポートします。

カーディナルSN10

SambaNova アーキテクチャのタイルは、スイッチ、PCU (プログラマブル コンピューティング ユニット)、および PMU (プログラマブル メモリ ユニット) の 3 つのプログラマブル ユニットで構成されます。これらのユニットを制御する方法を理解することは、オペレーターを作成するエンジニアにとって非常に重要です。

SambaNova のタイル

PCU は主に構成可能な SIMD 命令で構成されます。プログラム内の内部ループを実行するためのプログラム可能なカウンター。シグモイド関数のような超越機能を加速するテールユニット。

PCU は主に構成可能な SIMD 命令で構成されています

PMU は、転置などのテンソル データ形式変換をサポートするマルチバンク SRAM です。

PMU は、転置などのテンソル データ形式変換をサポートするマルチバンク SRAM です。

スイッチにはルーター パイプラインとルーター クロスバーが含まれており、PCU と PMU 間のデータ フローを制御します。外側のループを実装するためのカウンターが含まれています。

スイッチとオンチップ相互接続

ここでは、レイヤー正規化の使用例を示し、さまざまな計算ステップの概要を説明します。 SambaNova ハードウェア上では、スイッチはさまざまな PCU と PMU を接続してパイプラインを形成します。近くの計算は、同時パイプラインをサポートしながら (プログラムに並列 DAG がある場合)、PMU (メモリ内コンピューティングの一種) を通じてデータを迅速に交換できます。

この例は、異なる計算ユニットが独自の計算プログラムを実行する (PCU が異なる時間に同じプログラムを実行する) 空間プログラミング パラダイムに従っていることに注意してください。計算は空間次元で完全に展開され、いくつかの融合が適用されます。

LayerNorm、空間内でパイプライン化

Space に基づいて、最小限の PMU、MCU、およびスイッチを使用してデータを処理するための時間的プログラミング アプローチを追加できます。時間的アプローチでは、特定の時間に特定のデータに対して特定のプログラムを実行することが考慮されます。直感的には、同じ計算ユニットが異なる時間に異なるプログラムを実行する可能性があります。このアプローチでは、使用するハードウェア リソースが少なくなり、チップがより多くのプログラムを実行できるようになります。高速オンチップインターコネクトと大容量DDR4を組み合わせることで、より大規模なプログラムを処理できます。空間プログラミング モードと時間プログラミング モードの両方が不可欠です。

空間+時間のハイブリッド実行

以下は小規模ネットワーク向けの大まかな実行プロセスですが、前の例ではレイヤー正規化演算子に焦点を当てていました。他のアーキテクチャ (TPU、Davinci) とは異なり、SambaNova アーキテクチャはオンチップ フュージョンをネイティブにサポートします。

RDU内の空間データフロー
12TBのDRAMを搭載したラック

ラックの 1/4 に 12TB の DRAM が搭載されているため、チップの計算能力を最大限に活用するのに十分な容量があります。 SN40L はさらに 64 GB の HBM を追加します。これは、PR コンテンツに基づいて DDR4 と PMU SRAM の間に配置される可能性があります。

テラバイトサイズのモデル

このようなアーキテクチャをサポートするには、非常に強力なコンパイル技術が必要であり、データフロー グラフをハードウェア リソースにマッピングするコンパイラに大きく依存します。以下に、コンパイラのサポートを必要とするさまざまな展開シナリオを示します。

主要なシナリオをサポートする柔軟性

トレーニングと推論のためのマルチカードおよびマルチマシンの相互接続システム

データスケール システムのスケールアウト

大容量 DRAM を使用する利点は、GPU システムとは異なり、モデルの分割を必要とせずに 1 兆のパラメーター言語モデルのトレーニングをサポートできることです。これは比較です。GPU で 1T モデルをトレーニングするには複雑なモデル並列処理技術が必要ですが、SambaNova システムではフットプリントが小さくなります。これは興味深い点を提起します。Cerebras の Dojo ウェハ スケール テクノロジーは、コンピューティング フットプリントの削減も目的としています。おそらく、SambaNova の現在の成果を基にして、そのコアは、Cerebras Dojo と同様のウェーハスケールのアプローチを使用して実装される可能性があります (SambaNova の PCU と PMU も比較的粒度が細かいです)。逆に、他のアーキテクチャでは、SambaNova の大容量 DRAM 容量アプローチを検討することもできます (これらのアーキテクチャも大容量 SRAM を備え、データフロー ベースです)。

大規模な言語モデルをトレーニングする

イーロン・マスク氏の発言からもフットプリント削減の重要性が理解できる。 10K を超える GPU クラスターを有効にすることは、スーパーコンピューターに匹敵する困難さと作業負荷を伴うかなりの作業であり、技術的な障壁を大幅に高めます。 FSD 12 が自動運転のためのエンドツーエンドの大規模モデル アプローチの実現可能性を証明すれば、このテクノロジーを追求する企業にとって大規模なコンピューティング クラスターの可用性が極めて重要になります。

H100 が利用できない場合、国内大手自動車メーカーの大型モデルのトレーニング需要を満たすことがすぐにボトルネックになる可能性があります。

ムスク×

SambaNova の他の利点の 4 つは、精度を低くしてダウンサンプリングする必要がなく、50K やさらには 50K x XNUMXK などの高解像度画像でのトレーニングをサポートできることです。自動運転の分野に適用すると、高解像度ビデオでのトレーニングにより精度が向上します。

4k ~ 50k の畳み込み

GPU では、データを GPU の DRAM に適合させるために、通常、ダウンサンプリングが必要です (おそらく最初はホスト CPU 上で)。 SambaNova のメモリ容量が大きいため、ダウンサンプリングや分割は必要ありません。

高解像度のフル画像病理学を可能にする

高解像度の画像でのトレーニングをサポートするということは、より高いトレーニング精度の必要性を意味します。

世界記録の精度の高解像度コンボリューション トレーニング

同様に、レコメンデーション モデルの場合、精度の向上は多大な経済的利益につながります。 SambaNova の大規模メモリ アーキテクチャは、推奨モデルの精度を高めるのに非常に有益です。

以下は、さまざまなモデル スケールにわたる SambaNova の加速効果です。

最先端の精度を超える

まとめ

RDU のデータフロー アーキテクチャにより、SRAM 上でのモデルの実行が可能になり、DRAM 帯域幅の需要が軽減されます。ただし、コンパイラがデータフロー グラフを RDU にデプロイすることも必要です。

コンパイラは、時間と空間を組み合わせた手法を使用して、大規模なプログラムのハードウェア使用率を最大化します。大容量の DRAM と組み合わせることで、より大きなモデルや高解像度のイメージ トレーニングをサポートします。

SN40L アーキテクチャの変更の解釈

「SambaNova の SN40L チップはユニークです。単一チップから HBM (高帯域幅メモリ) と DRAM の両方に対応するため、AI アルゴリズムが当面のタスクに最適なメモリを選択できるようになり、他の方法で達成できるよりもはるかに大量のメモリに直接アクセスできるようになります。さらに、SambaNova の RDU (再構成可能データ ユニット) アーキテクチャを使用することで、チップはよりスマートなコンピューティングを使用してスパース モデルを効率的に実行するように設計されています。」

40 年 2023 月初旬にリリースされた新しい SNXNUMXL アーキテクチャでは、さらに多くのコンピューティング コアが追加され、HBM が初めて導入されました。このセクションでは、この選択の背後にある理由を解釈しようとします。

推論の場合、大規模な言語モデルのパラメーターは数十から数百 GB、KV キャッシュも数十から数百 GB ですが、40 枚の SN10 カードの SRAM はわずか数百 MB です (SN320 は XNUMX MB)。

たとえば、65B パラメータの LLaMA モデルでは、重みを FP16 形式で保存するには 65G*2=130GB が必要です。再び LLaMA-65B を例に挙げると、推論トークンの長さがモデルで許可されている最大値の 2048 に達すると、KV キャッシュの合計サイズは 170GB にもなります。

理想的には、パラメーターは SRAM に存在し、KV キャッシュは計算に近いメモリ内に存在し、入力はオンチップで直接ストリーミングされて計算パイプラインを駆動します。明らかに、カードあたり数百 MB の SRAM では、数千のチップを必要とする複数の相互接続チップがある場合でも、入力の余地を残しながら 100 GB 以上のパラメータをホストするには不十分です。フットプリントを削減するには、オンチップのコンピューティング リソースを再利用する時間多重プログラミング モデルが引き続き必要であり、異なる時間に異なるプログラムをロードし、異なるレイヤーに対して異なる重みを使用した重みストリーミングを必要とします。ただし、重みと KV キャッシュが DDR に保存されている場合、レイテンシは非常に高くなるため、HBM はホット データ (重み、KV キャッシュ、または流出する必要がある中間データ) をホストするための優れたメディアになります。

DDR はパラメータと入力データに使用され、HBM はホット データ (重み、KV キャッシュ、または使用される中間データ) の超大規模キャッシュとして機能します。

微調整やトレーニングの場合、帯域幅の要件はさらに大きくなります。 HBM を導入すると、帯域幅と容量の増加によるメリットが得られます。

コメント

上へスクロール