| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
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 个月前 | |
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 个月前 | |
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 个月前 | |
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 个月前 | |
perf(sinkhorn): 修复测试用例 shape 是 (5000, 2)下的性能 Co-authored-by: Davon14272<liuwenda4@huawei.com> # message auto-generated for no-merge-commit merge: !5496 merge fix/sinkhorn-performance into master perf(sinkhorn): 修复测试用例 shape 是 (5000, 2)下的性能 Created-by: Davon14272 Commit-by: Davon14272 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 测试 shape 是 (5000, 2),每行只有两个元素。原 tiling 根据“UB 一次能容纳多少行”决定核数: ubNum = ceil(totalRow / tileRow); numBlocks = min(ubNum, aivNum); 因为 UB 能容纳约 2694 行,5000 行最终只启用了两个 Vector Core。每个核心串行处理约 2500 行,而每行计算量非常小,耗时主要落在循环、队列操作、DMA 和同步上,不是实际乘加计算上。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5496 | 23 天前 | |
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 个月前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 23 天前 | ||
| 1 个月前 |