主页

梯度检查点(Gradient Checkpointing):用计算换显存

关联阅读:训练中的显存优化 ZeRO 优化 1. 问题:反向传播需要存激活 标准反向传播(Backpropagation Through Time / Chain Rule)需要在反向时访问每层前向传播的中间激活(intermediate activations)。 以一个 $n$ 层的模型为例: 前向:x₀ → [Layer 1] → x₁ → [Layer 2] → ... → xₙ₋₁ → [Layer n] → xₙ = loss 反向需要: dL/dx_{n-1} 需要 x_{n-1}(Layer n 的输入) dL/dx_{n-2} 需要 x_{n-2}(Layer n-1 的输入) ... dL...

阅读更多

FlashAttention:IO 感知的精确 Attention 计算

关联阅读:Transformer 加速技巧 混合精度训练(AMP) 1. 标准 Attention 的内存瓶颈 标准 Attention 计算为: \[\text{Attention}(Q, K, V) = \text{softmax}\!\left(\frac{QK^T}{\sqrt{d_k}}\right) V\] 朴素实现的显存复杂度为 $O(N^2)$(需要存储 $N \times N$ 的 attention score 矩阵),时间复杂度也是 $O(N^2 d)$。 瓶颈在哪里? 不是 FLOP 不够,而是 HBM(显存带宽) 太慢。 以 A100(80GB HBM2e,带宽 2TB/s,FP16 算力 312...

阅读更多

DualPath:用双路径 KV-Cache 加载打破 Agentic 推理的存储瓶颈

论文:DualPath: Breaking the Storage Bandwidth Bottleneck in Agentic LLM Inference arXiv:2602.21548,2026.02.25,作者:Yongtong Wu, Shaoyuan Chen, Yinmin Zhong 等(北大 + 字节 + 清华) 1. 问题:Agentic 推理的 I/O 瓶颈 近年来,以 Coding Agent 为代表的 Agentic LLM 应用呈现出与批量推理截然不同的访问模式。论文给出了来自生产环境的真实 trace 数据(coding task): 指标 数值 平均交互轮...

阅读更多

上下文并行在多模态模型中为什么会失效

前置阅读:序列并行(SP)与上下文并行(CP) 1. 背景:为什么需要 CP 对于纯文本 LLM,开启上下文并行(Context Parallelism,CP)可以将长序列的激活显存分摊到多张卡上: CP 组内每张卡只持有序列的 $L/P$ 段; KV-Cache 也按序列维切分,显存随 CP 度线性减少; Ring Attention 或 Ulysses 负责跨卡的 attention 计算。 Megatron-LM 的 get_batch_on_this_cp_rank 函数负责做这个切分,并且有一个负载均衡的细节: 1.1 Causal Mask 下的负载均衡 对于因果(causal)LLM,序列靠后的 token 需要 attend 到更多的 ...

阅读更多

混合精度训练(AMP):从 FP32 到 BF16

关联阅读:FP8 训练 Float16Module 1. 为什么要降低精度 全精度(FP32)训练的问题: 显存:一个 1B 参数模型,FP32 参数占 4GB,再加上同等量级的梯度和优化器状态,显存开销达 16GB+; 带宽:FP32 比 BF16 多占 2× 带宽,矩阵乘法的吞吐受限于内存带宽时损失明显; 硬件利用率:A100/H100 的 Tensor Core 在 BF16/FP16 下的峰值算力是 FP32 的 2-4×。 2. 数值格式基础 格式 符号 指数 尾数 数值范围 特点 ...

阅读更多

TP 并行的通讯计算

张量并行(Tensor Parallelism, TP)就是为了处理“大权重”。 然而,TP 并非免费的午餐。它的核心矛盾在于:通过切分矩阵降低了显存消耗,却引入了极高频率的计算内通信。 1. 权重的切分(通信算子的引入) 本文涉及的 AllReduce / AllGather / ReduceScatter 通信原语基础:NCCL 通信原语 张量并行的核心是将线性层 $Y = XW$ 进行切分。根据切分方向的不同,引入了不同的通信算子。 1.1 列并行 (Column Parallelism) 列并行将线性层的输出维度切开:把权重 $W$ 按列切分为 \(W = [W_1, W_2]\) 于是每块 GPU 只负责产出一段输出特征: \(Y = XW = [XW_1,...

阅读更多

NCCL 通信原语 (Primitives)

NCCL(NVIDIA Collective Communication Library)提供 GPU 间的集合通信 API,所有操作均与 CUDA Stream 绑定,支持 PCIe、NVLink、InfiniBand 等多种互联。 1 Broadcast 从 root rank 广播数据到所有设备。 ncclResult_t ncclBroadcast(const void* sendbuff, void* recvbuff, size_t count, ncclDataType_t datatype, int root, ncclComm_t comm, cu...

阅读更多

LLM 数据的过滤、去重

本讲:深入 mechanics 过滤(filtering)的算法工具:如何从海量原始数据里找“像目标数据”的子集 过滤的应用:语言识别、质量过滤、毒性过滤 去重(deduplication):从精确重复到近似重复(Bloom filter、MinHash、LSH) 1. 过滤(Filtering)总览:Target vs Raw 基本问题(算法模块) 给定小但高质量的“目标数据” T 与海量“原始数据” R 目标:在 R 中找到一个子集 T',使其“更像” T(但不要求与 T 完全相同) 对过滤算法的要求(Desiderata) 能从 T 泛化:希望 T 与筛出的 T' 不同,但风格/分布相近 极快:必须在巨大 R 上跑,吞吐量是第一约束 ...

阅读更多