已开启
[Documentation|文档反馈]: AtomicFAA/CAS延迟提交次数上限混淆SQ block与调用数 #60
tianjun创建于  23 天前
tianjun
23 天前 创建

场景与影响

中文AtomicFAA/CAS约束先说明每次占用2个WQE block,却又允许commit=false连续调用sqDepth次。实现PostSend按wqeBbCnt推进sqHead,FAA/CAS为2,sqDepth是block容量,且在容量前还有CQ轮询水位。因此按文档次数安排延迟提交会超出实际容量;例如128次原子操作需要256个block,并非128个。

版本与位置

master 基线 e3b8a5a8a27feb68686d56367d15a5a68e8030ff。

复现与验证

静态核对当前PostSend的FAA/CAS wqeBbCnt=2、curHead += wqeBbCnt和PollCqWhenSqOverflow的轮询水位条件。Host算术核验sqDepth=128时128次调用需要256个block;没有把floor(sqDepth/2)宣称为考虑轮询水位后的安全批次上限。修改只涉及说明,不声称设备队列测试通过。 仓库适用 pre-commit hooks 与 diff --check 通过。 Markdown链接hook以离线模式使用lychee 0.23.0,未声明外部HTTP链接检查通过。

预期与修复建议

中英文API和Hcomm使用指南统一按未回收WQE block计数,考虑已有未完成任务和轮询水位,要求及时Commit;取消将sqDepth直接用作原子调用次数的错误规则。

本地无NPU,未执行设备运行测试。

likedislike
tianjun
23 天前 评论:

/assign @Ethan_Zou

likedislike
CANN-robotCANN-robot成员
23 天前 将 Ethan_Zou 设为负责人
Ttianjun
23 天前 关联了pull request:docs: budget delayed atomic commits in WQE blocks