---
title: FlashAttentionScoreGrad 算子偶发异常导致训练作业报错 EZ9999 的排查与解决-官方技术文章-昇腾社区
description: 在基于 CANN 与 PyTorch 构建的深度学习训练环境中&#xff0c;用户在使用 Atlas 900 A2 PoD 进行大规模模型训练时&#xff0c;偶发出现训练作业中断并报错 EZ9999 的问题。该错误发生在算子执行阶段&#xff0c;日志中明确提示 AICore 异常&#xff0c;且错误信息指向 FlashAttentionScoreGrad 算子。此类问题虽不常见&#xff0c
keywords: FlashAttentionScoreGrad,算子偶发异常,导致训练作业,报错,EZ,的排查与解决,官方技术文章,昇腾社区
url: https://www.hiascend.com/developer/techArticles/20260722-1
section: (其他)
---

# FlashAttentionScoreGrad 算子偶发异常导致训练作业报错 EZ9999 的排查与解决-官方技术文章-昇腾社区

URL: https://www.hiascend.com/developer/techArticles/20260722-1
描述: 在基于 CANN 与 PyTorch 构建的深度学习训练环境中&#xff0c;用户在使用 Atlas 900 A2 PoD 进行大规模模型训练时&#xff0c;偶发出现训练作业中断并报错 EZ9999 的问题。该错误发生在算子执行阶段&#xff0c;日志中明确提示 AICore 异常&#xff0c;且错误信息指向 FlashAttentionScoreGrad 算子。此类问题虽不常见&#xff0c
关键词: FlashAttentionScoreGrad,算子偶发异常,导致训练作业,报错,EZ,的排查与解决,官方技术文章,昇腾社区

官方技术文章 [了解详情](https://www.hiascend.com/zh/developer/techArticles)

FlashAttentionScoreGrad 算子偶发异常导致训练作业报错 EZ9999 的排查与解决

FlashAttentionScoreGrad 算子偶发异常导致训练作业报错 EZ9999 的排查与解决

模型训练

发表于: 2026/07/22

22

0

## 背景概述

在基于 CANN 与 PyTorch 构建的深度学习训练环境中进行大规模模型训练时，偶发出现训练作业中断并报错 EZ9999 的问题。该错误发生在算子执行阶段，日志中明确提示 AICore 异常，且错误信息指向 FlashAttentionScoreGrad 算子。

## 问题现象

1.

单机 8 卡作业异常：训练作业在运行过程中出现异常中断，plog 首报错为 EZ9999，错误信息中`fault_kernel_name=FlashAttentionScoreGrad`。

2.

开启 exception dump 后问题不复现：用户后续开启 exception dump 功能后，该问题不再出现，增加了排查难度。

## 原因分析

1. plog 关键错误信息

在 plog 中打印了以下关键错误信息：

`The extend info: errcode:(0, 0x8000, 0) errorStr: When the D-cache reads and writes data to the UB, the response value returned by the bus is a non-zero value.`

该报错表明，算子在内部进行 UB（统一缓冲区）内存搬运时，总线返回了一个非零的错误值，说明存在异常的内存访问行为。

2. AICore 异常错误

同时，日志中还上报了 AICore 异常错误。其中，`current`地址传递正确，但`pc start`地址传递错误。`pc start`地址由 PTA 传递给 CANN，因此问题大概率是由于 PTA 传递了错误的地址，导致算子执行失败。

## 问题根因

PTA 默认配置`TASK_QUEUE_ENABLE=1`，该配置下多卡会共用一块未加锁的 cache。在单进程多卡的场景下（一张卡对应一个线程），多线程并发访问同一个 cache 时存在概率性冲突，从而导致报错。

通过配置`TASK_QUEUE_ENABLE=2`，可以使每张卡拥有独立的 cache，从而避免并发冲突问题。

## 解决措施

1.

临时规避方案：开启`TASK_QUEUE_ENABLE=2`，使每张卡使用独立的 cache，避免多线程并发冲突。

2.

推荐方案：升级 PyTorch  版本，在计算 workspace 时会同步获取 task_queue 所在的 device 信息，后续根据获取到的 device 信息去对应的 cache 中申请，从根本上解决了该问题。

## 建议与总结

任务下发流程示意

●

一级流水：主线程将算子任务串行下发至一级流水。

●

二级流水：下发的算子进入二级流水后，由对应的 NPU 并行执行算子操作。

### 版本建议

建议用户优先升级至 PyTorch 630 版本（CANN 7.1.0 及以后版本），该版本已彻底修复此问题。若暂时无法升级，可通过配置`TASK_QUEUE_ENABLE=2`进行规避。

边框设置

无框线

边距

宽度

1磅

颜色

自由布局设置

整体布局

子模块

评论

修订记录

对正文进行的文本增删、样式修改都将标记为修订

自定义多级列表

列表设置

- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9

- 1.
- a.
- i.
- 1.
- a.
- i.
- 1.
- a.
- i.

前缀

无

序号

1 2 3 ...

后缀

.

编号格式

列表显示

继承层级

不继承

位置

对齐方式

默认

单元格边距

边距

默认

左边距

cm

右边距

cm

上边距

cm

下边距

cm

点赞 0

本页内容

背景概述 [了解详情](https://www.hiascend.com/#5sGf5sTEpXdJQrsN9TGQtn)

问题现象 [了解详情](https://www.hiascend.com/#MMwJuMVbxKj4Q8SV9bf9j)

原因分析 [了解详情](https://www.hiascend.com/#18cuo8A6zZbwXvdU36mlEc)

问题根因 [了解详情](https://www.hiascend.com/#cKGaD5cUCYhsXNyIbbQvW)

解决措施 [了解详情](https://www.hiascend.com/#1DKuubJYibJ78Nyeo4V5gd)

建议与总结 [了解详情](https://www.hiascend.com/#4qK8FCLQqXa4WSF9mm4XJB)
