你好,欢迎来到这里。

这封信不长,讲三件事:这个博客写什么、页面上那些不太常见的小功能是干什么的、以及你可能会问的几个问题。每个功能都可以在本文里直接试——这封信本身就是演示场地,随便划、随便点,不会弄坏什么。


一、这里写什么

主要是技术分享,近两年集中在 AI Infra:GPU、通信、大规模训练、推理系统、平台工程。文章按系列组织——比如《大模型推理系统揭秘:从 vLLM 看 LLM Serving Infra 核心技术》十四篇、《GPU Kernel 工程:从 CUDA 执行模型到 FlashAttention》十篇、《通信与互联:从 NCCL 到 RDMA》八篇……每个系列有一篇总览,每篇文章的开头会告诉你它是第几篇、上一篇下一篇是什么,文末有整个系列的目录。

更早的文章(2009 年起)是 Java、数据库、搜索、Spark 这些后端与大数据的内容,也有几篇瑜伽和生活随笔。全部文章在归档,按主题看去标签

写作的习惯:引用源码只写路径和函数名,不写行号;凡是讲结构、流程、时间线的地方尽量画图;系列文章会锁定软件版本(比如 “vLLM v0.27.1”),所以看到的代码和你手上的可能不同,以文中声明的版本为准。


二、阅读时会遇到的小东西

1. 悬停就能看的解释

正文里有两种带”角标”的词,都是悬停(手机上轻触)就地弹出解释,不用跳走:

  • 脚注编号——像这样:Ring AllReduce1 是数据并行训练里最常见的梯度同步算法,vLLM2 则是目前最流行的推理引擎之一。把鼠标放到那两个小数字上试试;卡片里可以有代码、表格、公式,点编号才会真的跳到文末。
  • ? 的虚线词——像这样:训练大模型时人们总在谈 MFUKV Cache。这是一两句话能说清的名词,我懒得让你去搜。

站外链接会带一个小 ↗,比如 PyTorch 官网,点了会开新窗口;站内链接(比如关于我)不带。

2. 代码、图、公式

  • 代码块右上角有复制按钮,悬停出现。
  • 图表大多是浏览器实时画的(Mermaid),点一下可以全屏放大、滚轮缩放、拖动,长图不用眯着眼看。文章里的图片也一样,点了放大。下面这张就可以点:
flowchart LR
    A["你选中一句话"] --> B["点「评论」"] --> C["写几句,GitHub 登录,发表"]
    C --> D["那句话变黄,段尾出现计数标记"]
    D --> E["别人点开就能看到、回复、投票"]
    classDef c fill:#f6f8fa,stroke:#d0d7de,color:#24292f;
    class A,B,C,D,E c;
  • 公式用 KaTeX 渲染,比如 Ring AllReduce 每张卡的通信量是 \(2\frac{N-1}{N}S\),与卡数 \(N\) 基本无关。

3. 目录与导航

长文章右侧有一个浮动目录,随滚动高亮当前章节,可以收起,顶部的框能过滤标题。文章头部那行小字告诉你发表日期、最后更新日期、大概要读几分钟、有多少人读过。

4. 搜索

导航栏右上角的放大镜(或者直接去 /search/)是全文搜索,不只搜标题。第一次打开要下载索引,之后就是纯本地的,很快。

想按时间翻,去归档——顶部那个「Go to article」框输入几个字就能跳到某篇,不用滚。想按主题翻,去标签;首页右侧的 HOT TAGS 是文章最多的几个主题。

5. 手机上看

页面是响应式的:手机上侧栏挪到底部、目录收成一个按钮、代码和表格左右滑动而不是换行挤在一起。字体跟随你的系统(iPhone 上是苹方 + San Francisco,Windows 上是微软雅黑),不下载任何网络字体,所以打开很快、也不会闪一下换字体。上面说的所有交互——悬停解释、划线评论、图放大——在手机上都是”轻触”版本。


三、评论:不只是文末留言

这是我最想让你试的部分。评论有两种方式,效果都存在这篇文章的 GitHub Discussions 讨论串里,需要 GitHub 登录(只授权 giscus 这个应用读写 Discussions,本站不保存你的任何凭据)。

1. 对一句话评论(划线评论)

用鼠标选中正文里的任意一段文字,选区上方会浮出一个小工具条:「评论」「复制」「搜一搜」和一个链接图标。「复制」就是复制文字;「搜一搜」把选中的词丢给 Google,遇到不认识的名词顺手就能查。点「评论」,段落下方就地展开一个输入框,顶部引用着你选的原文。写点什么,发表。然后你会看到:那段文字变成淡黄色,段尾多了一个带数字的小标记;点标记或点高亮,就能展开这段文字下面的全部讨论。

这几段是专门给你练手的:

在 GPU 集群里做数据并行训练时,每一步反向传播结束都要对全部梯度做一次 AllReduce。Ring AllReduce 把 N 个节点连成环,每个节点只和左右邻居通信,每步传输 1/N 的数据,做 2(N−1) 步,总通信量与节点数无关——这是它在带宽受限场景下成为默认选择的原因。

这一段故意留了一个错误:PagedAttention 是 TensorRT-LLM 首创的显存管理技术,把 KV Cache 切成固定大小的 block 按需分配,显存浪费从 60%–80% 降到 4% 以下。

几件顺手能做的事:

  • 同一段文字只有一个讨论串。如果你选的地方别人已经划过(有黄色高亮),点「评论」会直接加进那个讨论串,不会另起一条。想回应某个人,点他那条右侧的「回复」。
  • 发现我写错了:发表时勾上 「同时提交 Issue」。它会在博客仓库开一个 Issue 并署你的名字,评论上带一个红旗徽章——这是我处理勘误的工作队列,比留言更不容易被我漏掉。上面第二段就是给这个准备的。
  • 分享一句话:选中文字后点工具条上的链接图标,得到一个链接,别人打开会自动定位到这句话并闪烁两秒。
  • 划线可以跨过加粗行内代码链接、公式 \(O(N\log N)\)、列表和代码块,不受排版限制。

2. 文末评论

拉到文章底部是传统的评论区,同一个讨论串,同一套编辑器:支持 Markdown(图片可以直接粘贴,代码用 ``` 包),有撰写 / 预览两个页签和一排格式按钮,登录跳转回来后草稿还在。所有划线评论也会列在这里,带着它引用的原文,点「§ 原文位置」跳回那句话。

3. 投票、点赞、最受关注的段落

  • 每条评论右侧有 分数 ,赞同或反对,一人一票,再点取消。
  • 评论区顶部有 「有用」,觉得文章有用就点一下——这是我唯一能收到的、比阅读数更有信息量的反馈。
  • 当一篇文章被划了多处,评论区顶部会出现「最受关注的段落」:被划得最多、投票最高的几句话,点一下跳回原文并展开讨论。它某种意义上就是这篇文章的读者版摘要。

4. 你自己的评论

自己发的评论右侧有「编辑」「删除」,原地改、原地删。有人回复你时,GitHub 会按你的通知设置发邮件,不用守在这里。


四、订阅与联系

  • RSS/feed.xml,任何阅读器填这个域名就能自动发现。
  • GitHubarganzheng,文章的勘误 Issue 和 Discussions 都在博客仓库里。
  • 页脚有知乎、微信公众号(二维码)、LinkedIn。

五、FAQ

评论一定要登录 GitHub 吗? 是的。这是评论存在 GitHub Discussions 里的代价,也是好处:没有垃圾评论,你的评论属于你自己的 GitHub 账号,随时可以去 GitHub 上编辑或删除。

我的评论会被审核吗? 不会,发表即可见。我只在明显是广告或人身攻击时才会在 GitHub 上隐藏它。

我划线的那句话,作者改了怎么办? 小改(错别字、措辞)不影响,定位算法能容忍一定程度的改动。改动太大对不上时,你的评论会列在评论区顶部的「未能定位」里,评论本身一直在 GitHub 上,不会丢。

为什么有的文章链接点进去显示还没发布? 系列文章有时会用未来日期排期发布,到日期那天凌晨自动上线。

文章里的版本号和我用的不一样? 系列文章开头会声明基于哪个版本(比如 “vLLM v0.27.1”),文中的路径和函数名以它为准。如果版本差得远,欢迎划线告诉我哪里已经变了。

可以转载吗? 可以,注明出处和链接就好。

发现错别字、错链接、事实错误怎么办? 选中那句话 → 「评论」 → 勾「同时提交 Issue」。这是对我最有用的路径,谢谢。

阅读数怎么算的? 一个浏览器一篇文章一天算一次,我自己本地预览不算。它只是个量级参考。

这个博客是用什么做的? Jekyll + GitHub Pages,评论借 GitHub Discussions,一个很小的 Cloudflare Worker 做中转和计数。想了解细节可以看给我自己写的《博客备忘录》


看完了?选中这一段任意几个字,点「评论」,告诉我这封信哪里没讲清楚。

  1. Ring AllReduce:把 N 张卡连成一个环,数据切成 N 块,先做 N−1 步 reduce-scatter 再做 N−1 步 all-gather。每张卡的总通信量约为 \(2\frac{N-1}{N}S\),与卡数基本无关,所以在带宽受限的集群里成了默认算法。

    阶段 步数 每步每卡发送
    reduce-scatter N−1 S/N
    all-gather N−1 S/N

  2. vLLM:伯克利出品的开源推理引擎,核心创新是借鉴操作系统虚拟内存分页思想的 PagedAttention,把 KV Cache 切成固定大小的 block 按需分配,显存浪费从 60%–80% 降到 4% 以下。本站有一个十四篇的系列专门讲它。 


COMMENTS

评论存放在 GitHub Discussions, 用 GitHub 账号登录即可发表,支持 Markdown。 想针对正文某句话说?选中那段文字,点浮出的「评论」即可划线评论;觉得哪里写错了,发表时勾上「同时提交 Issue」。 有人回复你时 GitHub 会按你的通知设置发邮件,不用守在这里。

×