deepseek-ai

DeepGEMM-Ascend: Fast GEMM Kernels for Huawei Ascend NPUs

DeepGEMM-Ascend ports DeepSeek's DeepGEMM library to Huawei Ascend NPUs, with API-compatible kernels for BF16, FP8 and FP4 GEMM, MQA logits, and MegaMoE. It targets teams optimizing inference and training workloads on Ascend 950 hardware.

View on GitHub Compare
Stars
639
Forks
85
Last commit
30 days ago
Contributors
3
Releases, 12 months
0

Our take

Newless than six months old

Health score

44/100

How it is scored
Activity
30
Community
51
Issues
53
Pull requests
43
  • Fewer contributors than 82% of the projects we track

This is a focused, performance-oriented Ascend port with a compatible DeepGEMM interface, but its short project history and hardware-specific setup make it an early-stage choice for Ascend teams rather than a portable general-purpose library.

Good fit if

  • Your workloads run on Huawei Ascend 950 and need the listed GEMM, MQA, or MoE kernels.
  • You already use DeepGEMM APIs or want Ascend-specific kernel implementations to study.
  • Your team can build and validate C++ extensions in the documented CANN and Torch NPU environment.

Look elsewhere if

  • You need kernels for NVIDIA GPUs or another platform, rather than Huawei Ascend.
  • You cannot provide the required Ascend hardware, CANN toolkit, and Torch NPU package.
  • You need a project with a longer release history, since this repository is new and has no recorded release in the past year.
All health signals
Last commit2026-10-14 (30 days ago)
Commits, last 90 days3
Releases, last 12 months0
Contributors3 (top contributor: 33% of commits)
Issues closed, last 90 days2
Pull requests merged, last 90 days1
Project age45 days

Checked on 2026-11-14 with the GitHub API.

Project history

Daily GitHub snapshots since Nov 14, 2026. History covers stars and forks; health signals are not tracked historically.

Selected snapshot

Stars

639

Forks

85

More snapshots will appear as the daily collection continues.

Overview

DeepGEMM-Ascend is DeepSeek's port of its DeepGEMM matrix multiplication kernel library to Huawei Ascend NPUs. It provides a compatible API for Ascend users and addresses the complexity of implementing efficient kernels around Ascend's matrix multiply-add primitives, layouts, alignment constraints, and low-level parameters.

The library targets performance-critical model workloads, combining a lightweight abstraction with Ascend-specific techniques such as sparse data loading and coroutine-based pipelining. Its documented support centers on Ascend 950 devices and includes dense GEMM, MQA logits, and MoE operations.

Key Features

  • API-compatible port of DeepSeek's DeepGEMM, intended to preserve a familiar development workflow.
  • BF16, FP8, FP4, and mixed FP8×FP4 GEMM kernels.
  • MQA logits kernels and scheduling metadata utilities.
  • Grouped GEMM and MegaMoE operations for expert-based models.
  • Ascend-focused kernel techniques, including sparse data loading and coroutine-based pipelining.
  • Utilities for NPU architecture selection, core count, deterministic algorithms, and scaling-factor layout conversion.
  • JIT kernel compilation with configurable caching and debugging options.

Use Cases

  • Ascend platform engineers needing low-level GEMM kernels for model inference or training.
  • DeepSeek model teams running MoE workloads that need grouped GEMM or fused MegaMoE operations.
  • Teams implementing MQA scoring for the DeepSeek Lightning Indexer on Ascend.
  • Kernel developers seeking reference implementations of performance optimization techniques for Ascend hardware.

What you need

Detected in the repository

  • Python (from setup.py)
  • A test suite

License in plain words

MITpermissive

  • Commercial use: yes
  • Modify and redistribute: yes
  • You must keep: the copyright and license notice
  • Share your changes: no

A summary, not legal advice: the LICENSE file is what applies.

Getting Started

Clone the repository with its submodules, then install the package:

git clone --recursive https://github.com/deepseek-ai/DeepGEMM-Ascend.git
cd DeepGEMM-Ascend
pip install . --no-build-isolation

See the README for requirements, development setup, interfaces, and benchmark details.

Considerations

  • The documented development and validation target is Ascend 950, with CANN 9.20 and torch_npu; this is not a drop-in choice for other accelerator platforms.
  • Building from source requires Python 3.10 or newer, C++20 <format> support, and the listed compiler tools. The HC prenorm kernel also depends on TileLang.
  • The project is very new. Recent activity is limited, with only a few commits in the measured 90-day period and no releases in the past year. Three contributors are recorded, with work not concentrated in one person.
  • The repository includes tests, but its measured project data shows no CI configuration. Teams should validate their own hardware and software combinations.
  • The MIT license permits broad use, subject to its license terms and attribution requirements.

Found this useful?

Share it with someone who would like DeepGEMM-Ascend.