提示关注:解析潜在原则
时尚关注:揭秘潜在原则
闪光关注是一种高效准确的Transformer模型加速技术,于2022年提出。通过感知内存读写操作,FlashAttention的运行速度比在PyTorch中实现的标准Attention快2-4倍,仅需要5% -20%的内存。
本文将解释Flash Attention的基本原理,说明它如何实现加速计算和节省内存,同时不影响注意力的准确性。
先决知识
GPU内存层次结构
如图1所示,GPU的内存由多个不同大小和读写速度的内存模块组成。较小的内存模块具有更快的读写速度。
对于A100 GPU,SRAM内存分布在108个流多处理器中,每个处理器大小为192K。这总共为192 * 108KB = 20MB。高带宽内存(HBM),通常称为视频内存,大小为40GB或80GB。
- 外行指南:人工智能是否真的能杀死我们所有人
- 遇见VonGoom:大型语言模型中数据毒化的新颖AI方法
- Upstage揭示了Solar-10.7B:在单回合对话中具有深度放大和精细调整精度的领先大型语言模型
SRAM的读写带宽为19TB/s,而HBM的读写带宽仅为1.5TB/s,不到SRAM的1/10。
由于计算速度相对于内存速度的提高,操作越来越受到内存(HBM)访问的限制。因此,减少对HBM的读写操作的次数,并有效利用更快的SRAM进行计算至关重要。
GPU执行模型
GPU具有大量线程来执行操作(称为内核),每个内核将输入从HBM加载到寄存器和SRAM中,执行计算,然后将输出写回HBM。
安全softmax
对于x = [x1, x2, …, xN]
,naive softmax的计算过程如公式(1)所示:
然而,在实际的硬件中,浮点数的范围是有限的。对于float32和bfloat16,当x ≥ 89
时,指数结果将变为inf,引发溢出问题[3]。
为避免数值溢出和确保数值稳定性,在计算过程中常常减去最大值,称为“安全…