DeepSeekOpen Source troisième round : V3/R1 Entraînement Révélation des Clés de l'Inférence

robot
Création du résumé en cours

Source: Quantum Bit

Le troisième jour de la semaine Open Source, DeepSeek a révélé le "moteur" derrière l'entraînement du raisonnement V3/R1.

DeepGEMM:une bibliothèque FP8 GEMM (General Matrix Multiplication) prenant en charge les opérations de multiplication de matrices denses et d'experts mixtes (MoE).

Commençons par comprendre simplement GEMM.

GEMM, ou General Matrix Multiplication, est une opération fondamentale de l’algèbre linéaire, un « invité fréquent » dans le calcul scientifique, l’apprentissage automatique, l’apprentissage profond et d’autres domaines, et le cœur de nombreuses tâches de calcul haute performance.

Cependant, en raison de son volume de calcul souvent important, l'optimisation des performances de GEMM est un point crucial.

La DeepGEMM, récemment open-source par DeepSeek, conserve toujours les caractéristiques de "hautes performances + faible coût", avec les points saillants suivants :

Haute performance : Sur les GPU à architecture Hopper, DeepGEMM est capable d’atteindre jusqu’à 1350+ FP8 TFLOPS de performances.

  • Simplicité : la logique centrale ne compte que 300 lignes de code, mais les performances sont meilleures que celles du noyau optimisé par des experts. Compilation juste-à-temps (JIT) : Compilation entièrement juste-à-temps, ce qui signifie qu’elle peut générer dynamiquement du code optimisé au moment de l’exécution, en s’adaptant à différentes tailles de matériel et de matrice.
  • Aucune dépendance lourde : cette bibliothèque est conçue de manière très légère, sans aucune dépendance complexe, ce qui la rend facile à déployer et à utiliser.
  • Support de plusieurs mises en page de matrice : prend en charge les mises en page de matrice dense et deux mises en page MoE, ce qui lui permet de s'adapter à différents scénarios d'application, y compris, sans s'y limiter, les modèles d'experts mixtes en apprentissage profond.

En termes simples, DeepGEMM est principalement utilisé pour accélérer les opérations matricielles dans l'apprentissage en profondeur, en particulier lors de la formation et de l'inférence de modèles à grande échelle. Il est particulièrement adapté aux scénarios nécessitant des ressources de calcul efficaces et peut considérablement améliorer l'efficacité du calcul.

De nombreux internautes sont plus « acheteurs » pour cet open source, et certaines personnes comparent DeepGEMM à un super-héros dans le monde des mathématiques, estimant qu’il est plus rapide qu’une calculatrice rapide et plus puissant qu’une équation polynomiale.

D’autres ont comparé la sortie de DeepGEMM à la stabilisation des états quantiques à une nouvelle réalité, louant sa propreté dans la compilation instantanée.

Bien sûr... Certaines personnes commencent également à s'inquiéter de leurs actions Nvidia...

Comprendre en profondeur DeepGEMM

DeepGEMM est une bibliothèque spécialement conçue pour réaliser des multiplications de matrices générales (GEMMs) en FP8 de manière concise et efficace, avec une fonction de mise à l'échelle fine, inspirée de DeepSeek V3.

Il peut gérer à la fois la multiplication de matrices générales ordinaires et la multiplication de matrices générales pour les groupes MoE.

Cette bibliothèque est écrite en CUDA, elle n'a pas besoin d'être compilée lors de l'installation car elle compile tous les programmes de noyau à l'exécution via un module de compilation juste-à-temps (JIT) léger.

Actuellement, DeepGEMM ne prend en charge que le Hopper Tensor Core de NVIDIA.

Pour résoudre le problème d'imprécision du calcul cumulatif du noyau de tenseur FP8, il utilise la méthode d'accumulation à deux niveaux (amélioration) du noyau CUDA.

Bien que DeepGEMM emprunte certaines des idées de CUTLASS et CuTe, il ne s’appuie pas trop sur leurs modèles ou leurs opérations algébriques.

Au contraire, cette bibliothèque est conçue de manière très concise, avec seulement une fonction de noyau central, pour un total d'environ 300 lignes de code.

Cela en fait une ressource concise et facile à comprendre, facilitant l'apprentissage de la multiplication de matrices FP8 sous l'architecture Hopper et des techniques d'optimisation.

Malgré sa conception légère, les performances de DeepGEMM égalent ou dépassent celles des bibliothèques de réglage expertes pour une variété de formes de matrices.

Qu'en est-il des performances spécifiques ?

L’équipe a utilisé NVCC 12.8 sur le H800 pour tester toutes les formes pouvant être utilisées dans l’inférence DeepSeek-V3/R1 (y compris le pré-remplissage et le décodage, mais sans parallélisme tensoriel).

Le diagramme suivant illustre les performances d’un DeepGEMM normal pour un modèle dense :

D'après les résultats des tests, les performances de calcul de DeepGEMM** peuvent atteindre jusqu'à 1358 TFLOPS, et la bande passante mémoire peut atteindre jusqu'à 2668 GB/s.

En termes de taux d’accélération, il peut être jusqu’à 2,7x par rapport à l’implémentation optimisée basée sur CUTLASS 3.6.

Jetons un coup d'œil aux performances de DeepGEMM dans la prise en charge du modèle MoE avec disposition contiguë :

!

Ainsi, les performances de prise en charge du modèle MoE pour le masquage de la mise en page sont les suivantes :

Comment l’utiliser ?

Pour utiliser DeepGEMM, vous devez d'abord faire attention à plusieurs dépendances, y compris :

  • GPU avec architecture Hopper, sm_90a, est requis.
  • Python 3.8 et versions ultérieures.
  • CUDA 12.3 et supérieur (12.8 recommandé).
  • PyTorch 2.1 et versions ultérieures.
  • CUTLASS 3.6 ET VERSIONS ULTÉRIEURES

Le code de développement est le suivant :

# Submodule must be clonedgit clone --recursive git@github.com:deepseek-ai/DeepGEMM.git# Créer des liens symboliques pour les (CUTLASS tiers et CuTe) inclure les répertoirespython setup.py develop# Test JIT compilationpython tests/test_jit.py# Tester tous les outils GEMM (normal, contigus-groupés et masqués-groupés)python tests/test_core.py

Le code d’installation est le suivant :

Python setup.py installer

Après les étapes ci-dessus, vous pouvez importer deep_gemm dans votre projet Python.

En termes d’interfaces, pour DeepGEMM ordinaire, la fonction deep_gemm.gemm_fp8_fp8_bf16_nt peut être appelée, et le format NT (LHS non transposé et RHS transposé) est pris en charge.

Pour les DeepGEMM groupés, m_grouped_gemm_fp8_fp8_bf16_nt_contiguous dans le cas d’une mise en page continue. Dans le cas de la disposition du masque, il s’agit de m_grouped_gemm_fp8_fp8_bf16_nt_masked.

DeepGEMM fournit également des fonctions utilitaires telles que le réglage du nombre maximal de SM et l’obtention de la taille d’alignement TMA. Les variables d’environnement, telles que DG_NVCC_COMPILER, DG_JIT_DEBUG, etc., sont prises en charge.

En plus de cela, l’équipe DeepSeek propose plusieurs façons d’optimiser, notamment :

Conception JIT : Tous les noyaux sont compilés au moment de l’exécution, il n’est pas nécessaire de compiler au moment de l’installation ; Prend en charge la sélection dynamique de la taille de bloc et de l’étape de pipeline optimales. Mise à l’échelle fine : Résolvez le problème de précision FP8 grâce à l’accumulation de deux couches du noyau CUDA ; Prend en charge la non-alimentation de 2 tailles de bloc pour optimiser l’utilisation du SM. FFMA SASS entrelacé : améliore les performances en modifiant les bits de rendement et de réutilisation des instructions SASS.

!

Les partenaires intéressés peuvent cliquer sur le lien GitHub à la fin de l'article pour plus de détails~

Une chose de plus

L’action de Nvidia ...... ces jours-ci Puits...... Continuez à tomber à nouveau :

!

Cependant, tôt le matin du 27, heure de Beijing, le rapport de performance du quatrième trimestre de Nvidia pour l’exercice 2025 est également sur le point d’être publié, et nous pouvons nous attendre à ses performances ~

Voir l'original
Le contenu est fourni à titre de référence uniquement, il ne s'agit pas d'une sollicitation ou d'une offre. Aucun conseil en investissement, fiscalité ou juridique n'est fourni. Consultez l'Avertissement pour plus de détails sur les risques.
  • Récompense
  • Commentaire
  • Partager
Commentaire
0/400
Aucun commentaire
  • Épingler
Trader les cryptos partout et à tout moment
qrCode
Scan pour télécharger Gate.io app
Communauté
Français (Afrique)
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)