
On September 30, DeepSeek and Huawei released a full open-source AI compute toolkit for Huawei’s Ascend 950 chips. Six libraries, available now on GitHub. The headline is not the hardware — it is the design choice: every component has 1:1 API parity with DeepSeek’s existing NVIDIA equivalents. Developers running DeepSeek models on NVIDIA GPUs can target Ascend hardware without rewriting their kernel code. For an industry that has treated CUDA lock-in as a permanent condition, that is a claim worth taking seriously.
The Toolkit: Six Components
The release covers the full stack needed to train and run transformer models:
- TileLang — A Python-style DSL for writing high-performance compute kernels. Built on TVM, supports auto-scheduling, pipelining, and multi-hardware backends.
- DeepGEMM-Ascend — Matrix multiplication library. API-compatible with DeepSeek’s existing DeepGEMM. Supports BF16, FP8, and FP4 precision.
- DeepEP-Ascend — Cross-chip communication for Mixture-of-Experts models. Handles expert routing and output aggregation across large clusters.
- FlashMLA — Sparse attention for long-context workloads, now ported to Ascend NPU.
- TileKernel — Vector operations and memory access primitives.
- DeepSelect — Data selection operators for MoE gating logic.
The 1:1 parity claim is the load-bearing assertion. DeepSeek built these Ascend libraries to mirror their NVIDIA ones, API call for API call. In theory, switching hardware means swapping a backend flag, not rewriting your codebase.
TileLang Is the Developer Story
TileLang is the component developers outside China should pay attention to, regardless of whether they own Ascend hardware. It is a Python-first DSL that installs via PyPI (pip install tilelang) and runs on both NVIDIA and Ascend backends. You write kernels with @T.prim_func decorators. The compiler handles thread scheduling, memory layout, and pipeline optimization automatically.
The contrast with CUDA C is significant. Vector addition in TileLang is roughly 12 lines of Python:
import tilelang.language as T
from tilelang import jit
@jit
def add(N: int, block: int = 256, dtype: str = 'float32'):
@T.prim_func
def add_kernel(A: T.Tensor((N,), dtype), B: T.Tensor((N,), dtype), C: T.Tensor((N,), dtype)):
with T.Kernel(T.ceildiv(N, block), threads=block) as bx:
for i in T.Parallel(block):
gi = bx * block + i
C[gi] = A[gi] + B[gi]
return add_kernel
In CUDA C, the equivalent requires explicit thread indexing, manual memory allocation, error handling macros, and kernel launch syntax. TileLang collapses that surface area substantially. The tradeoff: you accept the compiler’s decisions on scheduling unless you drop to expert mode. For most transformer inference workloads, that is a reasonable trade.
The Ascend-specific adapter lives at github.com/tile-ai/tilelang-ascend. Enabling it requires Huawei’s CANN SDK (8.3.RC1+) and torch-npu (2.6.0.RC1+). That stack is documented but not trivially installed outside a Huawei cloud environment.
CUDA’s Moat Is a Software Problem
NVIDIA’s real competitive advantage has never been purely about GPU performance. It is twenty years of accumulated software — CUDA libraries, toolchain stability, training materials, and two decades of developer muscle memory. Every production AI team has CUDA expertise embedded in their hiring profiles, internal tooling, and deployment pipelines. Swapping hardware means rewriting kernels, retraining engineers, and re-running every performance benchmark.
Previous attempts to crack this have foundered on the software gap. AMD’s ROCm offers CUDA-compatible APIs but has had years of stability and coverage issues. OpenAI’s Triton is Python-friendly and hardware-agnostic in principle, but adoption outside PyTorch internals remains limited. Intel’s oneAPI is largely an enterprise story.
DeepSeek’s approach is different in one specific way: they are not asking developers to trust a new abstraction. They are porting their own production libraries — the ones powering DeepSeek-V3 — to Ascend hardware, with matching APIs. That is a credibility argument AMD and Intel cannot currently match.
Hardware Reality Check
The Ascend 950 benchmarks are worth knowing. At 1.56 PFLOPS FP4 compute, it delivers roughly 2.87x the throughput of NVIDIA’s H20 — the most powerful chip NVIDIA can legally sell in China under current export restrictions. Against H100, the Ascend 950 reaches approximately 60–70% of FP16 inference performance per DeepSeek’s own testing, with memory bandwidth of 1.4 TB/s versus H100’s 4 TB/s. Competitive for inference; training parity is a longer road.
The 128-chip supernode configuration is explicitly supported by DeepEP-Ascend’s communication layer, targeting large-model training at scale. For context, Tom’s Hardware’s coverage notes that benchmarks show computational and communication performance approaching hardware limits on the Ascend 950 platform.
What Developers Should Actually Do
If you are running DeepSeek models on NVIDIA hardware today, the practical action is narrow: watch the tilelang-ascend repository and the vLLM Ascend backend integration. Neither is ready for casual production use outside Huawei cloud environments. Ascend hardware access outside China remains the binding constraint.
The more immediate use case is TileLang on NVIDIA. If you write custom CUDA kernels for transformer components and want a higher-level abstraction than Triton, TileLang is now a serious option — 7,800+ GitHub stars, active development, production pedigree from DeepSeek, and a clean documentation site. The Ascend backend is a bonus that may matter more in 18 months than it does today.
DeepSeek just made the software moat argument against Huawei hardware substantially harder to make. That is not a small thing.













