{"name":"DeepGEMM-Ascend: Fast GEMM Kernels for Huawei Ascend NPUs","description":"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.","github":"https://github.com/deepseek-ai/DeepGEMM-Ascend","url":"https://osrepos.com/repo/deepseek-ai-deepgemm-ascend","source":"osrepos.com","sourceDescription":"This repository profile is provided by osrepos.com, an open source repository discovery platform.","repositoryProfile":"https://osrepos.com/repo/deepseek-ai-deepgemm-ascend","generatedFor":"open source discovery and AI-assisted research","markdown":"https://osrepos.com/repo/deepseek-ai-deepgemm-ascend.md","json":"https://osrepos.com/repo/deepseek-ai-deepgemm-ascend.json","topics":["c++","library","performance","ascend-npu","gemm-kernels","mixture-of-experts"],"keywords":["c++","library","performance","ascend-npu","gemm-kernels","mixture-of-experts"],"stars":null,"summary":"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.","content":"## Overview\n\nDeepGEMM-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.\n\nThe 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.\n\n## Key Features\n\n- API-compatible port of DeepSeek's DeepGEMM, intended to preserve a familiar development workflow.\n- BF16, FP8, FP4, and mixed FP8×FP4 GEMM kernels.\n- MQA logits kernels and scheduling metadata utilities.\n- Grouped GEMM and MegaMoE operations for expert-based models.\n- Ascend-focused kernel techniques, including sparse data loading and coroutine-based pipelining.\n- Utilities for NPU architecture selection, core count, deterministic algorithms, and scaling-factor layout conversion.\n- JIT kernel compilation with configurable caching and debugging options.\n\n## Use Cases\n\n- Ascend platform engineers needing low-level GEMM kernels for model inference or training.\n- DeepSeek model teams running MoE workloads that need grouped GEMM or fused MegaMoE operations.\n- Teams implementing MQA scoring for the DeepSeek Lightning Indexer on Ascend.\n- Kernel developers seeking reference implementations of performance optimization techniques for Ascend hardware.\n\n## Our Take\n\nThis 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.\n\n**Good fit if:**\n- Your workloads run on Huawei Ascend 950 and need the listed GEMM, MQA, or MoE kernels.\n- You already use DeepGEMM APIs or want Ascend-specific kernel implementations to study.\n- Your team can build and validate C++ extensions in the documented CANN and Torch NPU environment.\n\n**Look elsewhere if:**\n- You need kernels for NVIDIA GPUs or another platform, rather than Huawei Ascend.\n- You cannot provide the required Ascend hardware, CANN toolkit, and Torch NPU package.\n- You need a project with a longer release history, since this repository is new and has no recorded release in the past year.\n\n## Project Health\n\n| Signal | Value |\n|---|---|\n| Status | **New**: less than six months old |\n| Last commit | 2026-10-14 (30 days ago) |\n| Commits, last 90 days | 3 |\n| Releases, last 12 months | 0 |\n| Contributors | 3 (top contributor: 33% of commits) |\n| Issues closed, last 90 days | 2 |\n| Pull requests merged, last 90 days | 1 |\n| Project age | 45 days |\n\nChecked on 2026-11-14 with the GitHub API.\n\n## Project Facts\n\n- Language: C++\n- License: MIT\n- Stars: 639\n- Forks: 85\n- Archived: no\n\n## What You Need\n\nDetected in the repository:\n\n- Python (from setup.py)\n- A test suite\n\n## Getting Started\n\nClone the repository with its submodules, then install the package:\n\n```bash\ngit clone --recursive https://github.com/deepseek-ai/DeepGEMM-Ascend.git\ncd DeepGEMM-Ascend\npip install . --no-build-isolation\n```\n\nSee the [README](https://github.com/deepseek-ai/DeepGEMM-Ascend#readme) for requirements, development setup, interfaces, and benchmark details.\n\n## License in Plain Words\n\n**MIT** (permissive).\n\n- Commercial use: yes\n- Modify and redistribute: yes\n- You must keep: the copyright and license notice\n- Share your changes: no\n\nA summary, not legal advice: the LICENSE file is what applies.\n\n## Considerations\n\n- 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.\n- 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.\n- 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.\n- The repository includes tests, but its measured project data shows no CI configuration. Teams should validate their own hardware and software combinations.\n- The MIT license permits broad use, subject to its license terms and attribution requirements.","metrics":{"detailViews":2,"githubClicks":0},"dates":{"published":null,"modified":"2026-11-14T00:02:25.000Z"}}