Enjoying this issue?
Get tomorrow's AI & engineering digest in your inbox — hand-picked, summarized, and always spam-free.
TLDR
DeepSeek's DeepGEMM-Ascend, announced September 30, 2026, ports a CUDA kernel library to Huawei Ascend chips while preserving the same API, but the underlying hardware-specific instructions for data movement and computation must be rewritten. The maintainers claim full API compatibility, but the port only solves one part of the larger software ecosystem problem—it does not make every CUDA application work on Ascend. For developers, this is a starting point for porting matrix operations, not a guarantee of application performance.
Key points
DeepSeek released DeepGEMM-Ascend on September 30, 2026, adapting a CUDA kernel library to Huawei Ascend.
The port maintains full API compatibility, but hardware-specific instructions for data movement and computation differ.
The library was developed and validated on Ascend 950 hardware.
It requires CAN version 9.20 (Huawei software toolkit) and torch_npu to connect PyTorch to Ascend.
DeepSeek reports strong kernel performance, but these figures are not independently verified.
Tools mentioned
Techniques
- kernel porting
- matrix multiplication
- data layout transformation
- overlapping computation and data transfer
- synchronization for buffer reuse
Stop scrolling. Start reading smarter.
Receive the day's most important AI & engineering updates in one concise email. No spam.
Transcript (captions)
You're moving a matrix multiplication from an Nvidia chip to a Huawei chip. Same numbers, same calculation. But the software instructions that move the data and run the calculation need adapting.
If both chips multiply numbers, why can't we just swap them? Follow the numbers through this loading dock and you'll see what the software has to handle. Your function call is the order
slip. Multiply these matrices. That's the API. The kernel supplies the chip specific instructions for moving those numbers and doing the calculation. Arrangement matters, too. Some inputs
carry scaling information that this implementation checks and repacks into its required layout. The numbers haven't changed their minds. They've changed seats. The kernel moves the input
numbers from the chip's main memory into nearby temporary storage, then into buffers that feed the multiplier. It multiplies the numbers, adds the products together, and stores the
result. That's the work behind Deepseek's Deep Gem Ascend release announced September 30th, 2026. adapting a CUDA kernel library to Huawei Ascend while preserving its interface. The
maintainers claim full API compatibility and the exported functions support that claim. Familiar calls connect to Ascend implementations. That doesn't guarantee every application migrates unchanged.
Underneath loading and computation can overlap. While one batch feeds the multiplier, another arrives. Synchronization keeps a buffer from being reused before its current job
finishes. The launcher also chooses block sizes, layouts, and buffer stages. Those hardware specific choices sit beneath a familiar call. Even layout transformations can happen inside the
interface. The team developed and validated the port on ascend 950. It needs CAN version 9.20 Huawei software toolkit and torch npu, which connects PyTorch to Ascend. This doesn't
establish support for every Chinese chip. CAN supplies the surrounding compiler, runtime, and tools. CUDA covers that broader territory too. Porting this operation library solves
one part of that much larger software problem. Deepseek reports strong kernel performance. Those are its own figures not independently checked here. They measure individual operations. A fast
multiplication alone doesn't tell you how fast the whole application runs. For developers moving deep gem work to ascend 950, I'd use this as a starting point then test. Does this make the
whole application faster on its actual workload?