github.devotd.
NewLLM infrastructure

deepseek-ai/deepep-ascend — Communication library for Ascend NPUs

deepseek-ai/deepep-ascend has published the MoE communication path for Ascend NPUs along with performance numbers from a prototype development kit.

Repositorydeepseek-ai/deepep-ascend ↗

A high-performance communication library for machine learning training and inference on Huawei Ascend NPUs.

stars
★ 260
Forks
32
Language
C++
Read original source ↗View on GitHub ↗

deepseek-ai/deepep-ascend is a communication library used for machine learning training and inference on Huawei Ascend NPUs. It handles the exchange of tokens and results in expert parallelism of Mixture-of-Experts (MoE) models with low-level kernels. According to the repository description and README, it is an Ascend implementation matched to the public buffer API of the NVIDIA version of DeepEP.

This implementation covers dispatch, which sends tokens to experts, and combine communication, which returns the results. It includes FP8 dispatch and latency epilogues, and it also provides bucket collective communication for pipeline parallelism and context/data parallelism, along with Engram remote memory access as communication features. The Ascend C kernels use HCCL, HCOMM, UBMEM and URMA, and are compiled at runtime with DeepJIT. So it is a port that matches the NVIDIA version and its buffer API while using Ascend's software stack.

The performance table in the README was measured on Ascend 950DT with CANN 9.2.0. The conditions are a capacity of 16384 tokens per rank, a hidden size of 7168, and top-6 out of 256 experts. Dispatch bandwidth is given as 373~375 gigabytes per second at parallel degree 8 and 313~320 gigabytes per second at parallel degree 128. However, these results come from an environment where the prototype development kit (PoC HDK) provided to DeepSeek was configured manually. The commercial board baseline is scheduled for release in mid-October 2026, and there are no measurements for other Ascend generations or CANN versions. Combine optimization also remains to be done, so it is reasonable to treat the current performance numbers as reference values for a specific prototype environment.