DeepSeek udostępnił dwie biblioteki przeznaczone dla platformy Huawei Ascend: DeepGEMM-Ascend do obliczeń macierzowych oraz DeepEP-Ascend do komunikacji między procesami uczenia maszynowego. Pierwsze wydanie DeepGEMM-Ascend datowano na 30 września 2026 r.; wyniki obu projektów dotyczą konkretnych zadań i konfiguracji sprzętowych. Wcześniej opisywaliśmy zapowiedź współpracy DeepSeek z Huawei; tym razem najważniejsze są funkcje i wymagania samych bibliotek.
Dwie biblioteki, dwa różne zadania
DeepGEMM-Ascend to biblioteka kerneli, czyli wyspecjalizowanych fragmentów kodu wykonujących obliczenia na procesorze. Służy do mnożenia macierzy (GEMM) i obsługuje formaty BF16, FP8 oraz FP4, a także MQA logits i MegaMoE. Projekt deklaruje zgodność API z DeepGEMM.
DeepEP-Ascend odpowiada za komunikację wykorzystywaną podczas trenowania i uruchamiania modeli. Oferuje operacje all-to-all dla równoległego przetwarzania modeli MoE (mixture of experts, czyli mieszaniny ekspertów): dispatch rozsyła dane do ekspertów, a combine zbiera ich wyniki.
Wymagania sprzętowe i programowe
Obie biblioteki są przeznaczone dla platformy Ascend 950, ale DeepEP-Ascend stawia dodatkowe warunki dotyczące połączeń między urządzeniami. Sam kod nie wystarczy: potrzebny jest właściwy akcelerator oraz dopasowany stos programowy.
| Biblioteka | Funkcja | Akcelerator i łączność | Wymagania programowe |
| DeepGEMM-Ascend | Mnożenie macierzy; obsługa BF16, FP8, FP4, MQA logits i MegaMoE | Seria Ascend 950 | CANN 9.20, torch_npu, Python 3.10 lub nowszy oraz obsługa <format> w C++20 |
| DeepEP-Ascend | Komunikacja dla uczenia maszynowego, w tym operacje dispatch i combine dla MoE | Ascend 950 (A5), łączność UBMEM oraz kanały UBC_CTP/URMA między uczestniczącymi procesami | Linux na hoście Ascend, obsługiwane sterowniki i firmware, komponenty CANN, Python 3.10 lub nowszy oraz zgodne wersje PyTorch i torch_npu |
Co mierzą podane wyniki?
DeepGEMM-Ascend raportuje 431 TFLOPS, czyli 99,8% deklarowanego limitu sprzętowego wynoszącego 432 TFLOPS, w jednym teście gęstego GEMM BF16×BF16. Przypadek obejmował M=4096, N=7168 i K=16384; pomiar wykonano na Ascend 950DT z CANN 9.20, przy profilowaniu cold-L2. To wynik dla konkretnego kernela, a nie pomiar szybkości całego modelu.
DeepEP-Ascend podaje przepustowość operacji dispatch i combine dla konfiguracji EP8 i EP128. Testy przeprowadzono na Ascend 950DT z CANN 9.2.0, przy użyciu ręcznie skonfigurowanego zestawu PoC HDK przekazanego DeepSeek. Taka konfiguracja nie była publicznie dystrybuowana. Opisany test obejmował 16 384 tokeny na proces, rozmiar warstwy ukrytej 7168 i routing top-6 do 256 ekspertów; wykonano 10 rozgrzewek i 50 próbek na proces, z opróżnianiem pamięci podręcznej.
| Operacja | Konfiguracja | Raportowana przepustowość |
| Dispatch | EP8 | 373–375 GB/s |
| Dispatch | EP128 | 313–320 GB/s |
| Combine | EP8 | 345–347 GB/s |
| Combine | EP128 | 272–278 GB/s |
Liczby dotyczą określonych operacji i warunków testowych. Nie są porównaniem z układami NVIDIA przy tym samym obciążeniu i według tej samej metody.
Zgodność API nie oznacza przenośności CUDA
DeepGEMM-Ascend deklaruje zgodność API z DeepGEMM, a publiczne API buforów DeepEP-Ascend jest dostosowane do API DeepEP. To odniesienie do konkretnych bibliotek: nie oznacza, że dowolny program CUDA można uruchomić na Ascend bez zmian. Nadal obowiązują wymagania sprzętowe i programowe platformy Ascend, a pomiar pojedynczego kernela nie przesądza o szybkości całej aplikacji.
Część funkcji DeepEP-Ascend jest w rozwoju
Interfejsy równoległości potokowej (PP), Engram i operacji kolektywnych Bucket repozytorium określa jako eksperymentalne lub będące w trakcie rozwoju. Niedokończone albo nieobsługiwane są także kernele reduce-scatter i all-reduce, komunikacja do równoważenia obciążenia ekspertów, komunikacja hybrydowa, pamięć Engram oparta na CPU oraz przechwytywanie grafów.