<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>Vincent Zhong — Writing</title>
  <link href="https://vincentzed.com/feed.xml" rel="self"/>
  <link href="https://vincentzed.com/writing"/>
  <id>https://vincentzed.com/writing</id>
  <updated>2026-10-13T00:00:00Z</updated>
  <author><name>Vincent Zhong</name></author>
  <entry>
    <title>The Training and RL Infrastructure Behind MAI-Thinking-1</title>
    <link href="https://vincentzed.com/writing/mai-thinking-1-infrastructure"/>
    <id>https://vincentzed.com/writing/mai-thinking-1-infrastructure</id>
    <updated>2026-10-13T00:00:00Z</updated>
    <summary>Hardware, numerics, the YOLO training framework and the Rocket RL stack behind Microsoft AI's 35B-active, 1T-total MoE, read from its technical report.</summary>
  </entry>
  <entry>
    <title>Porting Block-Scaled GEMM Kernels from Blackwell to Rubin</title>
    <link href="https://vincentzed.com/writing/rubin-sm107-kernels"/>
    <id>https://vincentzed.com/writing/rubin-sm107-kernels</id>
    <updated>2026-10-13T00:00:00Z</updated>
    <summary>What changes for a tcgen05 GEMM on sm_107a, read from FlashInfer's Rubin kernels: wider K, packed FP4, bigger SMEM and TMEM, new scale formats, and a mixed-cluster scheduler.</summary>
  </entry>
  <entry>
    <title>How Tokens Reach Their Experts During LLM Inference</title>
    <link href="https://vincentzed.com/writing/a2a-backends"/>
    <id>https://vincentzed.com/writing/a2a-backends</id>
    <updated>2026-10-11T00:00:00Z</updated>
    <summary>How SGLang moves each token to the GPUs that hold its experts and back: the twelve values of --moe-a2a-backend, from a plain all-gather to DeepEP and FlashInfer, and when each one pays off.</summary>
  </entry>
  <entry>
    <title>How GPUs Divide Up the Requests During LLM Inference</title>
    <link href="https://vincentzed.com/writing/dp-attention"/>
    <id>https://vincentzed.com/writing/dp-attention</id>
    <updated>2026-10-11T00:00:00Z</updated>
    <summary>On GLM-5.3, DP attention lets 4 GPUs hold 3.3 times more context, and makes a lone request almost twice as slow. Where that time goes, and at which load the trade is worth it.</summary>
  </entry>
  <entry>
    <title>Serving Kimi K3 End to End: 8 GPUs, 32 GPUs, and a Rack</title>
    <link href="https://vincentzed.com/writing/kimi-k3-deployment"/>
    <id>https://vincentzed.com/writing/kimi-k3-deployment</id>
    <updated>2026-10-11T00:00:00Z</updated>
    <summary>Serving Kimi K3 with SGLang at three scales: one 8-GPU server measured, 32 GPUs as one wide expert-parallel domain, and an NVL72 rack with prefill and decode split.</summary>
  </entry>
  <entry>
    <title>How GPUs Fuse Communication and Computation During LLM Inference</title>
    <link href="https://vincentzed.com/writing/megamoe"/>
    <id>https://vincentzed.com/writing/megamoe</id>
    <updated>2026-10-11T00:00:00Z</updated>
    <summary>DeepGEMM's Mega MoE runs dispatch, both expert GEMMs, and combine as one kernel per GPU. Where the saved time comes from, and what its multi-gigabyte buffer costs.</summary>
  </entry>
  <entry>
    <title>What Matters in a ModelOpt Quantization Recipe</title>
    <link href="https://vincentzed.com/writing/modelopt-quantization"/>
    <id>https://vincentzed.com/writing/modelopt-quantization</id>
    <updated>2026-10-11T00:00:00Z</updated>
    <summary>How FP8 and NVFP4 work, and what each field of a ModelOpt quantization recipe changed on a model served with SGLang.</summary>
  </entry>
  <entry>
    <title>How a Row Meets Its Experts</title>
    <link href="https://vincentzed.com/writing/moe-expert-parallelism"/>
    <id>https://vincentzed.com/writing/moe-expert-parallelism</id>
    <updated>2026-10-11T00:00:00Z</updated>
    <summary>Mixture-of-Experts parallelism in SGLang, from first principles: five ways for a row to reach its experts across GPUs, measured for decoding and prefill on 8 GPUs.</summary>
  </entry>
  <entry>
    <title>How an MoE Model Picks Its Experts During LLM Inference</title>
    <link href="https://vincentzed.com/writing/moe-router-gemm"/>
    <id>https://vincentzed.com/writing/moe-router-gemm</id>
    <updated>2026-10-11T00:00:00Z</updated>
    <summary>The small matrix product and top-k that route every token in a Mixture-of-Experts layer: what it costs in SGLang, and how far a fused kernel takes it.</summary>
  </entry>
  <entry>
    <title>How GPUs Avoid Waiting for the CPU During LLM Inference</title>
    <link href="https://vincentzed.com/writing/speculative-decoding"/>
    <id>https://vincentzed.com/writing/speculative-decoding</id>
    <updated>2026-10-11T00:00:00Z</updated>
    <summary>SGLang's overlap scheduler, from first principles: how the next step is queued before the CPU has seen the current one, and what speculative decoding adds.</summary>
  </entry>
  <entry>
    <title>How GPUs Share a Long Context During LLM Inference</title>
    <link href="https://vincentzed.com/writing/context-parallelism"/>
    <id>https://vincentzed.com/writing/context-parallelism</id>
    <updated>2026-10-08T00:00:00Z</updated>
    <summary>Prefill and decode context parallelism in SGLang, from first principles: why splitting a long context by token takes two separate features, and what each one costs.</summary>
  </entry>
  <entry>
    <title>Keeping Speculative Decoding Fast During RL Training</title>
    <link href="https://vincentzed.com/writing/verl-speco"/>
    <id>https://vincentzed.com/writing/verl-speco</id>
    <updated>2026-10-02T00:00:00Z</updated>
    <summary>Why a drafter goes stale while RL changes the model it drafts for, and how verl-SpeCo, slime, Miles, and SpecForge keep it up to date.</summary>
  </entry>
</feed>
