QuanZhou's Wiki
Last updated on

Systems & AI Infrastructure


以系统软件与数据基础设施为主线:已在 xv6 与 BusTub 中完成虚拟内存、文件系统、缓冲池、并发索引、查询执行与 MVCC 等核心模块;当前将这些系统能力迁移到单机 LLM Serving,聚焦请求链路、KV Cache、调度与性能工程。

focus
AI Infrastructure / Systems
foundation
OS · Storage Engine · Concurrency
working set
C · C++ · Python · RISC-V · Linux
method
implement → benchmark → source trace → write

系统项目

MIT 6.S081RISC-V · xv6 · C · Linux

2026.02 — 2026.04 · independent implementation

基于 RISC-V / xv6 扩展内存、进程、Trap 与文件系统路径,重点验证虚拟内存、异常处理和持久化语义。

  • 实现独立内核页表与用户页表映射机制,掌握 trampoline、trapframe 与页表切换流程。
  • 基于 page fault 实现 lazy allocation 与 copy-on-write fork,维护物理页引用计数。
  • 扩展 trap 与 syscall 机制,实现 alarm 系统调用和用户态定时回调。
  • 实现非抢占式用户级线程库,支持线程创建、上下文保存/恢复与协作式调度。
  • 扩展 xv6 文件系统,支持三级间接索引、软链接、mmap/munmap 与按需映射回写。
CMU 15-445BusTub · C++ · Linux

2025.11 — 2025.12 · independent implementation

围绕单机数据库内核完成存储、索引、执行、优化与事务链路,实现可并发访问的 BusTub 核心模块。

  • 实现线程安全的 BufferPoolManager,维护 page/frame 映射、pin count、dirty flag 与换入换出。
  • 实现 LRU-K 页面替换器,并与 Buffer Pool 的 evictable 状态协同工作。
  • 实现支持并发访问的 B+Tree 索引、节点 split/merge/redistribution 与有序迭代器。
  • 基于 Volcano Iterator 模型实现 Scan、Join、Aggregation、Sort、Limit、Distinct 等算子。
  • 实现规则优化器,将 SeqScan 改写为 IndexScan,将 NestedLoopJoin 改写为 HashJoin。
  • 基于版本链和 undo log 实现 MVCC,支持快照隔离下的并发读写。

AI Infra 学习路线

2026.07.27 — 2026.08.11阶段 1 · LLM Serving 请求链路与基线已完成
request lifecycle baseline / 16 days
scope
single-node · single-request · 4B quantized model
runtime
Ollama · vLLM Metal
evidence
2 articles · benchmark script · CSV · raw logs
boundary
no streaming concurrency or tail-latency claim

核心问题

  1. 请求如何经过 API、Tokenizer、Scheduler、Model Runner 与 Backend?
  2. Prefill、Decode 与 KV Cache 分别承担什么计算和状态?
  3. 输入/输出长度如何改变 Prefill、Decode 与端到端耗时?
  4. 实验结论依赖哪些环境、负载、统计口径和证据边界?

已交付证据

reading queue 展开阅读清单
prompt
  -> tokenizer
  -> prefill  ->  KV Cache
  -> decode   ->  scheduler / batching
  -> response

constraint: KV Cache consumes GPU memory
2026.08.12 — 2026.09.12阶段 2 · 单机 LLM Serving 性能与调度进行中
serving performance & scheduling / 32 days
question
负载、调度预算与 KV 容量如何共同决定吞吐和尾延迟
baseline
Qwen3-4B · vLLM Engine · Metal backend · single-node
variables
request rate · concurrency · sequence length · scheduler budget
evidence
stream timestamps · CSV/JSON · server metrics · config/logs

核心问题

  1. 单层 Self-Attention 如何完成 Q/K/V、缩放点积、因果 Mask、Softmax 与输出计算?
  2. Decode 时哪些 K/V 可以复用,KV Cache 的计算收益、容量与 block 生命周期是什么?
  3. Input/Output 长度分布如何改变 Prefill、Decode 与 KV Cache 占用?
  4. Request Rate、Client Concurrency、Active Sequences 与 Token Budget 如何区分?
  5. 并发增加时,Token Throughput 为什么先提高再饱和,而尾延迟继续恶化?
  6. 长 Prefill 如何干扰 Decode ITL,Continuous Batching 与 Chunked Prefill 如何缓解?
  7. 客户端时序如何对应到 Scheduler 决策和 KV Block 生命周期?

必交证据

  • 冻结四条可证伪假设,预先定义 Supported、Refuted 与 Inconclusive。
  • Toy Attention:手算一个最小样例,标注张量形状,并用测试校验 Cache / No-Cache Decode 数值等价。
  • 容量模型:估算权重、KV Cache、运行时 Buffer 与可容纳序列数。
  • 实现可配置长度、并发、公共前缀与到达模式的流式 Benchmark Harness。
  • 采集 TTFT、TPOT、ITL、E2E、吞吐、分位数及 Queue/KV 服务端指标。
  • 完成 Length、Concurrency、Mixed Workload 与 Prefix Reuse 单变量实验。
  • 交付 Scheduler 源码纵切、原始 CSV/JSON、配置日志与可复现技术报告。

执行窗口

08.12 — 08.18 / week 01

Attention 计算基线与 KV Cache

跟踪单层 Q/K/V 数据流,完成手算样例与 Toy Attention;再推导 Cache 复用、容量和复杂度。

gate shape trace + hand case + equivalence tests

08.19 — 08.25 / week 02

Benchmark Harness 与负载扫描

记录真实 Token 与逐请求流式时序;独立扫描长度、Request Rate 和 Client Concurrency。

gate warmup + repeat + raw CSV/JSON

08.26 — 09.01 / week 03

Scheduler、混合负载与 Prefix Reuse

跟踪一次 Engine Step,验证调度预算、长短请求混合与公共前缀复用的影响。

artifact source trace + workload matrix

09.02 — 09.08 / week 04

对照实验与技术报告

固定版本、模型和负载分布;对关键变量重复测量,用客户端与服务端证据解释结果。

gate reproducible report + figures + limitations

09.09 — 09.12 / review

异常复测与证据封装

复测反常数据,补齐配置快照、原始产物、复现命令与结论适用边界。

release article + lab bundle

[scope] 先补齐单层 Attention 与 KV Cache 所需的最小计算链路,不要求先推完整 Transformer Block 或 Kernel;本阶段仅讨论单机 Serving,Speculative Decoding 与分布式并行移出范围。

reference set 核心材料 / 按需扩展
load: request_rate != client_concurrency
  -> queue: queue_time / waiting_requests
  -> scheduler: active_sequences + token_budget
  -> prefill / chunked_prefill <-> decode
  -> KV blocks: allocate / reuse / release
  -> client: TTFT / TPOT / ITL / E2E / throughput
  -> server: running / waiting / KV_cache_usage

scope: backend + hardware + model + version + workload

验收标准:在固定环境与负载分布下,能用客户端流式时序和服务端 Queue / Scheduler / KV 指标解释吞吐饱和与尾延迟恶化;报告保留原始产物、复现命令、反例及 Backend / Hardware / Version 适用边界。

学习与 AI 协作原则

不回避 AI,不外包判断。独立编程用于维护建模、实现、调试与解释能力;AI 用于扩大代码库探索、验证和工程交付效率。最终结论只由代码、测试、测量与可复现证据确认。

M0

独立模式

用于核心机制、第一轮调试与最终解释;AI 不介入问题求解。

own: model · invariant · implementation
M1

教练模式

用于源码导航、概念澄清与反例生成;AI 提问和 Review,不直接接管结论。

own: source trace · hypothesis · trade-off
M2

Agent 模式

用于脚手架、测试、数据处理与重构;AI 在明确契约和验收标准内执行。

own: scope · acceptance · final diff

before delegation

  • 定义 Question、Prediction 与 Invariant。
  • 限定 Action 与 Allowed AI Help,写明不可外包的判断。
  • 指定 Artifact,并用测试、指标或可观察行为定义 Acceptance。

after delivery

  • 审阅完整 Diff,运行测试并复现实验。
  • 脱离对话解释关键路径,独立修改一个约束。
  • 记录 Feedback、Reflection、适用边界与下一项决策。
question -> prediction
  -> minimum necessary reading
  -> implementation
  -> test / benchmark
  -> explanation -> review -> correction

competitive edge =systems depth × AI leverage × evidence ownership × external feedback

验收标准:能够在不查看 AI 对话的情况下解释机制、复现实验并修改约束;否则只视为完成交付,不视为掌握。