MindSpore在昇腾环境训练Transformer模型时遇到AICORE算子编译失败问题求助
我正在尝试在昇腾910B芯片上使用MindSpore 2.7.2训练一个基于Transformer架构的自定义模型。模型在PyNative模式下可以正常前向传播,但切换到Graph模式进行训练时,在编译阶段遇到了AICORE算子编译失败的问题。
环境信息:
错误信息:
尝试过的解决方法:
-
检查了MatMul算子的输入维度,确认符合矩阵乘法规则([batch, seq_len, d_model] × [d_model, d_model])
-
尝试设置mindspore.set_context(pynative_synchronize=True)查看详细报错栈,但信息有限
-
将模型简化到最基础的线性层测试,发现简单的MatMul可以正常编译
-
怀疑是自定义Attention模块中的reshape操作影响了图优化,尝试调整了construct函数中的控制流
-
参考社区文档设置了环境变量export MS_DEV_DISABLE_PREBUILD=True关闭算子预编译,但问题依旧
具体问题场景:
问题出现在自定义的MultiHeadAttention模块中。当sequence length超过512时,编译就会失败;小于512时可以正常编译。怀疑是昇腾AICORE对某些shape组合有特殊限制。
求助内容:
-
有没有类似经验的开发者遇到过AICORE算子编译失败的问题?特别是与Transformer模型相关的
-
如何进一步诊断AICORE编译失败的具体原因?是否有更详细的调试方法
-
昇腾910B对Transformer类模型的shape是否有特殊限制或优化建议
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
错误信息:
尝试过的解决方法:
检查了MatMul算子的输入维度,确认符合矩阵乘法规则([batch, seq_len, d_model] × [d_model, d_model])
尝试设置
mindspore.set_context(pynative_synchronize=True)查看详细报错栈,但信息有限将模型简化到最基础的线性层测试,发现简单的MatMul可以正常编译
怀疑是自定义Attention模块中的reshape操作影响了图优化,尝试调整了construct函数中的控制流
参考社区文档设置了环境变量
export MS_DEV_DISABLE_PREBUILD=True关闭算子预编译,但问题依旧具体问题场景:
问题出现在自定义的MultiHeadAttention模块中。当sequence length超过512时,编译就会失败;小于512时可以正常编译。怀疑是昇腾AICORE对某些shape组合有特殊限制。
求助内容:
有没有类似经验的开发者遇到过AICORE算子编译失败的问题?特别是与Transformer模型相关的
如何进一步诊断AICORE编译失败的具体原因?是否有更详细的调试方法
昇腾910B对Transformer类模型的shape是否有特殊限制或优化建议