DeepSeek met à disposition deux bibliothèques logicielles destinées aux accélérateurs Huawei Ascend : DeepGEMM-Ascend pour la multiplication de matrices et DeepEP-Ascend pour les communications entre processeurs. La première version de DeepGEMM-Ascend date du 30 septembre 2026. Les mesures publiées par les projets portent sur des opérations précises ; elles ne donnent pas la vitesse d’un modèle complet ni une comparaison directe avec NVIDIA.

NeoTeo avait déjà présenté les annonces de DeepSeek et Huawei autour d’Ascend. Ces deux bibliothèques permettent maintenant de distinguer les fonctions visées et les exigences matérielles associées.

Deux bibliothèques, deux fonctions

DeepGEMM-Ascend fournit des noyaux de calcul — des routines optimisées pour exécuter une opération sur le processeur — consacrés à la multiplication de matrices. Cette opération intervient notamment dans les calculs d’apprentissage automatique. La bibliothèque annonce la prise en charge de BF16, FP8 et FP4, ainsi que de MQA logits et MegaMoE. Son interface de programmation est compatible avec celle de DeepGEMM.

DeepEP-Ascend est une bibliothèque de communication pour l’entraînement et l’inférence sur Ascend. Elle comprend des opérations dites « expert-parallèles » pour les modèles à mélange d’experts (MoE) : elles répartissent les données entre les experts, puis combinent leurs résultats. DeepEP-Ascend indique que ses API publiques de buffers s’alignent sur celles de DeepEP.

Le matériel et les logiciels requis

Les deux bibliothèques ciblent la série Ascend 950, mais DeepEP-Ascend ajoute des exigences de connectivité spécifiques. Son installation suppose notamment des connexions UBMEM et des canaux UBC_CTP/URMA entre les rangs participants, c’est-à-dire les unités de calcul qui coopèrent. Les dépendances ne sont donc pas interchangeables d’un projet à l’autre.

BibliothèqueFonctionAccélérateur et connectivitéPrérequis logiciels documentés
DeepGEMM-AscendNoyaux de multiplication matricielle, avec prise en charge de BF16, FP8, FP4, MQA logits et MegaMoESérie Huawei Ascend 950CANN 9.20, torch_npu, Python 3.10 ou ultérieur et prise en charge de <format> en C++20
DeepEP-AscendCommunication pour l’entraînement et l’inférence, dont les opérations de dispatch et de combinaison pour les modèles MoEAscend 950 (A5), connectivité UBMEM et canaux UBC_CTP/URMA entre les rangs participantsLinux sur hôte Ascend, pilotes et micrologiciels pris en charge, composants CANN, Python 3.10 ou ultérieur, et versions compatibles de PyTorch et torch_npu

Pour DeepEP-Ascend, la notation CANN 9.2.0 concerne la configuration de mesure décrite pour ses benchmarks. DeepGEMM-Ascend indique, de son côté, CANN 9.20 parmi ses prérequis. Ces versions restent propres à chaque contexte.

Ce que mesurent les résultats publiés

Une visite technique en anglais du code de DeepGEMM-Ascend, de ses dispositions mémoire, de son pipeline et de ses limites d’API

Pour un cas précis de multiplication dense BF16×BF16 sur Ascend 950DT, DeepSeek rapporte 431 TFLOPS, face à une limite matérielle annoncée de 432 TFLOPS, soit 99,8 %. Le test porte sur M=4096, N=7168 et K=16384, avec CANN 9.20, l’outil bench_msprof et un profilage avec le cache L2 à froid. Ce résultat décrit un noyau de calcul : il ne mesure pas la vitesse d’exécution d’un modèle entier. Comme il est rapporté par rapport à la limite de l’Ascend 950DT, il ne permet pas de conclure qu’Ascend est plus rapide qu’un accélérateur NVIDIA.

DeepEP-Ascend rapporte quatre débits de communication, mesurés sur Ascend 950DT avec CANN 9.2.0 et netlayer 1. Le montage reposait sur un HDK de validation de concept (PoC) fourni à DeepSeek, configuré manuellement et non distribué publiquement. Les essais utilisaient 16 384 tokens par rang, une dimension cachée de 7 168 et un routage vers six experts parmi 256 ; ils comprenaient dix échauffements et 50 échantillons par rang, avec vidage du cache.

OpérationConfigurationDébit rapporté
DispatchEP8373–375 Go/s
DispatchEP128313–320 Go/s
CombinaisonEP8345–347 Go/s
CombinaisonEP128272–278 Go/s

Les valeurs de DeepEP-Ascend décrivent ces opérations sur cette configuration ; elles ne constituent pas une mesure de vitesse pour un modèle complet. De même, la proximité d’un noyau avec la limite annoncée d’un accélérateur ne renseigne pas, à elle seule, sur les performances de l’application qui l’utilise.

Des API alignées, pas un portage universel de CUDA

La compatibilité annoncée par DeepGEMM-Ascend concerne l’API de DeepGEMM. Pour DeepEP-Ascend, l’alignement concerne les API publiques de buffers de DeepEP. Ces correspondances ciblées ne signifient pas que n’importe quel programme conçu pour CUDA fonctionne sans adaptation sur Ascend : le matériel, les dépendances et les interfaces utilisées restent déterminants.

Des fonctions de DeepEP-Ascend encore en chantier

DeepEP-Ascend décrit les interfaces de parallélisme en pipeline (PP), Engram et Bucket comme expérimentales ou en cours de développement. Le dépôt classe aussi plusieurs éléments comme inachevés ou non pris en charge : les noyaux reduce-scatter et all-reduce, la communication pour l’équilibrage de charge des experts, la communication hybride, le stockage Engram sur processeur et la capture de graphes.