DeepSeek ha pubblicato due librerie software per Huawei Ascend: DeepGEMM-Ascend, dedicata ai kernel di moltiplicazione matriciale, e DeepEP-Ascend, che gestisce le comunicazioni per training e inferenza. Entrambe richiedono hardware Ascend 950; i risultati riportati riguardano specifici kernel e configurazioni, non la velocità di un modello IA completo. DeepGEMM-Ascend registra il rilascio iniziale il 30 settembre 2026.

Per il contesto precedente sulla collaborazione tra DeepSeek e Huawei, puoi leggere il nostro articolo sull’annuncio iniziale.

Due librerie, due compiti diversi

DeepGEMM-Ascend porta su Ascend la moltiplicazione generale di matrici, o GEMM: l’operazione alla base di molti calcoli nelle reti neurali. La libreria dichiara supporto per BF16, FP8 e FP4, oltre che per MQA logits e MegaMoE, e compatibilità API con DeepGEMM.

DeepEP-Ascend si occupa invece della comunicazione tra processori durante training e inferenza. Include operazioni expert-parallel per i modelli mixture of experts (MoE): il dispatch distribuisce i dati agli esperti selezionati e il combine riunisce i risultati. Le API pubbliche dei buffer sono allineate a quelle di DeepEP.

Requisiti hardware e software

Le due librerie richiedono la piattaforma Ascend 950, ma DeepEP-Ascend specifica anche requisiti di connettività tra i processori. Le dipendenze software restano distinte: DeepGEMM-Ascend indica CANN 9.20, mentre CANN 9.2.0 è la versione usata nella configurazione di benchmark di DeepEP-Ascend.

LibreriaFunzioneAcceleratore e connettivitàRequisiti software documentati
DeepGEMM-AscendKernel di moltiplicazione matricialeSerie Ascend 950CANN 9.20, torch_npu, Python 3.10 o successivo e supporto C++20 per <format>
DeepEP-AscendComunicazioni per training e inferenza, incluse le operazioni MoEAscend 950 (A5), connettività UBMEM e canali UBC_CTP/URMA tra i rank coinvoltiLinux, driver e firmware supportati, componenti CANN, Python 3.10 o successivo e versioni compatibili di PyTorch e torch_npu

In pratica, non basta installare i pacchetti su una macchina qualsiasi: per DeepEP-Ascend servono acceleratori e collegamenti specifici, oltre a uno stack software compatibile.

Che cosa misurano i benchmark

Analisi tecnica in inglese del codice DeepGEMM-Ascend, con esempi di layout di memoria, gestione dei fattori di scala FP8, pipeline e API

Per un caso di moltiplicazione matriciale densa BF16×BF16, DeepGEMM-Ascend riporta 431 TFLOPS rispetto a un limite hardware dichiarato di 432 TFLOPS, cioè il 99,8%. Il test riguarda dimensioni M=4.096, N=7.168 e K=16.384, su Ascend 950DT con CANN 9.20 e profiling a cache L2 fredda. È una misura di un singolo kernel GEMM.

DeepEP-Ascend riporta invece banda di comunicazione per le operazioni di dispatch e combine. Le misure sono state eseguite su Ascend 950DT con CANN 9.2.0 e netlayer 1, usando un kit hardware PoC fornito a DeepSeek e configurato manualmente, non distribuito pubblicamente. Il carico indicato comprendeva 16.384 token per rank, dimensione nascosta di 7.168, instradamento top-6 su 256 esperti, 10 esecuzioni di riscaldamento e 50 campioni per rank con svuotamento della cache.

OperazioneConfigurazioneBanda riportata
DispatchEP8373–375 GB/s
DispatchEP128313–320 GB/s
CombineEP8345–347 GB/s
CombineEP128272–278 GB/s

API allineate, piattaforme diverse

La compatibilità dichiarata da DeepGEMM-Ascend riguarda l’API di DeepGEMM; DeepEP-Ascend allinea le proprie API pubbliche dei buffer a quelle di DeepEP. Queste corrispondenze riguardano interfacce specifiche: per eseguire i progetti servono comunque l’hardware Ascend e le relative dipendenze.

Il dato del 99,8% descrive un kernel rispetto al limite dichiarato per Ascend 950DT; la banda di DeepEP-Ascend descrive operazioni di comunicazione in una configurazione PoC. Sono misure diverse, riferite a hardware e carichi Ascend, e non sono un confronto diretto con NVIDIA né una misura della velocità di un’applicazione completa.

Le funzioni di DeepEP-Ascend ancora in sviluppo

DeepEP-Ascend descrive come sperimentali o in lavorazione le interfacce per parallelismo di pipeline (PP), Engram e collettive Bucket. Tra le funzioni indicate come non completate o non supportate figurano i kernel reduce-scatter e all-reduce, la comunicazione per il bilanciamento del carico degli esperti, la comunicazione ibrida, lo storage Engram basato su CPU e la cattura dei grafi di esecuzione.