在软件开发中,一个项目从最初的几行代码,到逐渐演化成复杂系统,整个开发过程本质上是一系列变化的积累。但问题在于,变化本身是很难管理的。我们如何描述项目状态的变化?如果没有工具,我们只能:手动复制文件做备份(例如 project_final...
马尔可夫决策过程(Markov decision process,MDP)是强化学习的重要概念。本文在动手学强化学习著作的基础上,对于马尔可夫决策过程进行了总结。随机过程 (stochastic process) 研究对象是随时间演变的随机...
本文会介绍在并行计算中常见的通信原语。我们定义每个设备为一个 rank. 在并行集合通信中, All 表示通信的 dst 是所有设备 Reduce 表示对于数据执行 associative/commutative 计算(例如求和/求平均...
本文介绍 FlashAttention 的核心思想,并推导其关键公式,说明其如何通过分块计算与在线 softmax 更新,在不显式构造 $N\times N$ attention 矩阵的情况下减少显存访问与内存开销,从而提高 GPU 计算效率。
本文简单介绍了在 CUDA 环境下 Grid, Block 和 Thread 的概念,以及如何寻找它们的地址。CUDA Kernel 是一个用 __global__ 声明的函数,它在 GPU (device) 上执行,由 CPU (host...
在大模型推理系统中,涉及 batching、KV Cache、Prefill/Decode、并行策略等大量概念。本文将对这些关键机制进行系统梳理。