Skip to content
View AkiYangDev's full-sized avatar

Block or report AkiYangDev

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
AkiYangDev/README.md

Hi, I'm Aki! LLM inference runtimes and Ascend NPU kernels.

English · 简体中文

🛠️ Upstream work   ·   🐋 mini-DeepInfer   ·   📚 Engineering notes

Community fan art of DeepSeek's whale girl

👋 I'm Aki

LLM inference systems & Ascend NPU operators

I work on SGLang and sgl-kernel-npu, connecting serving-runtime behavior with the operators underneath it: MoE expert migration, speculative-decoding state, quantized attention, and numerical correctness.

My contributions span implementation, bug diagnosis, reproducible checks, and technical documentation for DeepSeek-V4 / V4.1 on Ascend.

Python PyTorch / torch_npu CANNBot-DSL HCCL / DeepEP


🛠️ Upstream engineering

DeepSeek-V4.1 · quantized Indexer & sparse MLA

sgl-kernel-npu #964   ✅ Merged · 2026-11-09 · Co-developed with ClownBin

Integrated seven CANNBot-DSL operator APIs—four compute operators and three metadata builders—for MXFP4 K-cache updates, two-stage sparse indexing, and mixed FP8/FP4 MLA.

My integration work covers API and dispatch contracts, independent Torch references, tests, bilingual API docs, and a backport that pads K-projection backing storage for tail tiles. Contribution commits

Dynamic EPLB · expert migration & statistics ownership

SGLang #47574   ✅ Merged · 2026-11-02

Implemented dynamic expert load balancing on Ascend, connecting valid-route statistics, expert-weight migration, and bounded temporary memory.

Bug discovery → merged community fix: I identified and reproduced empty draft records consuming the target model's EPLB history (issue #48603) and supplied the recorder-lifecycle fix in #47922; the community integrated that core fix in #48751, authored by ch-wan and merged on 2026-11-06.

🔬 What made this bug subtle?

Draft execution can use TARGET_VERIFY, so the guard must follow the runner's role. Disabling counting hooks inside the model still lets the outer recorder reset counters and append an empty observation.

The fix has two parts: disable recording before entering the forward context, and make an already-disabled recorder skip reset, collection, and append. The issue includes a current-main reproducer and published 16-rank service records.

Open follow-up: #48835 · Preserve arch35 expert storage during migration.

🔧 Selected patches

Area Engineering change PR
PD state transfer Peer-local C4 rows and empty state components across PP stages #47934 / #47937 / #47938
Decode memory Bound DeepSeek-V4 SWA storage by request slots #47740
Numerical precision Preserve Softplus accuracy in GDN gating and decode kernel #933
Sparse attention Exclude padded lanes from non-power-of-two TopK reduction kernel #935
Quantization Preserve AWQ fallback dtype and correct GPTQ zero-point offsets #47639 / #47637
Benchmark timing Record PD decode handoff time for non-streaming requests #47772

Selected patches and the arch35 follow-up were Open when checked on 2026-11-09. Follow each PR for its latest status.

📦 More sglang contributions (12 PRs)
📦 More sgl-kernel-npu contributions (8 PRs)

More authored upstream PRs

🐋 Projects & writing

A runnable teaching inference engine built around DeepInfer's execution design: scheduling, batching, KV-slot reclamation, execution across iterations, and speculative decoding. Start on CPU, then generate text with real Qwen3.5 weights on Ascend 910C.

Chinese engineering articles connecting SGLang source code with DeepSeek Attention / MoE / DSpark, distributed state ownership, quantization, profiling, and measured tuning results.

A cheerful chibi DeepSeek whale girl
Always happy to talk inference, kernels, and a well-reproduced bug 🐋
DeepSeek whale girl · Community fan art

Popular repositories Loading

  1. mini-deepinfer mini-deepinfer Public

    Learn DeepInfer through a small, runnable inference engine. Follow the code on CPU, then run real Qwen3.5 models on Ascend 910C.

    Python 30 1

  2. llm-inference-notes llm-inference-notes Public

    LLM inference engineering: SGLang internals, Ascend deployment, distributed inference, and performance analysis.

    Python 2

  3. AkiYangDev AkiYangDev Public

    Aki Yang | Backend engineering, SGLang, Ascend NPU, and LLM inference.

  4. sglang sglang Public

    Forked from sgl-project/sglang

    SGLang is a high-performance serving framework for large language models and multimodal models.

    Python

  5. sgl-kernel-npu sgl-kernel-npu Public

    Forked from sgl-project/sgl-kernel-npu

    SGLang kernel library for NPU

    C++

  6. ops-transformer ops-transformer Public

    CANN ops-transformer source mirror pinned for CANN 9.2.0 / DSv4.1 kernel builds. Upstream: gitcode.com/cann/ops-transformer

    C++