当前位置: 首页 > news >正文

Flash-Attention

这是一篇硬核的优化Transformer的工作。众所周知,Transformer模型的计算量和储存复杂度是 O ( N 2 ) O(N^2) O(N2) 。尽管先前有了大量的优化工作,比如LongFormer、Sparse Transformer、Reformer等等,一定程度上减轻了Transformer的资源消耗,但对Transformer的性能有所折损,且扩展性不强,不能泛化到其它领域、以及复杂结构的叠加。

这篇工作从底层对Transformer的计算和读写进行了优化,主要有三个贡献:

  1. 加速了模型计算:现在GPU的计算速度已经远远超过了内存读写速度,当GPU完成计算后,内存确还在读取数据,造成GPU闲置而内存繁忙读(消费者早就消费完了,生产者还在缓慢生产)的现象,也就是内存墙问题。FlashAttention通过tiling和算子融合计算,将复杂操作放到SRAM中计算,并减少从HBM读取次数,加快了模型计算速度。而之前的工作虽然减少了Transformer的计算复杂度,却并没有减少模型计算时间。
  2. 节省了显存:FlashAttention通过引入全局统计量,避免实例化大注意力矩阵,减少了显存占用。
  3. 精确注意力:FlashAttention从底层优化了Transformer的计算,但是任务指标上没有任何折损,与普通的Transformer结果是完全等价。

现代GPU内存分级

GPU


参考

  • FlashAttention:加速计算,节省显存, IO感知的精确注意力
http://www.lryc.cn/news/194128.html

相关文章:

  • 发布npm包质量分测试
  • 基于适应度相关优化的BP神经网络(分类应用) - 附代码
  • 复杂网络 | 利用复杂网络预测城市空间流量
  • 【1】c++11新特性(稳定性和兼容性)—>原始字面量
  • 学习pytorch13 神经网络-搭建小实战Sequential的使用
  • TCP发送接口(如send(),write()等)的返回值与成功发送到接收端的数据量无直接关系
  • 【Python、Qt】使用QItemDelegate实现单元格的富文本显示+复选框功能
  • 【JVM】JVM类加载机制
  • 【面试经典150 | 区间】汇总区间
  • 主流接口测试框架对比
  • LeetCode 150.逆波兰表达式求值
  • 华为---企业WLAN组网基本配置示例---AC+AP组网
  • 循环结构的运用
  • 深度强化学习第 1 章 机器学习基础
  • 第一章 STM32 CubeMX (CAN通信发送)基础篇
  • 原子性操作
  • 论文阅读:Segment Any Point Cloud Sequences by Distilling Vision Foundation Models
  • Netty 入门 — 亘古不变的Hello World
  • idea插件开发javax.net.ssl.SSLException: No PSK available. Unable to resume.
  • Selenium的WebDriver操作页面的超时或者元素重叠引起的ElementClickInterceptedException
  • oracle数据库的缓存设置
  • 算法通关村第一关-链表青铜挑战笔记
  • ✔ ★【备战实习(面经+项目+算法)】 10.15学习时间表
  • pytorch 训练时raise EOFError EOFError
  • node.js+NPM包管理器+Webpack打包工具+前端项目搭建
  • PCL点云处理之基于FPFH特征的全局配准流程具体实现(二百二十一)
  • ai_drive67_基于不确定性的多视图决策融合
  • Docker逃逸---procfs文件挂载
  • [Python小项目] 从桌面壁纸到AI绘画
  • 【Docker 内核详解】namespace 资源隔离(五):User namespaces