昇腾910环境MindSpore训练大模型时出现内存分配失败,求解决方案
收藏回复举报
昇腾910环境MindSpore训练大模型时出现内存分配失败,求解决方案
t('forum.solved') 已解决
发表于2026-04-09 23:20:11
0 查看

昇腾910环境MindSpore训练大模型时出现内存分配失败,求解决方案

大家好,我在昇腾910平台上使用MindSpore进行大模型训练时遇到了一个棘手的内存问题,尝试了多种方法仍未解决,特来社区求助。

环境配置:

  • 硬件:昇腾910 AI处理器

  • 操作系统:Ubuntu 20.04 LTS

  • MindSpore版本:2.7.1

  • CANN版本:8.2.RC1

  • Python版本:3.9

  • 模型:基于Transformer架构的7B参数大模型

错误现象:

在训练启动后不久,程序报错退出,错误信息如下:

RuntimeError: Malloc device memory failed, drvRetCode=6
Memory resources are exhausted. Try to reduce model size or batch size.

已尝试的解决方案:

  1. 检查了CANN与MindSpore版本配套性,确认版本匹配

  2. 尝试减小batch_size从32降至8,问题依旧

  3. 检查了设备内存使用情况,发现内存占用在训练开始后迅速达到上限

  4. 尝试使用MindSpore的内存优化配置,包括设置context.set_context(memory_optimize_level="O1")

  5. 验证了单卡推理可以正常运行,但多卡训练时出现此问题

问题分析:

从错误信息看,似乎是设备内存资源耗尽。但奇怪的是,同样的模型在GPU平台上训练时内存使用正常。我怀疑可能是昇腾平台上的内存管理机制或某些算子实现存在差异。

具体疑问:

  1. 昇腾910上是否有特殊的内存优化配置或参数需要设置?

  2. 是否有针对大模型训练的特定内存管理策略?

我要发帖子