Swap Attention
背景与挑战
在大模型训练过程中,使用重计算功能可以显著减少内存使用,但会延长训练时间,从而降低执行效率。
解决方案
新增Swap Attention功能,利用设备内存和CPU内存存储激活值,在反向传播梯度时从CPU内存预取激活值以减少重计算,充分利用H2D高带宽的优势,通过网络补充存储、增强计算,提升MFU,加速大模型训练。
图1 Swap Attention原理示意

使用场景
使用方法
启用Swap Attention,需在训练脚本中加入以下参数配置:
--use-flash-attn # 启用前提需开启flash attention融合算子 --swap-attention
可选参数--swap-modules:参数类型为string,默认值为"input_norm,self_attention,post_attention_norm",可根据模型自行配置module,在Mcore场景下默认仅预取self_attention module。
使用效果
与完全重计算相比 ,有性能收益; 与不重计算相比,有内存收益。
父主题: 内存资源优化