<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Series on Jaehun's Blog</title><link>https://jaehun.me/en/series/</link><description>Recent content in Series on Jaehun's Blog</description><generator>Hugo</generator><language>en-US</language><lastBuildDate>Sat, 19 Sep 2026 00:54:10 +0900</lastBuildDate><atom:link href="https://jaehun.me/en/series/index.xml" rel="self" type="application/rss+xml"/><item><title>Mini-SGLang: reading the scheduler of an LLM serving framework</title><link>https://jaehun.me/en/series/sgl-project--mini-sglang/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://jaehun.me/en/series/sgl-project--mini-sglang/</guid><description>&lt;p&gt;Eight parts reading &lt;a&#10; href="https://github.com/sgl-project/mini-sglang"target="_blank"&#10; class="inline-flex items-center gap-1"&#10; &gt;sgl-project/mini-sglang&lt;svg class="h-3 w-3 flex-shrink-0" id="external-link" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"&gt;&lt;path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 3h6v6m-11 5L21 3m-3 10v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"/&gt;&lt;/svg&gt;&#10; &lt;/a&gt;,&#10;pinned to commit &lt;code&gt;9a91cfa&lt;/code&gt;. Every quoted snippet links to a permalink at that commit.&lt;/p&gt;&#10;&lt;p&gt;It starts from the process boundaries one HTTP request crosses, then works&#10;through the Req/Batch state ledger, the chunked-prefill budget, page allocation,&#10;the radix cache and eviction that make prefix reuse possible, hiding CPU&#10;scheduling behind two streams, and how several TP ranks reach the same decision.&lt;/p&gt;</description></item><item><title>tiny-vLLM: reading an LLM inference engine written in CUDA</title><link>https://jaehun.me/en/series/jmaczan--tiny-vllm/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://jaehun.me/en/series/jmaczan--tiny-vllm/</guid><description>&lt;p&gt;&lt;a&#10; href="https://github.com/jmaczan/tiny-vllm"target="_blank"&#10; class="inline-flex items-center gap-1"&#10; &gt;jmaczan/tiny-vllm&lt;svg class="h-3 w-3 flex-shrink-0" id="external-link" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"&gt;&lt;path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 3h6v6m-11 5L21 3m-3 10v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"/&gt;&lt;/svg&gt;&#10; &lt;/a&gt; is a 1,500-line&#10;inference engine written directly in CUDA. Seven parts read it end to end,&#10;pinned to a single commit.&lt;/p&gt;&#10;&lt;p&gt;It begins with loading weights and laying out GPU buffers, then the prefill&#10;path that streams a whole prompt at once, why matrices are handed to cuBLAS&#10;transposed, the decode path that produces one token and the kernel written for&#10;it, splitting the KV cache into 16-token blocks read through a block table, and&#10;continuous batching over slots and queues.&lt;/p&gt;</description></item></channel></rss>