FlashAttentionScore算子batch size超限导致业务产出coredump并退出
发表于: 2026/06/04
背景概述
在基于昇腾AI处理器的深度学习训练场景中,FlashAttentionScore算子作为高效注意力机制的核心组件,广泛应用于大模型训练任务中。随着模型规模与序列长度的持续增长,对算子在高并发、大batch场景下的稳定性与性能提出了更高要求。在实际开发与调优过程中,部分用户反馈在使用特定版本CANN工具链时,当输入batch size超过一定阈值后,训练任务出现异常退出并生成coredump文件,影响了训练流程的连续性与可靠性。
问题现象
1.用户cann版本8.1.RC1 HDK 24.1.0.3 torch 2.1.0 训练作业数据产生coredump进程退出,coredump文件thread 1打印截图如下:
原因分析
1. 查看首报错,训练打屏日志exitcode -11,产生coredump文件后,业务退出,无其他异常打印,如下截图:
2. ma训练的同事分析coredump文件Thread 1,有昇腾的报错,需要我们分析一下报错的原因,从coredump分析是FlashAttentionScore算子有问题;
3. 通过修改代码打印了算子的q,k,v,输入、输出以及batch_size长度(就是actual_seq_len的长度);当batch_size低于2K的时候,业务能正常运行计算;当batch_size大于2k后,业务异常卡住,产生coredump文件;
问题根因
TND数据结构场景下,算子的输入的batch_size超限。
解决方案
建议升级至CANN 8.3.RC1及以上版本,该版本已对FlashAttentionScore算子的batch size处理逻辑进行优化,明确支持更大规模的输入序列长度,有效规避了因输入超限导致的内存越界与崩溃问题。
总结与建议
1. 在使用FlashAttentionScore等高性能算子时,应严格遵循对应CANN版本的输入约束规范,避免超限使用。
2. 推荐在生产环境及大规模训练任务中,优先采用CANN 8.3.RC1及以上版本,以获得更稳定的算子支持与更优的性能表现。
3. 对于高并发、大batch的训练场景,建议在部署前进行充分的边界测试,确保算子在极限输入下的稳定性。
备注:本问题已在CANN 8.3.RC1版本中修复,后续版本将持续优化算子健壮性与兼容性。



