已合并
add GradientAcc membar #8382
liuchuangdev创建于 8月7日
add GradientAcc membar #8382
已合并
Pull Request已成功合入, 合并人@CANN-robot
(感谢 liuchuangdev 的贡献)8月7日 创建了 pull request,commit e85c9365
atomgit-bot
8月7日 评论:
8月7日 评论:
变更摘要
此 PR 在 GradientAcc 模板函数中新增了一条 LocalMemBar 内存屏障指令,用于确保在向量存储(VEC_STORE)与向量加载(VEC_LOAD)之间的内存访问顺序正确,防止后续 DataCopyGather 操作因乱序访问而读到过时数据。
主要改动
- 在
GradientAcc中添加向量级内存屏障:于pooling/pool_grad_common/op_kernel/arch35/max_pool_grad_with_argmax_base_common.h的GradientAcc函数内,在DataCopyGather调用之前新增MicroAPI::LocalMemBar<MicroAPI::MemType::VEC_STORE, MicroAPI::MemType::VEC_LOAD>(),确保此前的向量存储操作全部完成后再执行后续的向量加载,避免数据竞争。


不准确?
atomgit-bot
8月7日 评论:
8月7日 评论:
8月7日 添加了label:cann-cla/yes
CANN-robot
8月7日 评论:
8月7日 评论:
Thanks for your pull-request.
The full list of commands accepted by me can be found at here。
You can get sig-info at here
PR Approval Progress
✅ Congratulations! All modules have met the lgtm and approve requirements.
Module Approval Details
| module | lgtm status | approve status |
|---|---|---|
| pooling | ✅ 黄迪, 汤平川 (2/2) | ✅ 汤平川, 黄迪 (2/1) |
💡 Tip:
- Committer can comment
/approveor/lgtm- Commenting
/approveimplies both code review (lgtm) and intent to merge (approve)
CLA Signature Pass
liuchuangdev, thanks for your pull request. All authors of the commits have signed the CLA. 👍


此处折叠了59条消息 查看更多
8月10日 添加了label:approved
TangPC
8月10日 评论:
8月10日 评论:
/lgtm
/approve


8月10日 添加了label:lgtm
8月10日 关闭了关联的issue
8月10日 合入了pull request
描述
修复
MaxPoolGradWithArgmaxV3NCHW 标量 kernel(arch35)在固定输入下偶发出现的精度错误。根因
max_pool_grad_with_argmax_v3_nchw_scalar.h中,输出缓冲yLocal被 Vector(清零/类型转换)、Scalar(标量累加)、MTE(DMA 拷贝) 三种执行单元交错访问。原实现仅用SetFlag/WaitFlag同步了 DMA 相关事件(MTE2_S/S_MTE3),缺少 Vector ↔ Scalar 之间的内存有序性保证:Duplicate(yLocal, 0)(Vector 清零)完成后,标量累加立即GetValue读 yLocal,可能读到 UB 中未清零的旧值;Cast读 yLocal 做类型转换,可能读到部分累加结果。由于以上竞争依赖硬件流水线时序,同输入多次运行结果不同(偶发)。
修复方法
在关键执行单元边界补充精准的硬事件同步(与同算子族 arch35 实现一致,如
pool_3d_common、adaptive_avg_pool3d_grad):V_S(Vector→Scalar)事件,确保 Vector 清零完成后 Scalar 才读 yLocal;Cast前加S_V(Scalar→Vector)事件,确保标量累加完成后再做类型转换。不改动任何计算逻辑与坐标索引。
关联的Issue
#4642
测试
问题用例测试、冒烟测试
文档更新
无。
类型标签
AI/Agent生成声明