Transformer算法
Transformer由Google的研究团队提出;论文发表于2017年。主要致力于在序列建模中提升并行性与长距离依赖建模能力,摆脱对循环卷积的依赖。Transformer的主要工作如下: 结构:利用编码器与解码器的结构 三种注意力:编码器多头自注意力、交叉注意力、解码器多头自注意力(含因果掩码) 位置信息:用位置编码赋予词向量序列信息 残差连接+层归一化+前馈网络(FFN):形成标准层块,稳定...
Transformer由Google的研究团队提出;论文发表于2017年。主要致力于在序列建模中提升并行性与长距离依赖建模能力,摆脱对循环卷积的依赖。Transformer的主要工作如下: 结构:利用编码器与解码器的结构 三种注意力:编码器多头自注意力、交叉注意力、解码器多头自注意力(含因果掩码) 位置信息:用位置编码赋予词向量序列信息 残差连接+层归一化+前馈网络(FFN):形成标准层块,稳定...
概述 连续批处理(Continuous Batching)是一种大语言模型(LLM)推理服务中的关键优化技术,用于提升 GPU 利用率和推理吞吐量。它最早由 vLLM 等项目推广普及,核心思想是动态地、持续地向正在执行的推理批次中添加新请求,而非等待整批请求全部完成后再开始下一批。 传统静态批处理的不足 在传统的静态批处理(Static Batching)模式下: 推理服务将多个请求打包成一个 ...
WMMA(Warp-level Matrix Multiply-Accumulate)是 NVIDIA CUDA 编程模型中提供的一组底层 API,专门用于调用 GPU 的 Tensor Core 进行Warp 级别的矩阵乘加运算。通过该接口,开发者可直接在 Warp 层面高效执行半精度(FP16)或混合精度的矩阵计算,从而显著加速深度学习模型的训练与推理。使用时需注意内存对齐与寄存器分配,通常需...
矩阵乘法的数学定义 矩阵乘法是线性代数中的核心运算。给定两个矩阵: 矩阵A:维度为$M \times K$ 矩阵B:维度为$ K \times N $ 它们的乘积矩阵$ C = A \times B $的维度为$ M \times N $。其中,C中的第i行第j列的元素$ C[i][j] $由以下公式计算: $$C[i][j] = \sum_{k = 0}^{K - 1}{A[i][k...
Softmax是Transformer中Attention计算的核心组件,本文从朴素实现暴露的数值问题出发,逐步引入Safe Softmax、Online Softmax等手段,一步一步优化Softmax Kernel的性能。 Softmax的定义 Softmax函数也称为归一化指数函数,它能将一个含任意实数的N维向量z压缩到另一个N维实向量$\sigma(z)$中,使得每个元素的范围都在(0, ...
LLM推理在做什么 训练是更新参数;推理是在固定参数下,根据输入token序列计算下一个token的分布,再采样,循环直至结束。推理不关心梯度,关心延迟、吞吐、显存占用。 对Decoder-only Transformer(如GPT、Qwen、LLaMA): 输入:一段prompt(可视为token序列(x_1, … , x_T))。 输出:在prompt之后逐个生成token,直到EOS...
1. 简介 RMSNorm和Batch Normalization(BN)、Layer Normalization(LN)等方法一样,都属于一种归一化方法,是提升训练稳定性、加速收敛的重要技巧之一。这里,我们不讨论这些方法的优劣性,我们只关注RMSNorm是如何计算的,以及CUDA程序如何实现和优化。 RMSNorm仅使用均方根归一化,即计算数据的平方的平均值,再开平方根,用来衡量数据的整体大小。...
Reduce(规约)是GPU编程中最基础,也是最能体现并行思维的算子之一。本文将一步一步带你优化Reduce sum算子,让你理解怎么写出更快的kernel。 1. Reduce算子基础 Reduce是一类"多输入->单输出"的操作。比如下列操作: Sum Reduce:$\sum_{i=0}^{N-1} x_{i}$ (输入为长度N的数组,输出为所有元素的和) Max...