| Files | Last commit | Last update |
|---|---|---|
master翻译合入 Co-authored-by: caiwenwen<caiwenwen6@h-partners.com> # message auto-generated for no-merge-commit merge: !6751 merge master into master master翻译合入 Created-by: caiwenwen Commit-by: caiwenwen Merged-by: cann-robot Description: ## 描述 合入math仓翻译的内容 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/4170 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 docs/context,aclnn等商发文档 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6751 | 13 days ago | |
feat: 补充部分算子缺失的 aclnn API 示例 Co-authored-by: zhangqijia<zhangqijia1@h-partners.com> # message auto-generated for no-merge-commit merge: !4575 merge feat/issue-2281-aclnn-examples into master feat: 补充部分算子缺失的 aclnn API 示例 Created-by: gcw_SUaZx3UQ Commit-by: zhangqijia Merged-by: cann-robot Description: ## 描述 补充 Issue #2281 中归属 ops-math 的 10 个算子、12 个 aclnn API 调用示例: - 新增 8 个缺失的 aclnn API 示例。 - 将已有的 4 个示例调整为 CI 可识别的 test_aclnn_*.cpp 命名,并修正 BatchNormStats 示例文件名。 - 根据 Cdist 已有 AscendC kernel 实现,完善其 README 的产品支持、功能公式、参数及约束说明。 - 更新相关算子 README 中的调用入口。 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/2281 ## 测试 ## 文档更新 - 更新 10 个算子目录下的 README.md,补充 aclnn 示例链接及对应 API 文档入口。 - 重写 Cdist README,删除“仅包含 aclnn 接口”的过期说明,并按仓内算子格式补充产品支持、功能、参数和约束。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4575 | 2 months ago | |
修复issue的问题 Co-authored-by: sakuraqqz<furao15@h-partners.com> # message auto-generated for no-merge-commit merge: !6812 merge master into master 修复issue的问题 Created-by: sakuraqqz Commit-by: sakuraqqz Merged-by: cann-robot Description: ## 描述 本 PR 修复 6 个算子问题,均为 Bug 修复(含 1 项文档修正): 1. **is_inf 尾块越界读写(#3925)**:数据长度不足 32B 对齐时,尾块原先按 32B 整倍搬运导致 GM 越界读/写。修复为整块用 DataCopy、尾块用 DataCopyPad 按真实字节搬运,ComputePerCore 尾块输出按真实计数写出。math/is_inf/op_kernel/is_inf.h。 2. **addcmul value=NaN 走错快路径(#3894)**:IsEqualToOne 对 NaN 判等为 true(所有比较均 false 取反),导致 value=NaN 时误走 AxpyV2 快路径、缺失 value 项。修复为显式排除 NaN。math/addcmul/op_api/aclnn_addcmul.cpp。 3. **cdist 非法 shape 返回码(#3929)**:out 形状与推导不匹配时返回内部空指针错误 561103,修复为在 GetWorkspaceSize 增加 out 期望形状校验,返回标准参数错误 161002。math/cdist/op_api/aclnn_cdist.cpp。 4. **div 非法参数返回码(#3962)**:日志错误码与返回码不一致,统一返回 161002。math/div/op_api/aclnn_div.cpp。 5. **VarMean 文档矛盾(#4182)**:中英文档 self 维度列由 1-8 修正为 0-8(与「shape 支持 0 到 8 维」及 meanOut/varOut 的 0-8 保持一致);参数表 varOut/meanOut 行序与原型(varOut 为第 5 参、meanOut 为第 6 参)对齐。math/reduce_var/docs/。 6. **LinSpace legacy tiling 丢失 INT64 num 精度(#3347):** LinSpaceGetConstValue 的 DT_INT64 分支先将 int64_t 经 float 转换,num=16777219 被舍入为 16777220,与 InferShape 输出维度不一致;修复为直接读取 int64 数值、经 double 无损保留。math/lin_space/op_host/lin_space_tiling.cpp。 ## 关联的Issue - https://gitcode.com/cann/ops-math/issues/3925 - https://gitcode.com/cann/ops-math/issues/3894 - https://gitcode.com/cann/ops-math/issues/3929 - https://gitcode.com/cann/ops-math/issues/3962 - https://gitcode.com/cann/ops-math/issues/4182 - https://gitcode.com/cann/ops-math/issues/3347 ## 测试 910B3 / CANN 9.3.0 上板验证(2026-10-29): - **is_inf**:尾块用例长度 17/25/31/33/40(非 32B 对齐),尾部放置 inf/-inf/nan,输入输出 buffer 后 64B 金丝雀检测越界,5 组全部 PASS 且无越界读写。 - **addcmul**:value=NaN → out=NaN(修复前误得 7.0);value=1.0/2.0 回归正常。 - **cdist**:out 形状不匹配返回 161002,合法形状返回 0。 - **div**:shape 不匹配/非法 mode 均返回 161002。 - **VarMean**:issue 复现脚本实测命中 0 处(纯文档改动,无需上板)。 - **LinSpace**:tiling data 中 num=16777219 保留、InferShape 输出 [16777219](num=17 对照),Host UT 6/6 PASS,基线回归证实旧实现舍入为 16777220。 ## 文档更新 - math/reduce_var/docs/aclnnVarMean.md、math/reduce_var/docs/aclnnVarMean_en.md(维度范围与参数顺序修正)。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6812 | 10 days ago | |
add infer_dtype Co-authored-by: xufeng12121<1074805447@qq.com> # message auto-generated for no-merge-commit merge: !5131 merge all_infer into master add infer_dtype Created-by: xufeng12121 Commit-by: xufeng12121 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> add InferDataType for masked_fill, roll, slice, strided_slice, strided_slice_v2, strided_slice_v3, bias_add_grad, cdist, diag_part, invert, tile ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/2899 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 1.二级冒烟通过 2.本地测试通过 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5131 | 2 months ago | |
docs: 修复注释与代码不一致(asinh dtype 范围与 cdist UB 注释) Co-authored-by: tangpingchuan<tangpingchuan@huawei.com> # message auto-generated for no-merge-commit merge: !6492 merge docs/comment-cleanup-20261019-19 into master docs: 修复注释与代码不一致(asinh dtype 范围与 cdist UB 注释) Created-by: pingchuantang Commit-by: tangpingchuan Merged-by: cann-robot Description: ## 描述 - math/asinh/op_host/asinh_def.cpp:注释改为 FP32/FP16/BF16 均已实现。 - math/cdist/op_host/arch35/cdist_tiling_arch35.cpp:HL fp32 平面注释由 4096 元素/32KB 修正为 8192 元素/每平面 32KB(共 64KB)。 ## 关联的Issue - https://gitcode.com/cann/ops-math/issues/3801 ## 测试 - pre-commit(含 OAT):通过 - Markdown 链接/图片检查:无新增失效项 - Markdown 代码围栏检查:通过 - 全部 26 个分支合并验证:无冲突 ## 文档更新 - math/asinh/op_host/asinh_def.cpp - math/cdist/op_host/arch35/cdist_tiling_arch35.cpp ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6492 | 19 days ago | |
cdist算子兼容性修复 Co-authored-by: wkyan<yanwenkai@huawei.com> # message auto-generated for no-merge-commit merge: !5313 merge 0902_cdist_reduce into master cdist算子兼容性修复 Created-by: wkyan Commit-by: wkyan Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> cdist算子ReduceRepeat平替为WholeReduceSum,兼容CANN9.0.0 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/3017 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5313 | 2 months ago | |
修复issue的问题 Co-authored-by: sakuraqqz<furao15@h-partners.com> # message auto-generated for no-merge-commit merge: !6812 merge master into master 修复issue的问题 Created-by: sakuraqqz Commit-by: sakuraqqz Merged-by: cann-robot Description: ## 描述 本 PR 修复 6 个算子问题,均为 Bug 修复(含 1 项文档修正): 1. **is_inf 尾块越界读写(#3925)**:数据长度不足 32B 对齐时,尾块原先按 32B 整倍搬运导致 GM 越界读/写。修复为整块用 DataCopy、尾块用 DataCopyPad 按真实字节搬运,ComputePerCore 尾块输出按真实计数写出。math/is_inf/op_kernel/is_inf.h。 2. **addcmul value=NaN 走错快路径(#3894)**:IsEqualToOne 对 NaN 判等为 true(所有比较均 false 取反),导致 value=NaN 时误走 AxpyV2 快路径、缺失 value 项。修复为显式排除 NaN。math/addcmul/op_api/aclnn_addcmul.cpp。 3. **cdist 非法 shape 返回码(#3929)**:out 形状与推导不匹配时返回内部空指针错误 561103,修复为在 GetWorkspaceSize 增加 out 期望形状校验,返回标准参数错误 161002。math/cdist/op_api/aclnn_cdist.cpp。 4. **div 非法参数返回码(#3962)**:日志错误码与返回码不一致,统一返回 161002。math/div/op_api/aclnn_div.cpp。 5. **VarMean 文档矛盾(#4182)**:中英文档 self 维度列由 1-8 修正为 0-8(与「shape 支持 0 到 8 维」及 meanOut/varOut 的 0-8 保持一致);参数表 varOut/meanOut 行序与原型(varOut 为第 5 参、meanOut 为第 6 参)对齐。math/reduce_var/docs/。 6. **LinSpace legacy tiling 丢失 INT64 num 精度(#3347):** LinSpaceGetConstValue 的 DT_INT64 分支先将 int64_t 经 float 转换,num=16777219 被舍入为 16777220,与 InferShape 输出维度不一致;修复为直接读取 int64 数值、经 double 无损保留。math/lin_space/op_host/lin_space_tiling.cpp。 ## 关联的Issue - https://gitcode.com/cann/ops-math/issues/3925 - https://gitcode.com/cann/ops-math/issues/3894 - https://gitcode.com/cann/ops-math/issues/3929 - https://gitcode.com/cann/ops-math/issues/3962 - https://gitcode.com/cann/ops-math/issues/4182 - https://gitcode.com/cann/ops-math/issues/3347 ## 测试 910B3 / CANN 9.3.0 上板验证(2026-10-29): - **is_inf**:尾块用例长度 17/25/31/33/40(非 32B 对齐),尾部放置 inf/-inf/nan,输入输出 buffer 后 64B 金丝雀检测越界,5 组全部 PASS 且无越界读写。 - **addcmul**:value=NaN → out=NaN(修复前误得 7.0);value=1.0/2.0 回归正常。 - **cdist**:out 形状不匹配返回 161002,合法形状返回 0。 - **div**:shape 不匹配/非法 mode 均返回 161002。 - **VarMean**:issue 复现脚本实测命中 0 处(纯文档改动,无需上板)。 - **LinSpace**:tiling data 中 num=16777219 保留、InferShape 输出 [16777219](num=17 对照),Host UT 6/6 PASS,基线回归证实旧实现舍入为 16777220。 ## 文档更新 - math/reduce_var/docs/aclnnVarMean.md、math/reduce_var/docs/aclnnVarMean_en.md(维度范围与参数顺序修正)。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6812 | 10 days ago | |
cdist算子新增Ascend960芯片适配 Co-authored-by: sunzhongwen1<sunzhongwen1@huawei.com> # message auto-generated for no-merge-commit merge: !6431 merge cdistAscend960 into master cdist算子新增Ascend960芯片适配 Created-by: sunzhongwen1 Commit-by: sunzhongwen1 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> cdist算子新增Ascend960芯片适配 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6431 | 22 days ago | |
产品名变更 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 | 1 month ago |
Cdist
产品支持情况
| 产品 | 是否支持 |
|---|---|
| Ascend 950PR&950DT系列产品 | √ |
| Atlas A3系列产品 | √ |
| Atlas A2系列产品 | √ |
| Atlas 200I/500 A2推理产品 | × |
| Atlas推理系列产品 | × |
| Atlas训练系列产品 | × |
功能说明
-
算子功能:计算两个向量集合中每对向量之间的p范数距离。
-
计算公式:对于输入张量x1和x2,设其shape分别为[B,P,M][B, P, M][B,P,M]和[B,R,M][B, R, M][B,R,M],输出张量y的shape为[B,P,R][B, P, R][B,P,R]。
当p>0p>0p>0时:
yb,i,j=(∑k=1M∣x1b,i,k−x2b,j,k∣p)1py_{b,i,j}=\left(\sum_{k=1}^{M}|x1_{b,i,k}-x2_{b,j,k}|^p\right)^{\frac{1}{p}} yb,i,j=(k=1∑M∣x1b,i,k−x2b,j,k∣p)p1
当p=0p=0p=0时,输出为对应向量中不相等元素的数量;当p=+∞p=+\inftyp=+∞时,输出为对应向量元素差值绝对值的最大值。
参数说明
| 参数名 | 输入/输出/属性 | 描述 | 数据类型 | 数据格式 |
|---|---|---|---|---|
| x1 | 输入 | 第一个输入张量,shape为[B, P, M]。 | BFLOAT16、FLOAT16、FLOAT | ND |
| x2 | 输入 | 第二个输入张量,shape为[B, R, M]。 | BFLOAT16、FLOAT16、FLOAT | ND |
| y | 输出 | p范数距离计算结果,shape为[B, P, R]。 | BFLOAT16、FLOAT16、FLOAT | ND |
| p | 可选属性 | 范数阶数,取值范围为[0, +∞],默认值为2.0。 | FLOAT | - |
约束说明
- x1、x2和y的数据类型必须一致。
- x1和x2的维度范围为2~8,最后一维长度必须相同。
- x1和x2除最后两维外的其他维度必须满足broadcast关系;输出对应维度为broadcast后的shape。
- 若x1的倒数第二维为P,x2的倒数第二维为R,则输出的最后两维为[P, R]。
- p必须大于或等于0,支持+∞,常用取值为0、1.0、2.0和+∞。
调用说明
| 调用方式 | 调用样例 | 说明 |
|---|---|---|
| aclnn调用 | test_aclnn_cdist | 通过aclnnCdist接口方式调用Cdist算子。 |