DeepSeek オープンソース 第 3 弾: V3/R1 トレーニング推論キー攻略

robot
概要作成中

ソース: 量子ビット

オープンウィークの3日目、DeepSeekはトレーニング推論V3/R1の背後にある“エネルギー”を明らかにしました——

DeepGEMM: FP8 GEMM (Universal Matrix Multiplication) ライブラリで、密行列乗算演算と混合エキスパート行列乗算演算をサポートします。

!

まず、GEMMを簡単に理解しましょう。

GEMM,すなわち一般行列の積(General Matrix Multiply)、は線形代数の基本演算であり、科学計算、機械学習、深層学習などの領域でよく利用されるほか、多くのハイパフォーマンスコンピューティングタスクの中核でもあります。

しかし、その計算量が大きいことが多いため、GEMMのパフォーマンス最適化は非常に重要です。

DeepSeekが今回公開したDeepGEMMは、引き続き**"高性能+低コスト"**の特性を維持しており、次のようなハイライトがあります:

高性能:HopperアーキテクチャのGPUでは、DeepGEMMは最大1350+ FP8 TFLOPSのパフォーマンスを達成できます。

  • シンプルさ:300行のコードでありながら、専門家による最適化されたカーネルよりも優れたパフォーマンスを発揮します。
  • 即時コンパイル(JIT):完全な即時コンパイル方式を採用しており、これは実行時に最適化されたコードを動的に生成することができ、異なるハードウェアや行列サイズに適応することができます。
  • 依存関係なし:このライブラリは非常に軽量で設計されており、複雑な依存関係がないため、展開と使用が簡単になります。
  • 複数のマトリックスレイアウトをサポート:密なマトリックスレイアウトと2つのMoEレイアウトをサポートすることで、さまざまなアプリケーションシーンに適応できるようになり、深層学習のハイブリッドエキスパートモデルなどを含む。

簡単に言うと、DeepGEMMは主に深層学習、特に大規模なモデルの学習や推論における行列演算の高速化に利用されています。

多くのユーザーは、このオープンソースにかなり賛同しており、DeepGEMMを数学界のスーパーヒーローと表現し、非常に迅速な計算機よりも速く、多項式方程式よりも強力だと考えています。

!

DeepGEMMのリリースは、新しい現実に量子状態が安定すると表現され、その即座のコンパイルが清潔でスマートだと賞賛されています。

!

もちろん……誰かが手元のNVIDIA株について心配し始めました……

!

DeepGEMMについてもっと知る

DeepGEMMは、DeepSeek V3から派生した、きめ細かなスケーリングを備えたシンプルで効率的なFP8 Universal Matrix Multiplication(GEMM)専用に構築されたライブラリです。

MoEグループ化の一般的な一般行列乗算と一般行列乗算の両方を処理できます。

このライブラリはCUDAで書かれており、インストールする際にはコンパイルは必要ありません。なぜなら、ランタイムで軽量なJIT(Just-In-Time)モジュールを使用してすべてのカーネルプログラムをコンパイルするからです。

現在、DeepGEMMはNVIDIAのHopper Tensor Coreのみをサポートしています。

FP8テンソルコアが累積計算時に不正確である問題を解決するため、CUDAコアの2段階累積(アップ)方法を採用しています。

DeepGEMMはCUTLASSやCuTeからいくつかの考えを借りていますが、それらのテンプレートや代数演算に過度に依存していません。

それに対して、このライブラリは非常にシンプルに設計されており、コアのカーネル関数だけで約300行のコードしかありません。

これにより、Hopperアーキテクチャの下でのFP8行列乗算と最適化技術の学習が容易になり、わかりやすいリソースとなります。

その設計は軽量ですが、DeepGEMMのパフォーマンスはさまざまな行列形状の専門家チューニングライブラリに匹敵するか、それを上回ることができます。

では、パフォーマンスはどうでしょうか?

チームはH800でNVCC 12.8を使用して、DeepSeek-V3/R1の推論において可能なすべての形状(テンソル並列を除く、プリフィルおよびデコードを含む)をテストしました。

以下の図は、密集モデルに使用される通常のDeepGEMMのパフォーマンスを示しています:

!

テスト結果から見ると、DeepGEMMの計算性能は最大1358 TFLOPSで、メモリ帯域幅は最大2668 GB/sに達します。

加速比に関しては、CUTLASS 3.6をベースに最適化した実装と比較して、最大2.7倍にすることができます。

DeepGEMMがMoEモデルの連続レイアウトをサポートする性能を確認してみましょう:

!

また、MoEモデルのマスクレイアウト(masked layout)をサポートする性能は次のとおりです:

!

どのように使用しますか?

DeepGEMMを使用するには、次の依存関係に注意する必要があります:

  • HopperアーキテクチャのGPU、sm_90aをサポートする必要があります。
  • Python 3.8 およびそれ以上。
  • CUDA 12.3およびそれ以上(12.8を推奨)。
  • PyTorch 2.1 以降。
  • CUTLASS 3.6およびそれ以上

開発コードは次のとおりです。

# Submodule must be clonedgit clone --recursive git@github.com:deepseek-ai/DeepGEMM.git# サードパーティの(CUTLASSとCuTe)インクルードディレクトリのシンボリックリンクを作成するpython setup.py develop# Test JIT compilationpython tests/test_jit.py# すべての GEMM 実装をテストする (normal、連続グループ化、マスクグループ化)python tests/test_core.py

インストール コードは次のとおりです。

python setup.py インストール

上記の手順の後、Pythonプロジェクトにdeep_gemmをインポートできます。

インターフェースの面では、通常のDeepGEMMではdeep_gemm.gemm_fp8_fp8_bf16_nt関数を呼び出すことができ、NT形式(非転置LHSと転置RHS)に対応しています。

グループ化されたDeepGEMMの場合、連続レイアウトの場合はm_grouped_gemm_fp8_fp8_bf16_nt_contiguousになります。 マスクレイアウトの場合はm_grouped_gemm_fp8_fp8_bf16_nt_maskedです。

DeepGEMMは、最大SM数の設定、TMAアラインメントサイズの取得などのツール関数を提供します。DG_NVCC_COMPILER、DG_JIT_DEBUGなどの環境変数もサポートしています。

これに加えて、DeepSeekチームは次のような最適化方法を提供しています。

JITデザイン:すべてのカーネルは実行時にコンパイルされ、インストール時にコンパイルする必要はありません。 最適なブロックサイズとパイプラインステージの動的選択をサポートします。

  • 細かいスケーリング:CUDAコアの二重累積によりFP8精度の問題を解決;2の冪乗でないブロックサイズをサポートし、SM利用率を最適化。 FFMA SASS Interleaved: SASS命令のyieldビットとreuseビットを変更することで、パフォーマンスを向上させます。

!

興味のある仲間は、文末のGitHubリンクをクリックして詳細をご覧くださいね〜

もう1つ

最近のエヌビディアの株価...... まぁ。。。。。。 再び落ち続ける:

!

しかし、北京時間27日未明には、エヌビディアの2025年度第4四半期決算発表も控えており、その業績が楽しみです~

原文表示
内容は参考用であり、勧誘やオファーではありません。 投資、税務、または法律に関するアドバイスは提供されません。 リスク開示の詳細については、免責事項 を参照してください。
  • 報酬
  • コメント
  • 共有
コメント
0/400
コメントなし
  • ピン
いつでもどこでも暗号資産取引
qrCode
スキャンしてGate.ioアプリをダウンロード
コミュニティ
日本語
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)