| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
fix(sinkhorn): 修复流水冒险致大shape多核下kernel hang [master] Co-authored-by: chen-xing-yu<chenxingyu18@huawei.com> # message auto-generated for no-merge-commit merge: !3851 merge fix/sinkhorn-pipe-hazard into master fix(sinkhorn): 修复流水冒险致大shape多核下kernel hang [master] Created-by: chenxingyu18 Commit-by: chen-xing-yu Merged-by: cann-robot Description: ## 描述 sinkhorn 算子存在多处流水冒险(V/MTE2 间的 RAW/WAW/WAR),在大 shape(totalCol=4096)+多核场景下导致 kernel hang( ACL stream synchronize failed, error code: 507034)。ST 自带小用例(≤21×21, 单核)测不出。 修复内容: - InitD0/1GlobalInWS、InitD1GlobalInWSNew: Duplicate(V) → DataCopyPad(MTE3) 间补 V_MTE3 同步 - UpdateD1: 新增专用 VECIN 队列 d1OldInQueue 搬旧 d1,消除 d1OutQueue2 跨 V/MTE2 复用(规避手动 MTE2_V 与活跃 VECIN 队列抢 event id);GM 侧旧 d1 读与新 d1 写间补 MTE2_MTE3 同步 - ST 看护用例 211→200 条,覆盖大/中/小 shape(totalCol 到 4096)+ fp32/fp16/bf16 ## 关联的Issue #2159 ## 测试 - **算子泛化**: atk 自造 200 条用例 accuracy **200/200 全过**(原版同套用例 51 个大 shape hang, error 507034);覆盖大 shape(totalCol=4096, 多核)+ 中小 shape + 三 dtype - **性能**: 修复版相对原版在两版都能跑的 case 上 latency 变化 <3%(噪声内) ## 文档更新 无 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!3851 | 3 个月前 | |
sinkhorn算子增加950适配 Co-authored-by: Davon14272<liuwenda4@huawei.com> # message auto-generated for no-merge-commit merge: !4514 merge sink into master sinkhorn算子增加950适配 Created-by: Davon14272 Commit-by: Davon14272;liuwenda4 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> Sinkhorn(目录名 sinkhorn,注册名 Sinkhorn,aclnn 函数 aclnnSinkhorn)是 CANN ops-math 仓 math 目录下的 **Sinkhorn 最优传输距离计算算子**:对二维成本矩阵 cost(R, C) 迭代执行 Sinkhorn-Knopp 型矩阵缩放(matrix scaling / 双随机化),得到最优传输计划 p(R, C): $$ p = Sinkhorn(cost, tol) $$ 数学口径(docs/aclnnSinkhorn.md):初始化 cost=exp(cost)、d0=ones(R)、d1=ones(C)、 eps=1e-8、error=1e9、d1_old=d1;迭代 d0 = 1/(R*(sum(d1*cost,1)+eps))、d1 = 1/(C*(sum(d0.unsqueeze(1)*cost,0)+eps))、 error=mean(abs(d1_old-d1))、d1_old=d1 直至 error<=tol;输出 p = d1*cost*d0.unsqueeze(1)。 与经典 Cuturi Sinkhorn-Knopp(u ← r/(K v)、v ← c/(K^T u))相比,CANN 口径额外引入 1/R、1/C 归一化因子并以 d1 相邻迭代 mean abs diff 作为收敛判据,迭代次数由 tol(默认 0.0001)控制。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [#2788](https://gitcode.com/cann/ops-math/issues/2788) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4514 | 1 个月前 |