3 points par xguru 2025-02-26 | Aucun commentaire pour le moment. | Partager sur WhatsApp
  • Bibliothèque permettant d’exécuter efficacement la multiplication de matrices FP8 (GEMM), avec prise en charge de la méthode de mise à l’échelle fine (fine-grained scaling) proposée dans DeepSeek-V3
  • Prend en charge à la fois le GEMM classique et le GEMM groupé pour Mix-of-Experts (MoE)
  • Implémentée sur CUDA, elle compile les kernels à l’exécution via un module léger de Just-In-Time (JIT), sans compilation séparée à l’installation
  • Prise en charge actuellement réservée aux tensor cores NVIDIA Hopper
  • Utilise une double accumulation (promotion) basée sur les cœurs CUDA pour compenser l’imprécision des opérations d’accumulation des tensor cores FP8
  • Reprend certains concepts de CUTLASS et CuTe, mais avec une conception simple réduisant la dépendance à des templates complexes, au point de ne contenir qu’environ 300 lignes de code de kernel
  • Bien adaptée à l’apprentissage des opérations matricielles FP8 sur Hopper et des techniques d’optimisation
  • Malgré cette conception légère, elle affiche, sur différentes tailles de matrices, des performances comparables ou supérieures à celles de bibliothèques optimisées par des experts

Évaluation des performances

Performances GEMM classiques (modèles denses)

  • Évaluation des performances dans l’environnement d’inférence DeepSeek-V3/R1 sur différentes tailles de matrices
  • Tests réalisés sur un GPU NVIDIA H800 (NVCC 12.8)
  • L’indicateur de gain de vitesse (speedup) est calculé par comparaison avec une version optimisée en interne basée sur CUTLASS 3.6
  • Principaux résultats
    • Sur les petites tailles de matrices, jusqu’à 2,7x d’accélération
    • Sur certaines grandes tailles de matrices, performances maintenues entre 1,0x et 1,2x
    • Grâce à l’optimisation de la bande passante mémoire et des performances de calcul, excellente adaptation à l’architecture Hopper

Performances du GEMM groupé pour les modèles MoE

  • GEMM groupé avec disposition contiguë (contiguous)
    • Groupement selon l’axe M, avec N et K conservés identiques
    • Jusqu’à 1,2x d’accélération, avec environ 1,1x dans certaines configurations
  • GEMM groupé avec disposition masquée (masked)
    • Conçu pour les cas où, lors de l’utilisation de CUDA Graph, le CPU ne peut pas connaître le nombre de tokens de chaque expert
    • Un tenseur de masque est fourni en entrée afin de n’exécuter que les calculs nécessaires
    • Le gain de performance se situe entre 1,1x et 1,2x

3e projet parmi les 5 projets open source publiés dans le cadre de DeepSeek Open Infra

Aucun commentaire pour le moment.

Aucun commentaire pour le moment.