| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
产品名变更 Co-authored-by: gitcode-chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !5912 merge master into master 产品名变更 Created-by: gitcode-chenjiao Commit-by: gitcode-chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> AI处理器对应的产品型号名称更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [#3258](https://gitcode.com/cann/ops-math/issues/3258) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ok ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> *.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5912 | 7 天前 | |
修改argmin/cumprod等部分算子的aclnn文档 example实例 Co-authored-by: jiangjiawei<jiangjiawei10@huawei.com> # message auto-generated for no-merge-commit merge: !5423 merge aclnn_example_0907 into master 修改argmin/cumprod等部分算子的aclnn文档 example实例 Created-by: jiangjiawei Commit-by: jiangjiawei Merged-by: cann-robot Description: ## 描述 修改argmin/cumprod等部分算子的aclnn文档 example实例 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/3084 ## 测试 文档修改,不涉及 ## 文档更新 见PR ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5423 | 21 天前 | |
增加A2 A3新算子支持 Co-authored-by: slx2008<shaolixin@huawei.com> # message auto-generated for no-merge-commit merge: !448 merge master into master 增加A2 A3新算子支持 Created-by: songkai111 Commit-by: slx2008 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!448 | 9 个月前 | |
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 个月前 | |
fix: 完善Math仓算子proto与infer注册 Co-authored-by: zhouxuan78<zhouxuan78@huawei.com> # message auto-generated for no-merge-commit merge: !5660 merge master into master fix: 完善Math仓算子proto与infer注册 Created-by: zhouxuan78 Commit-by: zhouxuan78 Merged-by: cann-robot Description: ## 描述 本次修改完成 Math 相关算子的 Legacy 下线整改: • 为 SignBitsPack 原型增加去重宏,避免与 Legacy 原型重复注册。 • 为 Sinkhorn 新增开源 InferShape 实现,输出 shape 与输入 cost 保持一致。 • 为 Sinkhorn 新增独立的 InferDataType 实现,输出类型继承输入类型。 • 新增 Sinkhorn 图推导目录的 CMake 配置,使 InferDataType 实现参与构建。 • 未迁移不存在或不应重复注册的 Sinkhorn 原型,仅补充 infer 能力 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/2998 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5660 | 9 天前 | |
fix: 完善Math仓算子proto与infer注册 Co-authored-by: zhouxuan78<zhouxuan78@huawei.com> # message auto-generated for no-merge-commit merge: !5660 merge master into master fix: 完善Math仓算子proto与infer注册 Created-by: zhouxuan78 Commit-by: zhouxuan78 Merged-by: cann-robot Description: ## 描述 本次修改完成 Math 相关算子的 Legacy 下线整改: • 为 SignBitsPack 原型增加去重宏,避免与 Legacy 原型重复注册。 • 为 Sinkhorn 新增开源 InferShape 实现,输出 shape 与输入 cost 保持一致。 • 为 Sinkhorn 新增独立的 InferDataType 实现,输出类型继承输入类型。 • 新增 Sinkhorn 图推导目录的 CMake 配置,使 InferDataType 实现参与构建。 • 未迁移不存在或不应重复注册的 Sinkhorn 原型,仅补充 infer 能力 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/2998 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5660 | 9 天前 | |
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 | 19 天前 | |
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 个月前 | |
剥离math下op_host/op_api到op_api Co-authored-by: yue-ma<mayue54@huawei.com> # message auto-generated for no-merge-commit merge: !4246 merge master into master 剥离math下op_host/op_api到op_api Created-by: yue-ma Commit-by: yue-ma Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 本次变更主要对 math 目录下多个算子的目录结构进行扁平化整理:将原先嵌套在 op_host/op_api/ 中的 API 实现文件直接提升到 op_api/ 层级 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/2392 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> UT/ST通过 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4246 | 2 个月前 | |
产品名变更 Co-authored-by: gitcode-chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !5912 merge master into master 产品名变更 Created-by: gitcode-chenjiao Commit-by: gitcode-chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> AI处理器对应的产品型号名称更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [#3258](https://gitcode.com/cann/ops-math/issues/3258) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ok ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> *.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5912 | 7 天前 |
Sinkhorn
产品支持情况
| 产品 | 是否支持 |
|---|---|
| Ascend 950PR&950DT系列产品 | √ |
| Atlas A3系列产品 | √ |
| Atlas A2系列产品 | √ |
| Atlas 200I/500 A2推理产品 | × |
| Atlas推理系列产品 | × |
| Atlas训练系列产品 | × |
功能说明
-
算子功能:
计算Sinkhorn距离,可以用于MoE模型中的专家路由。
-
计算公式:
p=Sinkhorn(cost,tol)p=Sinkhorn(cost, tol) p=Sinkhorn(cost,tol)
参数说明
| 参数名 | 输入/输出/属性 | 描述 | 数据类型 | 数据格式 |
|---|---|---|---|---|
| cost | 输入 |
|
FLOAT、FLOAT16、BFLOAT16 | ND |
| tol | 输入 |
|
FLOAT | ND |
| p | 输出 |
|
FLOAT、FLOAT16、BFLOAT16 | ND |
约束说明
无
调用说明
| 调用方式 | 调用样例 | 说明 |
|---|---|---|
| aclnn调用 | test_aclnn_sinkhorn | 通过aclnnSinkhorn接口方式调用Sinkhorn算子。 |