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

CANN-昇腾NPU长序列训练-128K上下文怎么不OOM

Llama 3 支持 128K 上下文长度。训练时 128K 序列的 Attention 显存是 O(N²)128K × 128K × fp16 32GB 每层32 层 1TB。显然放不下。FlashAttention 把显存从 O(N²) 降到 O(N)但在训练场景下还有额外挑战。FlashAttention 的显存节省标准 Attention Q·K^T [batch, heads, seq, seq] ← 这个矩阵是 O(N²) 128K × 128K × fp16 × 32 heads 32GB/层 FlashAttention 不存 Q·K^T 矩阵分块计算只存 O(N) 的归一化因子 显存 ≈ Q K V O 4 × batch × heads × seq × dim × 2 bytes 128K × 128 × fp16 × 32 heads 1GB/层从 32GB 降到 1GB32 层从 1TB 降到 32GB。这就是 FlashAttention 训练长序列的前提。训练的额外显存激活推理只存 KV Cache。训练要存所有中间激活给 backward 用每层需要存的激活 Q, K, V: 3 × batch × heads × seq × dim Q·K^T 归一化因子: batch × heads × seqFlashAttention 的 O(N) 存储 Attention 输出: batch × heads × seq × dim FFN 中间结果: batch × seq × ff_dim Llama2-7B, seq128K, batch1: Q/K/V: 3 × 32 × 128K × 128 × 2 3GB 归一化因子: 32 × 128K × 4 16MB FFN 中间: 128K × 14336 × 2 3.5GB 每层约 7GB32 层 224GB224GB 的激活显存8 卡 Atlas 800I A2 总共 512GB去掉权重和优化器状态约 80GB剩 432GB 给激活——刚好放得下但没有余量。激活重计算Activation Recomputation用时间换空间forward 不存中间激活backward 需要时重新算一遍。fromtorch_npu.npuimportamp# 完整激活保存快但显存多withamp.autocast(dtypetorch.bfloat16):lossmodel(x)# 选择性激活重计算只重算 Attention 部分O(N²) 的那部分model.gradient_checkpointing_enable(gradient_checkpointing_kwargs{use_reentrant:False})withamp.autocast(dtypetorch.bfloat16):lossmodel(x)选择性重计算的显存节省策略激活显存训练速度全部保存224GB100%选择性重计算80GB85%全部重计算40GB70%选择性重计算只重算 AttentionFlashAttention 的 forward 很快保留 FFN 的中间结果重算代价大。这是 128K 训练的标配。Sequence ParallelismTensor Parallel 只切 head 维度Attention 的 LayerNorm 和残差连接在每个 rank 上重复计算。Sequence Parallelism 把这些操作沿序列维度切分TP: LayerNorm(x) → 每个 rank 算完整的 LayerNorm SP: LayerNorm(x) → 每个 rank 只算 seq/N 的一段 通信 TP每层 2 次 All-Reduce SP每层 2 次 All-Gather Reduce-Scatter通信量相同但显存省 N 倍SP 的 LayerNorm 激活显存从batch × seq × hidden降到batch × seq/N × hidden。8 卡 SP 的 LayerNorm 激存减到 1/8。实际配置Llama2-7B, 128K 序列, 8 卡 Atlas 800I A2fromatbimportTrainingConfig configTrainingConfig(modelmeta-llama/Llama-2-7b-hf,devicesnpu:0,1,2,3,4,5,6,7,tensor_parallel_size4,sequence_parallelTrue,gradient_checkpointingselective,# 选择性重计算micro_batch_size1,accumulation_steps16,max_seq_len131072,)显存分配权重 优化器: 80GB (4卡TP) 激活: 80GB (选择性重计算 SP) KV Cache: 32GB 余量: 320GB320GB 的余量意味着 batch 还能开更大或者序列更长。128K 长序列训练的三板斧FlashAttention 省显存、选择性激活重计算换空间、Sequence Parallel 切序列维度。三个一起上8 卡就能训 128K。仓库在这里https://atomgit.com/cann/ops-transformer

相关文章:

CANN-昇腾NPU长序列训练-128K上下文怎么不OOM

Llama 3 支持 128K 上下文长度。训练时 128K 序列的 Attention 显存是 O(N):128K 128K fp16 32GB 每层,32 层 1TB。显然放不下。FlashAttention 把显存从 O(N) 降到 O(N),但在训练场景下还有额外挑战。 FlashAttention 的显存节省 标准 At…...

MPC5604B/C Memory Map 内存映射全解析

一、前言 本文章主要说明底层开发、寄存器操作、Boot、Flash 编程,告诉你Flash 在哪、RAM 在哪、每个外设寄存器基地址是多少、保留区是哪些。 用途: 写寄存器头文件 写链接脚本 .ld Flash 擦写、Boot 跳转 调试定位非法地址 外设地址计算 二、MPC5604B 地址空间总规则(Pow…...

龙芯3A5000工业主板实战:从硬件部署到软件生态的国产化替代指南

1. 项目概述:一颗“中国芯”的工业级落地 最近,圈子里关于国产自主平台的消息又热闹了起来。这次的主角,是集特智能新推出的一款工业主板,核心搭载了龙芯3A5000处理器和7A2000桥片。对于长期深耕工业控制、边缘计算、网络安全这些…...

MPC5604B/C 信号与引脚全解|硬件 / 底层必看

一、前言 本章主要说明每个引脚叫什么、干什么、上电默认状态、是什么电气类型、复用哪些功能。包含 封装引脚分布(64/100/144LQFP、208MAPBGA) 电源 / 地 / 复位 / 晶振 / JTAG 引脚 引脚电气类型(S/M/F/I/J/X) 复位期间引脚状态 所有 GPIO 的复用功能 AF0~AF3 引脚与外设…...

基于Java的外卖点餐配送系统_43lq510m

目录 同行可拿货,招校园代理 ,本人源头供货商项目概述技术栈核心功能模块项目亮点部署方式学习价值 项目技术支持获取博主联系方式 源码获取详细视频演示 :同行可合作点击我获取源码->获取博主联系方式->进我个人主页--> 同行可拿货,招校园代理 ,本人源头供…...

CANN-昇腾NPU-多机多卡-怎么把16卡用出32卡的效果

16 张 Atlas 800I A2 的理论算力是 16 310 4960 TFLOPS(fp16)。但实际训练 Llama2-7B 只用到了 3200 TFLOPS——利用率 64%。这篇讲怎么把利用率从 64% 提到 85%,等效 16 卡用出 25 卡的效果。 利用率低的原因 理论算力: 16 310 4960 TFL…...

C++中多才多艺的 const

1. 定义一个常全局变量1const int global 100; // 初始化之后不可再赋值这样的global实际上是一个常量,这是C用来取代宏定义的其中一种措施,const常量有类型检测,提高编译器的效率。2. 定义常指针这有两个版本,分别是&#xff1a…...

新手学习Linux系统的11点建议

随着Linux应用的扩展许多朋友开始接触Linux,根据学习Windwos的经验往往有一些茫然的感觉:不知从何处开始学起。这里介绍学习Linux的一些建议。一、从基础开始:常常有些朋友在Linux论坛问一些问题,不过,其中大多数的问题…...

Linux操作系统安装图文配置教程详细版

随着嵌入式的发展,Linux的知识是必须的一部分,下面就让我们进行Linux系统的安装过程演示:一、 Linux的安装在此博客中以红旗(Red Flag)Asianux Workstation 3为例进行描述,其他版本的Linux与此相似。 1.1 安…...

HermesAgent工具如何快速对接Taotoken的多模型服务提供商

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 HermesAgent工具如何快速对接Taotoken的多模型服务提供商 基础教程类,本文将指导使用HermesAgent工具的开发者&#xf…...

今天不建Lovable ML平台,明天就被团队弃用!2025年AI工程团队留存率预警下的4步速建法

更多请点击: https://kaifayun.com 第一章:Lovable ML平台搭建 构建一个真正“可亲、可用、可信赖”的机器学习平台,核心不在于堆砌尖端框架,而在于以开发者体验(DX)和数据科学家工作流为设计原点。Lovab…...

写给新手的 asnumpy:昇腾原生 NumPy 到底是啥?

上周组里新来个校招生,看到代码里有个 asnumpy() 问我:“哥,这跟 NumPy 有啥区别?为啥不直接用 NumPy?” 好问题。今天一次说清楚。 asnumpy 是啥? asnumpy 是昇腾 NPU 上的原生 NumPy 实现。 一句话说清楚…...

【流体】二维稳态不可压缩层流通道流利用FVM和SIMPLE 解平行板间层流的速度、压力和温度【含Matlab源码 15558期】

💥💥💥💥💥💥💥💥💞💞💞💞💞💞💞💞💞Matlab武动乾坤博客之家💞…...

STM32H5安全连接AWS IoT:基于TrustZone与Secure Manager的物联网方案

1. 项目概述:当STM32H5遇上AWS云如果你正在用STM32H5系列高性能MCU做物联网设备开发,并且想把数据安全地送到AWS云上,那么意法半导体最近发布的这个X-CUBE-AWS-H5扩展包,绝对值得你花时间深入研究。这不仅仅是一个简单的“库文件”…...

联发科MT6833与MT6853 5G核心板:规格对比与产品选型实战指南

1. 项目概述:两款5G安卓核心板的定位与价值在当前的移动设备开发领域,尤其是面向中高端市场的智能手机、平板电脑以及各类智能终端,选择一颗性能强劲、功能集成度高且成本可控的核心处理器平台,是决定产品成败的关键。联发科&…...

【燃烧机】模拟了燃烧机的热力学循环分析活塞动力学以及温度和压力变化对发动机效率的影响【含Matlab源码 15557期】

💥💥💥💥💥💥💥💥💞💞💞💞💞💞💞💞💞Matlab武动乾坤博客之家💞…...

基于DSP与SC1083 ADC的光纤远程数据采集系统设计实战

1. 项目概述:当DSP遇上高速光缆,如何构建一个“快、准、稳”的远程数据采集系统在工业自动化、电力监测、超声无损检测这些领域,我们经常需要面对一个头疼的问题:如何把现场传感器采集到的大量、高速、有时甚至是微弱的模拟信号&a…...

瑞芯微RK3568与RK3566芯片选型指南:从接口差异到应用场景深度解析

1. 项目概述:为何要深挖这两颗“芯”?在嵌入式开发和智能硬件选型的圈子里,瑞芯微(Rockchip)的RK3568和RK3566是近两年曝光率极高的两颗“明星”芯片。很多刚接触的朋友第一眼看去,会觉得它们很像&#xff…...

AI智能体Skills设计:从API工具到核心能力的工程实践

1. 从“工具”到“能力”:重新理解AI智能体的Skills最近和几个做AI应用开发的朋友聊天,发现一个挺有意思的现象:大家一提到给智能体加“Skills”,第一反应往往是去翻看官方文档,找那个叫“Tools”或者“Functions”的列…...

嵌入式开发硬件生态构建:MIPI屏、UVC摄像头与4G模块的选型与集成实战

1. 项目概述:一次面向嵌入式开发者的硬件生态补全最近,我们团队负责的睿擎派(一个基于瑞芯微RK3566/RK3588等主流芯片的嵌入式开发板品牌)项目,迎来了一次重要的硬件配件更新。这次上新不是简单的“换个壳”&#xff0…...

为内部培训系统集成Taotoken提供个性化学习内容生成与答疑

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 为内部培训系统集成Taotoken提供个性化学习内容生成与答疑 在企业内部培训领域,技术部门常面临一个需求:如…...

观察Taotoken在不同时段与地域的API响应延迟表现

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 观察Taotoken在不同时段与地域的API响应延迟表现 对于依赖大模型API进行开发的团队而言,服务的响应延迟是影响开发效率…...

C++超详细讲解析构函数

析构函数是特殊的成员函数特征如下:析构函数名是~类名;无参数无返回值;一个类有且只有一个析构函数;对象声明周期结束,编译器自动调用析构函数;12345678910111213141516171819202122232425262728293031clas…...

Tina Linux嵌入式开发实战:从系统架构到应用移植全解析

1. 项目概述如果你正在接触全志科技的Tina Linux平台,无论是作为软件开发工程师还是技术支持,面对一个全新的嵌入式Linux SDK,最头疼的莫过于如何快速上手,理清从环境搭建到系统定制的整个脉络。这份指南就是为你准备的。Tina Lin…...

3分钟上手跨平台资源下载神器:轻松获取微信视频号、抖音无水印内容

3分钟上手跨平台资源下载神器:轻松获取微信视频号、抖音无水印内容 【免费下载链接】res-downloader 视频号、小程序、抖音、快手、小红书、直播流、m3u8、酷狗、QQ音乐等常见网络资源下载! 项目地址: https://gitcode.com/GitHub_Trending/re/res-downloader …...

SAS宏编程中IN运算符的三种实现方法与实战应用

1. 项目概述:从“硬编码”到“智能匹配”的宏编程跃迁在SAS宏编程的世界里,我们常常会遇到一个经典困境:如何优雅地处理一组离散的、但逻辑上同属一个类别的值?比如,你需要根据用户传入的省份名称,执行不同…...

权威深度指南:使用iperf3 Windows版进行网络性能评估与优化实战

权威深度指南:使用iperf3 Windows版进行网络性能评估与优化实战 【免费下载链接】iperf3-win-builds iperf3 binaries for Windows. Benchmark your network limits. 项目地址: https://gitcode.com/gh_mirrors/ip/iperf3-win-builds iperf3 Windows版是专业…...

汽车12V电源防护:P6KE TVS二极管选型、设计与实战指南

1. 项目概述:汽车电源线上的“隐形保镖”在汽车电子系统的设计里,12V直流电源线是整车的能量动脉,从蓄电池到ECU(发动机控制单元)、从车身控制器到娱乐系统,几乎所有的电子模块都离不开它。但这条“动脉”所…...

汽车12V电源保护:TVS二极管选型、应用与EMC测试实战

1. 项目概述:为什么汽车12V电源线需要“特种保镖”?在汽车电子系统里,那根看似普通的12V DC电源线,其实是个“压力山大”的角色。它不仅要给车机、仪表、传感器、ECU(电子控制单元)这些“大脑”和“神经”稳…...

基于RK3399核心板的智能PCR仪开发:从嵌入式系统到高精度温控

1. 项目概述:当PCR仪遇上高性能核心板在分子生物学实验室里,PCR仪(聚合酶链式反应仪)是当之无愧的“C位”设备。从基础的病原体检测、基因分型,到前沿的基因编辑、高通量测序文库构建,几乎每一个实验环节都…...