自适应选择重计算

问题分析

重计算技术是优化显存使用的关键手段,通过避免冗余数据存储以减少显存占用。然而,传统的重计算策略往往预设固定模式,未能动态响应实际显存需求,限制了显存资源的高效利用。

解决方案

为了实现NPU显存资源的最大化利用并显著提升模型训练效率,我们引入了自适应选择重计算特性。这一创新机制能够智能调整训练过程中的内存分配,依据当前显存状况动态选择最佳的重计算策略

解决思路

自适应选择重计算特性由三大关键组件构成:

自动选择重计算策略流程如下图所示。
图1 自动选择重计算策略流程
图2 SwapManager管理流程

使用场景

特别适用于训练阶段,尤其是当全重计算模式下NPU显存仍有较大剩余空间,追求更优训练性能的场景。

使用方法

使用效果

相较于全重计算模式,Llama2-7B模型训练场景下性能提升约16.29%,Llama2-13B模型训练场景下性能提升约12.05%,显著优化了训练效率与资源利用。

注意事项

鉴于“自适应选择重计算”与“显存碎片优化”两项特性均涉及对PyTorch内存管理机制的深度调整,同时启用这两项功能可能引发操作上的不兼容性。为确保软件架构的稳定性和安全性,MindSpeed已预先部署了断言检测机制(assertion check),以防止此类冲突状况的发生。我们建议用户根据具体的应用场景和资源需求,谨慎选择其中一项特性进行启用,以避免潜在的系统异常。