IA ouverte et locale

DeepSeek porte sa bibliothèque GEMM haute performance sur les NPU Huawei Ascend

DeepGEMM-Ascend offre des performances de multiplication matricielle proches du pic, avec une compatibilité API, sur le matériel Huawei Ascend 950, en prenant en charge les charges de travail FP4, FP8 et BF16.

Traduit automatiquement depuis l'original anglais.

DeepSeek AI a publié DeepGEMM-Ascend, une bibliothèque spécialisée pour la multiplication matricielle sur les unités de traitement neuronal (NPU) Huawei Ascend. Annoncé le 30 septembre 2026, ce projet open source porte le framework original DeepGEMM vers l'écosystème Ascend, ciblant le matériel de la série Ascend 950.

Cette version fournit aux ingénieurs un outil permettant d'atteindre une utilisation quasi optimale du matériel pour les tâches d'inférence et d'entraînement des grands modèles de langage, sans avoir à réécrire le code des noyaux bas niveau. En abstrayant les contraintes matérielles complexes, elle permet aux développeurs d'utiliser des API familières tout en tirant parti des optimisations spécifiques à Ascend.

Ce qui s'est passé

DeepGEMM-Ascend est un portage direct de la bibliothèque DeepGEMM, conçu spécifiquement pour la plateforme Huawei Ascend. La première version prend en charge les appareils Ascend 950 et nécessite la boîte à outils CANN 9.20. Elle maintient une compatibilité API complète avec le projet DeepGEMM amont, ce qui signifie que les utilisateurs peuvent installer le package et continuer à utiliser le même flux de développement que sur d'autres plateformes prises en charge.

La bibliothèque prend en charge plusieurs types de données et opérations critiques utilisés dans les modèles d'IA modernes, notamment la multiplication générale de matrices (GEMM) en BF16, FP8 et FP4. Elle inclut également une prise en charge spécialisée pour les logits MQA et les opérateurs MegaMoE, essentiels pour les architectures efficaces à mélange d'experts (mixture-of-experts). Cette large prise en charge garantit que les développeurs travaillant sur des structures de modèles de pointe peuvent les déployer efficacement sur le matériel Ascend.

Une caractéristique clé de cette version est sa couche d'abstraction légère au-dessus des primitives MAD (multiply-add matriciel) d'Ascend. Cette couche masque les détails intricats tels que les dispositions fractales des matrices, les contraintes d'alignement, les calculs d'adresses et les paramètres verbeux de bas niveau. En gérant ces complexités en interne, la bibliothèque permet aux noyaux GEMM de rester concis dans le code tout en maintenant une efficacité élevée lors de l'exécution.

Comment cela fonctionne

DeepGEMM-Ascend atteint ses performances en employant des techniques d'optimisation spécifiques à Ascend qui poussent le matériel près de ses limites théoriques. La bibliothèque utilise le chargement de données éparses et le pipelining basé sur les coroutines pour minimiser le temps d'inactivité et maximiser le débit. Ces méthodes permettent aux noyaux de gérer simultanément les mouvements de données et les calculs, réduisant ainsi les goulets d'étranglement qui affectent souvent les tâches de calcul haute performance.

L'implémentation sert de référence pour l'optimisation extrême des performances sur la plateforme Ascend. Malgré une base de code légère, la bibliothèque démontre sa capacité à atteindre les performances matérielles maximales sur une grande variété de formes de matrices. Cela est particulièrement important pour les charges de travail dynamiques où les dimensions des tenseurs changent fréquemment pendant les phases d'inférence ou d'entraînement.

Pour les développeurs intégrant cette bibliothèque, le format du facteur d'échelle diffère légèrement des implémentations NVIDIA. Sur Ascend, chaque paire de facteurs d'échelle UE8M0 le long de la dimension K est regroupée dans un int16, avec les valeurs stockées dans un ordre MN-major pour une efficacité matérielle optimale. La bibliothèque fournit des fonctions utilitaires pour transformer les facteurs d'échelle dans cette disposition requise, assurant une interopérabilité transparente avec les pipelines de données existants.

Détails clés

  • Prise en charge matérielle : Développé et validé sur les NPU de la série Huawei Ascend 950.
  • Exigences logicielles : Nécessite la boîte à outils CANN 9.20, torch_npu, Python 3.10+ et la prise en charge du compilateur C++20.
  • Types de données : Prend en charge les opérations GEMM BF16, FP8 et FP4, ainsi que les logits MQA et les opérateurs MegaMoE.
  • Performances : Les opérations GEMM denses atteignent jusqu'à 99,8 % de la limite matérielle pour le format BF16 et 99,5 % pour le format FP8.
  • Techniques d'optimisation : Utilise le chargement de données éparses et le pipelining basé sur les coroutines pour approcher les limites de performance matérielle.
  • Licence : Publiée sous licence MIT, permettant une adoption et une modification larges.

Pourquoi c'est important

Pour les ingénieurs logiciels construisant des infrastructures IA, cette version abaisse considérablement la barrière à l'entrée pour l'utilisation du matériel Huawei Ascend. Historiquement, l'optimisation des noyaux pour les accélérateurs non-NVIDIA nécessitait une expertise approfondie des architectures matérielles spécifiques et une gestion manuelle des dispositions mémoire. DeepGEMM-Ascend abstrait ces difficultés, permettant aux équipes de se concentrer sur l'architecture du modèle plutôt que sur le réglage bas niveau du périphérique.

Les taux d'utilisation élevés rapportés dans les benchmarks suggèrent que les organisations peuvent obtenir une mise à l'échelle rentable sur les clusters Ascend sans sacrifier l'efficacité computationnelle. Avec des opérations GEMM denses atteignant près de 100 % de la limite matérielle, la bibliothèque garantit que les ressources NPU coûteuses ne sont pas gaspillées en raison d'inefficacités logicielles. Ceci est crucial pour les déploiements à grande échelle où même de petits gains en pourcentage d'utilisation se traduisent par des économies significatives en énergie et en temps.

De plus, la prise en charge de fonctionnalités avancées comme MegaMoE et les logits MQA indique que la bibliothèque est prête pour les architectures de modèles de nouvelle génération. À mesure que les modèles d'IA deviennent plus grands et plus complexes, la capacité à gérer efficacement le routage à mélange d'experts et l'attention multi-requêtes devient un avantage concurrentiel. Cette bibliothèque fournit une base robuste pour mettre en œuvre ces fonctionnalités sur le matériel Ascend.

Ce que vous pouvez faire

  • Installez la bibliothèque via pip avec le drapeau no-build-isolation pour assurer une compilation correcte des extensions C++.
  • Vérifiez que votre environnement répond aux exigences, en vérifiant spécifiquement la présence de CANN 9.20 et de Python 3.10 ou supérieur.
  • Utilisez les fonctions utilitaires fournies pour transformer les facteurs d'échelle dans l'ordre MN-major requis pour les opérations FP4 et FP8.
  • Effectuez des tests de performance sur vos charges de travail spécifiques à l'aide de la suite de tests incluse pour comparer les performances aux limites matérielles théoriques.
  • Explorez le code source comme référence pour mettre en œuvre des optimisations personnalisées sur la plateforme Ascend.
  • Configurez les variables d'environnement telles que DG_JIT_CACHE_DIR pour gérer les caches de noyaux compilés et améliorer les temps de démarrage.

Outils de la Boutique Bytechap

$89

DocBento

Gestion documentaire auto-hébergée qui analyse chaque scan et répond avec des citations de pages.

Démo en ligne

Continuer la lecture

Tous les articles