我正在尝试在昇腾910B芯片上使用MindSpore 2.7.2训练一个基于Transformer架构的自定义模型。模型在PyNative模式下可以正常前向传播,但切换到Graph模式进行训练时,在编译阶段遇到了AICORE算子编译失败的问
收藏回复举报
我正在尝试在昇腾910B芯片上使用MindSpore 2.7.2训练一个基于Transformer架构的自定义模型。模型在PyNative模式下可以正常前向传播,但切换到Graph模式进行训练时,在编译阶段遇到了AICORE算子编译失败的问
t('forum.solved') 已解决
发表于2026-04-07 22:33:10
0 查看

MindSpore在昇腾环境训练Transformer模型时遇到AICORE算子编译失败问题求助

我正在尝试在昇腾910B芯片上使用MindSpore 2.7.2训练一个基于Transformer架构的自定义模型。模型在PyNative模式下可以正常前向传播,但切换到Graph模式进行训练时,在编译阶段遇到了AICORE算子编译失败的问题。

环境信息:

  • 硬件:昇腾910B

  • 操作系统:Ubuntu 20.04

  • MindSpore版本:2.7.2

  • CANN版本:8.2.RC1

  • Python版本:3.9

  • 模型框架:自定义Transformer结构,包含多头注意力机制和LayerNorm

错误信息:

RuntimeError: Launch kernel failed, name:Default/MatMul-op123
Error code: 0x80000001 (AICORE_COMPILE_FAILED)
Detailed message: AICORE算子编译失败,可能原因:输入shape不匹配或算子参数配置错误

尝试过的解决方法:

  1. 检查了MatMul算子的输入维度,确认符合矩阵乘法规则([batch, seq_len, d_model] × [d_model, d_model])

  2. 尝试设置mindspore.set_context(pynative_synchronize=True)查看详细报错栈,但信息有限

  3. 将模型简化到最基础的线性层测试,发现简单的MatMul可以正常编译

  4. 怀疑是自定义Attention模块中的reshape操作影响了图优化,尝试调整了construct函数中的控制流

  5. 参考社区文档设置了环境变量export MS_DEV_DISABLE_PREBUILD=True关闭算子预编译,但问题依旧

具体问题场景:

问题出现在自定义的MultiHeadAttention模块中。当sequence length超过512时,编译就会失败;小于512时可以正常编译。怀疑是昇腾AICORE对某些shape组合有特殊限制。

求助内容:

  1. 有没有类似经验的开发者遇到过AICORE算子编译失败的问题?特别是与Transformer模型相关的

  2. 如何进一步诊断AICORE编译失败的具体原因?是否有更详细的调试方法

  3. 昇腾910B对Transformer类模型的shape是否有特殊限制或优化建议

我要发帖子