AI NewsOpen sourceAnnouncement

DeepSeek released DeepJIT to compile kernels for both NVIDIA and Huawei chips

DeepSeek published DeepJIT on 8 September 2026, a header-only C++20 library that gives PyTorch extensions one compile, cache, load and launch interface for both NVIDIA CUDA GPUs and Huawei Ascend NPUs.

AI News

Editorial3 min read

LinkedInX
GitHub social card for the deepseek-ai/DeepJIT repository

Image: DeepSeek

Why it mattersA team that already releases CUDA kernels can add Ascend support without maintaining a second runtime, and a shared on-disk cache means multiple processes on multiple nodes reuse compiled binaries instead of paying the compile cost each time.

DeepSeek published DeepJIT on 8 September 2026, a header-only C++20 runtime for compiling GPU and NPU kernels at run time from a C++ or Python extension. The repository is under the deepseek-ai organisation, has 246 stars and 17 forks at the time of writing, and lists Yi Qian (@guyan364), a co-author whose GitHub handle is @kurisu6912, and @LyricZhao as its main authors. The repository is published without a top-level licence file.

What it does

DeepJIT gives a kernel-authoring library one interface for compiling source at run time, caching the compiled binary, loading it onto the device, and launching it. Two backends implement that interface. The CUDA backend calls NVCC, produces CUBIN, and loads through the CUDA Driver API. The Ascend backend calls Huawei's Bisheng compiler and ld.lld, produces a linked kernel object, and loads through ACL. The same compile-cache-load-launch code path works with either.

Kernel source and per-launch options stay backend-specific. The infrastructure around the kernel does not.

The cache

The library keeps compiled kernels in an in-memory cache during a run and on disk between runs. Cache keys include the source, the tracked include graph, the compiler version, the effective compiler options, and an application-supplied dependency signature such as a CUTLASS version. DeepSeek documents that the disk cache is safe on distributed filesystems that provide atomic directory rename and file fsync, so multiple users, processes and nodes can use one cache directory and reuse each other's compiled kernels. The cache-root variable accepts a colon-separated list of roots, and misses are only written to the first root, which lets a writable personal cache be checked before a read-only shared one.

PyTorch integration and configuration

By default the CUDA backend runs on the current PyTorch CUDA stream and the Ascend backend on the current torch_npu stream. A consumer library exposes its configured runtime to Python through pybind11. Runtime toggles are set through environment variables with a two-level namespace: a library prefix such as MYLIB overrides the process-wide DJ default, which lets one consumer library be configured independently of others in the same process.

The documented toggles include PTX and SASS dumps, PTXAS verbose output, warn-on-spills and warn-on-local-memory-usage that fail the compile when triggered, kernel debug info, and per-launch timeouts. The library requires Linux, a C++20 compiler with std::format, Python and pybind11, plus CUDA headers 12.4 or later with NVCC 12.9 or later for the CUDA backend, and a CANN toolkit with bin/bisheng, bin/ld.lld and torch_npu for the Ascend backend.

Where it fits

DeepJIT is early software. The repository is three days old, has six open issues, and does not carry a public licence file, which a team will want fixed before adopting it as a dependency. What it offers is one runtime that already covers the two accelerator platforms DeepSeek itself has to serve, plus a caching layer written to work safely on a shared cluster. A team maintaining a set of hand-tuned kernels for one vendor and about to add a second can read the backend sources in the repository to see how the two backends are separated, and decide whether adopting the shared runtime costs less than writing another one.

Two features listed as in development, and not yet available, are listed next to the released code: a Python compilation API that would pass kernel source straight from Python, and cache warmup driven by historical cache entries.

Source

SourceDeepSeek

This item was written by an AI system from the linked source. Reveneau is responsible for what it publishes.

Share
LinkedInX
Start a project