Articles
Notes and analysis on LLM inference, GPU kernels, and systems engineering.
vLLM
- 一个 prompt 的一生:nano-vllm 从起服务到吐出 token
顺着 LLM(...) 和 engine.step() 两条线,把 nano-vllm 起服务时的进程拓扑、权重加载、显存规划、CUDA graph,以及一次推理里调度、张量准备、前向、采样、状态回写的全流程串成一张图。
- 同一个 Qwen3,两种写法:从 transformers 到 nano-vllm 的推理改造
以 Qwen3-8B 为例,先把模型结构和每一处维度画清楚,再逐项对照 transformers 与 nano-vllm 的实现差异:权重融合、扁平批次、分页 KV cache、注意力后端、RoPE、残差融合与张量并行。
- 对照 Nano-vLLM 实现:读懂 vLLM 调度
先用轮次快照把 nano-vllm 的调度看透,再对照 vLLM V1 的 schedule(),讲清混批、chunked prefill、token 预算与抢占这几处关键分歧。
GPU 编程
- Triton 学习笔记
本文介绍了如何编写 Triton 算子,列出了 Triton 的关键语法,然后介绍了 Triton 算子的优化流程,包括如何判断算子的正确性、如何准确测量性能以及如何识别瓶颈也优化。
- CUDA 编程模型与内存层次:一份学习笔记
本文先介绍了 GPU 的硬件模型,详细介绍了 SM,然后介绍了 CUDA 的编程模型(thread、warp、block、cluster、grid)以及编程模型是如何在硬件模型上运行的,接着介绍了 GPU 的内存层次,以及编程模型是如何使用这些内存的,最后探讨了下 warp 和 tensor core 的一些问题。
大语言模型
- 大语言模型推理和训练显存估算
本文以 Qwen3-8B 为例,我们对其推理/训练占用的显存进行了分类和估算,可依据此来筛选可用的 GPU 机器
并发编程
- 对 asyncio 更详细的介绍
本文介绍了 asyncio 的基本使用以及背后的事件循环和调度机制,总结了协程之间的同步机制,并介绍了协程的常用场景,对于计算密集型的 python 任务可以通过 loop.run_in_executor 丢到进程池中
- Python Parallel and Concurrent Programming
Core concepts of parallel and concurrent programming — threads, processes, the GIL, synchronization primitives, and executor pools — and how they play out in Python.
MLOps
- Docker Tutorial
Docker concepts, everyday CLI commands, and its architecture — plus why reproducible containers matter for ML/DL work.