Ml-Infra
2026
从一次训练集群卡顿,理解 Linux Overcommit
·7429 字·15 分钟
起因 # 最近偶然看到一篇文章,里面提到一个 Linux 和 Windows 的差异:在 Linux 下,即使机器实际上没有足够的物理内存,一个很大的 malloc 仍然可能成功返回。而 Windows 对 committed memory 的管理要严格得多,类似的 allocation 更容易被直接拒绝。
从 Token ID 到 Dense Vector:Embedding 到底在做什么
起因 # 最近在继续 CS336 和 MIT 6.S191。
从 Forward 到 Optimizer:再看一遍 Training Loop
起因 # 跟 CS336 的作业写到 training loop 的时候,发现自己在 loss.backward() 这行停了一下。
从推理到训练:模型调度中的显存约束
·2607 字·6 分钟
推理任务能放下,为什么训练任务放不下 # 上一篇讨论了模型调度中的 Capacity Constraint:一组模型到底能不能同时放进一张 GPU。
从 reshape 到 einops:理解 Transformer 代码中的 Tensor Shape DSL
·6411 字·13 分钟
起因 # 最近在做 CS336(Language Modeling from Scratch)的 Transformer 实现,代码里反复出现这种写法:
从线上模型切换问题理解 PyTorch CUDA Caching Allocator:为什么显存管理需要理解生命周期
·7513 字·15 分钟
起因 # 我们的线上推理系统中存在大量模型——MLP、GNN、MoE,以及它们的各种组合。这个 workload 有几个重要特点:
从 DataLoader 到 Remote DataLoader:如何让 GPU 不再等待数据
·4999 字·10 分钟
起因:GPU 没吃满,但不是算力问题 # 最近组里有同学训练模型时,最直接的感受是:GPU utilization 上不去,step time 里总有一段在等数据。
从 AMP 到 Mixed Precision:训练和推理为什么不使用同一种精度
·5822 字·12 分钟
起因 # 以前在商汤做 CV 的时候,有一段时间在做目标检测模型的 INT8 量化。目标很直接:降低 inference latency,减少 model memory 和 bandwidth,同时利用 INT8 hardware throughput。
从参数量到 Peak Memory:模型显存到底应该怎么算?
·5253 字·11 分钟
起因 # 上一篇讨论了模型调度中的 Performance Constraint:一个模型放到 GPU 上以后,到底跑多快?
从 FLOPs 到 Latency:GPU 推理性能到底由什么决定?
·3335 字·7 分钟
起因 # 最近在做 CS336(Language Modeling from Scratch)的 resource accounting 作业,里面要求逐个列出 Transformer forward pass 中所有的 matmul,然后按 \(2MKN\) 计算 FLOPs。