【FlashAttention】 FA2与FA1算法区别辨析

看了几篇关于FlashAttention2的文章,对于其中移除冗余的CUDA操作这个算法优化进行了一个综合梳理。

https://zhuanlan.zhihu.com/p/1993815603383902344

https://zhuanlan.zhihu.com/p/668888063

https://zhuanlan.zhihu.com/p/665170554

注意,第10行在部分文章中错写成了diag的逆,应该根据这篇文章的伪代码为准(推测是之前存在笔误,改了之后又重新上传了)。

这里FlashAttention2与FlashAttention1看起来有很大差别,推导如下;

  1. 首先比较重要的一点是,在FA2里,关于m, P的计算都没有mijm_{ij}mij, pijp_{ij}pij的概念,而是直接计算mim_imi和minewm_i^{new}minew,pip_ipi和pinewp_i^{new}pinew。因此此处的mijm_i^jmij就是FA1中的mijm_{ij}mij - minewm_i^{new}minew。另外此处的P也就是FA1中的emij−minew∗Pe^{m_{ij} - m_i^{new}} * Pemij−minew∗P。
  2. 另外第二个点,就是在中间的迭代中不计算L,只在最后一个迭代计算。
相关推荐
沅_Yuan2 天前
基于核密度估计的CNN-LSTM-Attention-KDE多输入单输出回归模型【MATLAB】
机器学习·回归·cnn·lstm·attention·核密度估计·kde
阿钱真强道4 天前
01 飞腾 S5000C 服务器环境搭建实战:PyTorch + CUDA + RTX 4090D 安装与验证
pytorch·cuda·aarch64·深度学习环境搭建·飞腾服务器·s5000c·rtx4090d
酌量7 天前
nvidia orin agx刷机忘记CUDA runtime,安装torch和cuda
linux·笔记·ubuntu·torch·cuda·agx
明月醉窗台8 天前
[Jetson] NVIDIA Jetson 全系列边缘计算芯片进阶指南
人工智能·边缘计算·cuda·jetson
明月醉窗台12 天前
[Jetson] 在Jetson Xavier AGX编译opencv+cuda
人工智能·opencv·计算机视觉·cuda·jetson
专注VB编程开发20年13 天前
CUDA实现随机切割算法,显卡多线程计算
算法·cuda
bryant_meng17 天前
【NLP】《The Evolution of NLP: Understanding RNNs, Seq2Seq, and Attention》
人工智能·深度学习·自然语言处理·attention·seq2seq
KIDGINBROOK17 天前
NVIDIA NCCL 源码学习(十七)- LL和LL128协议
cuda·rdma·nccl
老鱼说AI17 天前
大规模并发处理器程序设计(PMPP)讲解(CUDA架构):第四期:计算架构与调度
c语言·深度学习·算法·架构·cuda
HelloTonyGo18 天前
个人游戏笔记本免费“养龙虾”(二)用显卡GPU运行OpenClaw,CUDA的安装与配置
gpu·nvidia·cuda·openclaw