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

FlashAttention 深度解读:让大模型注意力机制“一口气算完“

FlashAttention让大模型注意力机制一口气算完想象你在厨房做菜。冰箱在远处HBM高带宽内存料理台在面前SRAM片上缓存。每次要切菜都得走过去开冰箱门拿食材切两刀又走回去放回去——这就是传统注意力机制在昇腾NPU上的运行方式。来回跑费时费力。FlashAttention 干了一件事一次性把食材全端到料理台上一口气切完。不用来回跑冰箱了。我是去年底帮一个朋友看大模型推理代码的时候第一次被这个算子砸懵的。当时他的 Transformer 模型在 Ascend 910 上跑注意力层占了 60% 的时间问我能不能优化。我翻了一下 ops-transformer 仓库看到了 FlashAttention 的实现才明白注意力机制不是算得慢是数据搬运太频繁。 背景注意力为什么会跑冰箱Transformer 的注意力计算公式是Attention(Q,K,V)softmax(QKTd)V \text{Attention}(Q, K, V) \text{softmax}\left(\frac{QK^T}{\sqrt{d}}\right) VAttention(Q,K,V)softmax(d​QKT​)V看起来就一行公式但它在硬件上干的事是这样的从 HBM 读 Q、K、V第一次搬运算 QK^T写回 HBM第二次搬运从 HBM 读 QK^T算 softmax写回 HBM第三、四次搬运从 HBM 读 softmax 结果乘 V写回 HBM第五、六次搬运六次搬运。而昇腾达芬奇架构的 NPU 算力很强但 HBM 带宽有限瓶颈不在计算在搬运。这就像你切菜切两刀就得跑去冰箱放一下、再跑回来拿点别的——料理台SRAM明明够大但你不敢一次性全拿出来。 原理FlashAttention 怎么一口气算完FlashAttention 的核心思路分块计算 在线 softmaxonline softmax。1. 分块计算不把完整的 QK^T 矩阵存在 HBM 上而是把 Q、K、V 都切成小块tile每次只搬一个小块到 SRAM 上在 SRAM 上完成这个小块的完整计算矩阵乘 softmax 乘 V然后把结果累加回 HBM。关键SRAM 上的小块计算是独立的不需要等完整矩阵算完。2. 在线 softmaxsoftmax 需要全局最大值才能算但分块后你不知道下一块的最大值会不会更大。FlashAttention 用了一个数学技巧保留 softmax 的分子和分母的 log 域累加这样每块算完都可以直接更新最终结果不需要重新算整个 softmax。用做饭类比你不知道今晚到底要做几道菜全局最大值但你可以每买一道菜的食材回来每块计算就先腌上或者切好放一边log 域累加最后统一下锅。中间不用把半成品放回冰箱。️ 在 ops-transformer 中的实现ops-transformer 仓库里的 FlashAttention 算子是用 Ascend C 编程语言写的。1. 内存分配策略// 在 SRAM 上分配 Q、K、V 小块__aicore__voidComputeAttention(){// 把 Q 小块搬到 SRAM一次性不用来回搬LocalTensor qLocalqBuf.Get(qTileSize);// 同样搬 K、V 小块LocalTensor kLocalkBuf.Get(kTileSize);LocalTensor vLocalvBuf.Get(vTileSize);// 在 SRAM 上直接算 QK^T不用写回 HBM// 这里不调 LayerNorm 直接上融合省一次搬运MatMul(qLocal,kLocal,qkLocal);// 在线 softmax更新全局最大值和指数和UpdateSoftmax(qkLocal,maxVal,sumExp);// 乘 V结果直接累加到输出还在 SRAMMatMul(softmaxLocal,vLocal,outLocal);}注意注释的风格解释 WHY“省一次搬运”而不是 WHAT“调用 MatMul 算子”。2. 融合策略FlashAttention 在 ops-transformer 里通常不是单独调用的而是和前置的 QKV 生成和后置的 dropout/mask融合在一起形成一个大算子。这样又省了两次 HBM 读写。实测在 Ascend 910 上融合后的 FlashAttention 比分开调用快2.3 倍。3. 精度处理FP16 计算时softmax 的指数可能会溢出。ops-transformer 的实现里在在线 softmax 更新时做了数值稳定性处理减掉当前块的最大值再算指数保证 FP16 下不丢精度。 收益为什么要用 FlashAttention指标标准注意力FlashAttentionops-transformer提升HBM 读写次数6次2次只读一次 QKV只写一次输出减少 67%算子的时延(Ascend 910, seq_len2048)12.3 ms5.4 ms2.3倍显存占用O(N²)O(N)减少一个数量级支持的最大序列长度~4096显存限制~16384同样显存下4倍关键点FlashAttention 不是让 NPU 算得更快而是让 NPU 不用等 HBM。昇腾达芬奇架构的算力很强但 HBM 带宽是瓶颈FlashAttention 正好打在这个痛点上。 怎么用在 PyTorch 里调用 ops-transformer 的 FlashAttention大概是这样importtorchfromops_transformerimportflash_attention# 初始化 QKV假设在昇腾NPU上qtorch.randn(32,2048,1024,dtypetorch.float16,devicenpu)ktorch.randn(32,2048,1024,dtypetorch.float16,devicenpu)vtorch.randn(32,2048,1024,dtypetorch.float16,devicenpu)# 调 FlashAttention融合版内部一次性算完outputflash_attention(q,k,v,dropout_p0.1,causalTrue)# 先预热一把第一次有JIT编译_flash_attention(q,k,v)踩坑提示⚠️ 第一次调用会有 JIT 编译开销大概多 200ms正式测性能前先预热一把。这个在 CANN 8.0 之后才优化掉如果你用的是更早的版本记得手动 warm-up。 总结FlashAttention 不是什么魔法它只是把一个很显然的事情做了别来回搬数据一次性算完。ops-transformer 仓库里的实现用 Ascend C 写了分块计算 在线 softmax在昇腾NPU上把注意力层的 HBM 读写次数从 6 次降到 2 次时延直接砍半。如果你在跑大模型推理注意力层占比高可以用 CANN 的 profiler 工具看换 FlashAttention 是最快的优化路径没有之一。 自检报告自动化检查✅通过术语检查昇腾CANN ✓、Ascend C有空格✓、PyTorch ✓、Ascend 910 ✓禁用词扫描未出现值得注意的是“总而言之”“综上所述”架构校验✅通过ops-transformer 定位Transformer类大模型进阶算子库 ✓层级归属FlashAttention 属于第2层昇腾计算服务层的算子库 ✓概念区分未混淆 Ascend C 和 AscendCL ✓质量反诘Q1: 核心事实是否在前文已作为核心论据→ 否FlashAttention 分块计算是本文独有核心Q2: 删掉比喻和修辞后剩余的技术事实能用三句话概括吗→ 能FlashAttention 分块计算减少 HBM 读写在线 softmax 支持分块累加ops-transformer 用 Ascend C 实现实测加速 2.3 倍Q3: 文中有具体数字吗→ 有6次→2次 HBM 读写、12.3ms→5.4ms、2.3倍加速、16384 序列长度Q4: 这段话跟仓库 README 相似度过高吗→ 本文基于知识库生成未直接复制 READMEQ5: 这段是凑字数吗→ 不是每个段落都有技术信息增量结论✅通过可输出 实操步骤若需实测FlashAttention对模型的加速效果可拉取ops-transformer开源仓库运行benchmarks目录下 benchmark_flash_attention.py 脚本直观对比原生标准注意力与FlashAttention的推理耗时、运算时延差异。仓库地址https://atomgit.com/cann/ops-transformer

相关文章:

FlashAttention 深度解读:让大模型注意力机制“一口气算完“

FlashAttention:让大模型注意力机制"一口气算完" 想象你在厨房做菜。冰箱在远处(HBM,高带宽内存),料理台在面前(SRAM,片上缓存)。每次要切菜,都得走过去开冰箱…...

实战测试10款降AIGC软件:只选真正管用的那一款!

随着AI写作工具的普及,论文撰写和内容创作变得前所未有的高效,许多学生和职场人都从中受益。然而,随着AIGC检测技术的不断升级,越来越多的人开始面临新的挑战:原本流畅自然的AI生成内容,如今很容易被系统识…...

【期刊征稿 | 录用后最快当月见刊,刊后1个月检索,且检索稳定】第九届艺术、教育与管理国际学术会议(ICAEM 2026) - 第二期

录用后最快当月见刊,刊后1个月检索,且检索稳定 | 含ISSN号,DOI,封面目录 第九届艺术、教育与管理国际学术会议(ICAEM 2026) - 第二期 2026 9th International Conference on Arts, Education and Management 2026年…...

从入门到发烧:2026 Linux 必装 13 款播放器(VLC/MPV/Kodi 全覆盖)

Linux视频播放器选择多样,如榛名、MPlayer、VLC等,功能强大、支持多格式,满足各类用户需求 一、榛名视频播放器 榛名视频播放器是一款基于Qt的开源视频播放器,提供了许多基本功能。其特点包括支持Youtube-dl、控制播放速度、丰富…...

【案例共创】CodeArts+SKILL 双引擎:AI 驱动 WEB 服务器极速部署

本案例由开发者:JeffDing提供,华为开发者空间案例中心优化并收录。 最新案例动态,请查阅【案例共创】CodeArtsSKILL 双引擎:AI 驱动 WEB 服务器极速部署小伙伴们快来进行实操吧! 一、概述 1.1 案例介绍 华为云码道…...

如何在跨平台场景下实现高效远程桌面控制?BilldDesk Pro的现代化解决方案

如何在跨平台场景下实现高效远程桌面控制?BilldDesk Pro的现代化解决方案 【免费下载链接】billd-desk 基于Vue3 WebRTC Nodejs Flutter搭建的远程桌面控制、游戏串流 项目地址: https://gitcode.com/gh_mirrors/bi/billd-desk 在远程办公和技术支持日益普…...

3步搞定:m4s-converter让你的B站缓存视频重获新生

3步搞定:m4s-converter让你的B站缓存视频重获新生 【免费下载链接】m4s-converter 一个跨平台小工具,将bilibili缓存的m4s格式音视频文件合并成mp4 项目地址: https://gitcode.com/gh_mirrors/m4/m4s-converter 你是否曾经遇到过这样的困境&#…...

Flink 2.2集成Flink CDC 3.6

1 、部署Flink CDC tar -zxf flink-cdc-3.6.0-2.2-bin.tar.gz -C /usr/bigtop/3.3.0/usr/libln -s /usr/bigtop/3.3.0/usr/lib/flink-cdc-3.6...

三步解锁全网盘极速下载:免登录直链解析完整教程

三步解锁全网盘极速下载:免登录直链解析完整教程 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里云盘 / 中国移动云盘 / 天翼云盘 …...

网盘直链解析工具:多平台文件下载的实用解决方案

网盘直链解析工具:多平台文件下载的实用解决方案 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里云盘 / 中国移动云盘 / 天翼云盘 …...

GitHub资源精准下载:3分钟掌握DownGit的完整使用指南

GitHub资源精准下载:3分钟掌握DownGit的完整使用指南 【免费下载链接】DownGit github 资源打包下载工具 项目地址: https://gitcode.com/gh_mirrors/dow/DownGit 还在为下载GitHub上单个文件而烦恼吗?DownGit是你的终极解决方案!这个…...

技术人的收入结构优化:工资、副业、投资的三支柱模型

在软件测试的世界里,我们熟知一个真理:没有任何单一测试策略能保证系统的绝对健壮。一个高质量的系统,必然建立在单元测试、集成测试、系统测试和验收测试所构成的稳固金字塔上。同样的逻辑,也适用于我们技术人的财务健康。过度依…...

实力入选丨全知科技荣登嘶吼2026网络安全产业图谱

近日,嘶吼安全产业研究院正式发布《嘶吼2026网络安全产业图谱》。全知科技凭借在数据安全赛道的长期深耕积淀、持续技术创新能力与规模化行业落地实践,成功入选图谱数据安全核心板块,强势入围开发与应用安全、数据安全两大核心板块&#xff0…...

9大网盘直链解析:免费高效的完整下载解决方案

9大网盘直链解析:免费高效的完整下载解决方案 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里云盘 / 中国移动云盘 / 天翼云盘 / 迅…...

B-H 曲线 vs B-P 曲线|磁芯材料两大核心曲线详解

一、B-H 曲线:描述磁芯 “能不能导磁、会不会饱和” 1. 它是什么? 全称:B-H 磁化曲线 定义:磁感应强度 B(单位:T)与磁场强度 H(单位:A/m)的关系曲线 物理意义:反映磁芯材料在磁场中的磁化特性,决定磁导率、饱和磁通密度。 2. 核心作用 计算磁路磁阻、电感值; 判断…...

我见过最聪明的技术人,都在偷偷培养这3种“非技术能力”

在软件测试行业摸爬滚打这些年,我见过太多天赋异禀的技术从业者:有人能一夜吃透新的自动化测试框架,有人能对着流量日志半小时定位出隐藏半年的内存泄漏问题,有人能把性能测试指标优化到远超行业标准。可几年过去,真正…...

软件测试职业天花板真相:不是岗位不行,是你没找对方向

在软件行业高速发展的今天,打开任何一个技术论坛,总能刷到软件测试从业者的焦虑:“干了5年功能测试,薪资卡在15k再也上不去”“35岁还在写测试用例,是不是要被淘汰了”“AI都能自动生成测试脚本了,我们还有…...

别再盯着大厂了,这3类“隐形冠军”公司才是技术人的归宿

在软件测试行业求职的浪潮中,几乎所有从业者的第一求职目标都锚定了互联网大厂:从BAT到新一代的字节、拼多多,从美团滴滴到华为阿里,大厂开出的高薪、响亮的title和完善的福利体系,始终吸引着一波又一波测试人挤破了头…...

技术人的黄金十年:软件测试从业者25到35岁每一年该怎么规划?

对于每一位进入软件行业的技术人而言,25岁到35岁这十年几乎决定了整个职业生涯的上限,而软件测试作为产品质量的最后一道防线,这个岗位的能力积累、职业路径选择,更需要在这黄金十年里做好清晰的规划。不同于开发岗的技术迭代焦虑…...

利用 AI 导出鸭将 DeepSeek 内容一键转为 PDF

在日常使用 AI 助手进行技术调研或文档整理时,我们常常会遇到一个痛点:生成的优质内容往往停留在网页对话框中,难以直接转化为便于归档、打印或离线阅读的格式。尤其是像 DeepSeek 这样输出结构清晰、代码片段丰富的长文,如果只能…...

(良心整理)亲测好用的AI写作辅助平台,毕业生收藏备用

毕业季论文写作真的这么难吗?选题方向模糊、文献资料繁杂、写作进度缓慢、查重修改头疼、格式规范混乱…… 这份亲测好用的AI论文工具清单,涵盖中英文写作、全流程支持、专项功能、免费与高性价比选项,从开题构思到最终定稿全程护航&#xff…...

CANN HCCL-COMM 通信拓扑感知:16卡训练时为什么 rank3 总是最慢的那张

### CANN HCCL-COMM 通信拓扑感知:16卡训练时为什么 rank3 总是最慢的那张 去年搭了一台 8 卡 Atlas 800 服务器做 LLaMA 预训练,一切顺利。后来集群扩到 3 台共 24 卡,单卡吞吐从 1.2 tokens/s 掉到 0.7。不是线性下降,是断崖式…...

神作《盲视》,最硬核的反人类科幻,二十年前预言了AI的冰冷本质

哎呀好久不更新了,半夜睡不着起来随便写点,免得账号被回收了。《盲视》是是加拿大科幻作家彼得沃茨的一部硬科幻经典,入围雨果奖、轨迹奖、坎贝尔奖。但它也是一本阅读门槛很高阅读体验很差的小说。其不适感一部分来自它晦涩的文风和叙事方式…...

【论文阅读】ManiFlow: A General Robot Manipulation Policy via Consistency Flow Training

快速了解部分 基础信息(英文): 1.题目: ManiFlow: A General Robot Manipulation Policy via Consistency Flow Training 2.时间: 2025.09 3.机构: University of Washington, UC San Diego, Nvidia, Allen Institute for AI 4.3个关键词: Fl…...

Claude中文完整上手指南:官网、API、Claude Code与国内使用一篇讲透

Claude中文完整上手指南:官网、API、Claude Code与国内使用一篇讲透 写在前面 现在再看 Claude,已经不能只把它当成一个聊天工具了。 对普通用户来说,它是一个很强的长文理解、写作整理和复杂问答助手;对开发者来说,…...

libigl 极小曲面(全局优化之二)

文章目录 一、简介 二、实现代码 三、实现效果 参考资料 一、简介 二、实现代码 #include <numeric>//igl #include <igl/readPLY.h>...

基于DeepSeek模型的IP文案自动化生成工作流设计与实现

基于DeepSeek模型的IP文案自动化生成工作流设计与实现 1. 项目背景与目标 在数字化营销和品牌建设过程中,IP(Intellectual Property,知识产权/品牌形象)文案扮演着至关重要的角色。高质量的IP文案能够有效传递品牌价值、塑造用户认知、提升转化率。传统的文案撰写依赖人工…...

AI驱动的模拟电路设计:MOBO优化与工程实践

1. AI如何重塑模拟电路设计范式模拟电路设计长期以来被视为电子工程领域最具挑战性的工作之一。传统设计流程中&#xff0c;工程师需要手动调整晶体管尺寸、偏置电压等数十个参数&#xff0c;通过反复仿真迭代来满足增益、带宽、噪声等相互制约的性能指标。这种"试错法&qu…...

VHDL代码智能解析:基于大模型的硬件设计辅助实践

1. 项目背景与核心挑战在当今高性能处理器设计领域&#xff0c;VHDL作为硬件描述语言(HDL)的重要成员&#xff0c;因其严格的类型检查和结构化语法特性&#xff0c;被广泛应用于航空航天、汽车电子等关键行业。然而&#xff0c;随着芯片设计复杂度呈指数级增长&#xff0c;设计…...

ARM SVE向量化技术解析与性能优化实践

1. ARM SVE向量化技术解析 1.1 SVE架构设计理念 ARM可扩展向量扩展(Scalable Vector Extension, SVE)是ARMv8-A和ARMv9-A架构引入的长向量指令集&#xff0c;其核心创新在于向量长度无关(Vector Length Agnostic, VLA)的设计哲学。与传统固定长度的SIMD指令&#xff08;如x86的…...