Latest Notes

YANG's Blog

按时间整理的技术笔记、学习记录和工程实践。

知识库
0. 从C++到CUDA
2026-05-09 Cuda算子

第一部分:核心思维转变1.1 设计哲学的差异 CPU GPU 核心数量 少(8~32) 多(数千) 单核能力 强(缓存、分支预测、乱序执行) 弱(砍掉了大部分控制逻辑) 擅长 复杂的串行逻辑 对海量数据做同样的简单操作 设计目标 低延迟 高吞吐 1.2 四个关键思维转变从”循环”到”线程网格” 12

1. Vector Addition
2026-05-09 Cuda算子

https://leetgpu.com/challenges/vector-addition 一、题目分析:这是什么类型的问题向量加法属于 embarrassingly parallel(极易并行)问题——每个输出元素的计算完全独立,没有跨元素的依赖、没有通信、没有归约。这是 GPU 编程里最简单的

0.5 GPU Kernel 学习路线图

这是一份与 AI Infra 主线并行的 GPU 算子学习路线。前面 Chapter0 讲的是”模型怎么散到几百张卡上”,这一份讲的是”每张卡上的 kernel 怎么贴近硬件极限”。两条线互相催化——只学 Infra 容易变成”调包侠”,只学 Kernel 容易变成”单机仙人”,配合学才能在 202

7. Checkpoint 与训练恢复

长训练必然挂——硬件会坏、网络会抽风、人会按错按钮、kernel 会触发数值 NaN。一个跑两周的 70B 训练 job 中途崩一次,如果没有 checkpoint,两周白干。所以 checkpoint 不是”训练好了之后存起来”,而是训练循环里和 forward/backward 同等重要的一环。

6. 多机训练与 NCCL 工程

前面 DDP / ZeRO / 异步计算 几篇都默认了一个很 naive 的设定:torchrun --nproc_per_node=4 就跑起来了。这在单机调试时够用,但只要你打算上 16 卡以上的训练——也就是必须多机——那一行命令就会给你扔出一堆稀奇古怪的 NCCL 报错、卡死、超时,而错误信

4. 混合精度训练

这一篇是后续 DDP / ZeRO / Pipeline 章节都会反复用到的”基石设定”。所有大模型训练都默认开混合精度——但到底什么是混合,混到什么程度,为什么不能直接全用 FP16,为什么 BF16 来了之后反而更简单了——很多人只知道”加个 autocast 就行”。这一篇把每个细节都拆开讲清

3 / 22