| Files | Last commit | Last update |
|---|---|---|
根据markdownlint规范修正md写作问题和link失效 Co-authored-by: gitcode-chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !6398 merge master into master 根据markdownlint规范修正md写作问题和link失效 Created-by: gitcode-chenjiao Commit-by: gitcode-chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 根据markdownlint规范修正md写作问题和link失效 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [#2272](https://gitcode.com/cann/ops-math/issues/2272) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ok ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 所有md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6398 | 27 days ago | |
refactor: 完成公共头文件迁移并修复关联验证问题 Co-authored-by: clinglai0517<laichangling@huawei.com> # message auto-generated for no-merge-commit merge: !6400 merge refactor/math-prefix-common-headers-1015 into master refactor: 完成公共头文件迁移并修复关联验证问题 Created-by: clinglai0517 Commit-by: clinglai0517 Merged-by: cann-robot Description: ## 描述 完成 ops-math 剩余公共头文件引用迁移,清理会与其他算子仓同名的兼容转发头。迁移同时触发此前暂缓算子的构建和冒烟,因此一并修复已复现的 UT 状态污染、SDK 类型冲突及示例 executor 生命周期问题。 - 将 Sin 的引用改为 op_api/level2_base_math.h,将 experimental Atan2、Tile、Polar 的引用改为 op_api/op_api_def_math.h。 - 全仓审计确认 level2_base.h、level2_base_caculation.h、op_api_def.h 的引用均为 0,删除这三个兼容转发头;清理 classify_rule.yaml 中两条失效路径,保留现有 canonical 头文件分类。分类配置不作为包过滤规则。 - Sin、Atan2 的每个 UT 用例保存并恢复平台 stub 的原始 SoC 和架构覆盖字段,避免负向 BF16 用例污染后续测试;保留全部原有用例和预期。 - Tile 删除与新版 SDK 冲突的全局 complex64 = uint64_t 别名,在 kernel 入口为 complex64 输入局部选择 uint64_t,保持原有按 64 位原始数据复制的行为。 - Polar 的两个示例在重复调用前显式启用 executor 复用,结束后销毁 executor;检查同步和结果拷贝错误,将精度失败和用例失败传递为非零退出码。保留原有五组形状、warmup 次数、计时次数和精度阈值。 共 14 个文件,+192/-201。所改文件包含 pre-commit 要求的 clang-format 18.1.8 调整,其中 tile.h 的 171 行 diff 主要为格式变化;已与格式化后的基线逐项比较,该头文件的逻辑改动仅删除五行旧类型别名块。 ## 关联的Issue Issue [#3243](https://gitcode.com/cann/ops-math/issues/3243)。 ## 测试 验证环境:CANN 9.0.0,aarch64 / Ascend910B3。 - 全部 11 个修改的现有文件通过容器 pre-commit 和显式 OAT;git diff --check、旧头文件零引用审计通过。 - Sin:32/32 focused UT;sin/sub/tan/tanh_grad 组合正常顺序和随机顺序(seed 17)均 116/116 通过。未修复的干净基线可复现相同 5 个 BF16 失败。 - Atan2:21/21 focused UT;atan/atan2/cross 组合正常顺序和随机顺序(seed 17)均 51/51 通过。 - 当前完整 diff 经仓库 CI 生成器选择的以下命令全部通过: bash bash build.sh -u -j16 --experimental --ops=atan2,polar,tile --opapi --soc=ascend910b bash build.sh -u -j16 --experimental --ops=tile --opkernel --soc=ascend910b bash build.sh --pkg -j16 --experimental --vendor_name=experimental --ops=atan2,polar,tile - 上述 op_api UT 为 23/23(Atan2 21 个、Repeat 2 个;Polar 无 op_api UT);Tile kernel UT 为 3/3,三组比较均 max_diff=0.0。 - 三算子实验包构建及只读完整性校验 --check --noexec 通过。检查实际包内容:含公开 API 头、libcust_opapi.so、3 个 Atan2 / 1 个 Polar / 24 个 Tile kernel 对象,不含三个旧公共头。实际 Polar 对象依赖 canonical 头文件。 - Tile 在 NPU 1 上完成 float32 和三组 complex64 实机检查,输出逐位一致,覆盖负零、NaN、无穷及次正规数。 - Polar 两个示例各 5/5 实机用例通过,所有元素错误计数为 0;原始 REF 示例在相同自定义库下用 GDB 复现 malloc_consolidate(): unaligned fastbin chunk detected / SIGABRT。两个示例均按 CI 的 -lcust_opapi 方式链接,不将 REF 文件名视为系统库对照。 - 实机 Polar 验证副本仅将设备常量从 0 改为 1,以避开 NPU 0 已有进程数限制;仓内示例仍使用设备 0。验证后源码 SHA256 和容器 vendor 配置均未改变,使用包的 staging 目录,无需安装到 SDK。 验证边界:以上为 CANN 9.0.0 本地容器结果,CANN 9.3 双架构 CI 和 A2 PreSmoke 待线上验证。全量常规 --pkg 构建仍被未修改的 conversion/concat_d/op_graph/fusion_pass/concat_to_concatd_fusion_pass.cpp 与 CANN 9.0 GE SubgraphRewriter::Replace 参数不匹配阻塞;干净基线翻译单元使用相同参数可复现,三算子实验包已通过。 ## 文档更新 无仓内文档变更;变更范围、历史问题、验证结果及限制已汇总于本 MR 描述。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:公共头文件引用迁移与兼容转发头清理 See merge request: cann/ops-math!6400 | 26 days ago | |
refactor: 完成公共头文件迁移并修复关联验证问题 Co-authored-by: clinglai0517<laichangling@huawei.com> # message auto-generated for no-merge-commit merge: !6400 merge refactor/math-prefix-common-headers-1015 into master refactor: 完成公共头文件迁移并修复关联验证问题 Created-by: clinglai0517 Commit-by: clinglai0517 Merged-by: cann-robot Description: ## 描述 完成 ops-math 剩余公共头文件引用迁移,清理会与其他算子仓同名的兼容转发头。迁移同时触发此前暂缓算子的构建和冒烟,因此一并修复已复现的 UT 状态污染、SDK 类型冲突及示例 executor 生命周期问题。 - 将 Sin 的引用改为 op_api/level2_base_math.h,将 experimental Atan2、Tile、Polar 的引用改为 op_api/op_api_def_math.h。 - 全仓审计确认 level2_base.h、level2_base_caculation.h、op_api_def.h 的引用均为 0,删除这三个兼容转发头;清理 classify_rule.yaml 中两条失效路径,保留现有 canonical 头文件分类。分类配置不作为包过滤规则。 - Sin、Atan2 的每个 UT 用例保存并恢复平台 stub 的原始 SoC 和架构覆盖字段,避免负向 BF16 用例污染后续测试;保留全部原有用例和预期。 - Tile 删除与新版 SDK 冲突的全局 complex64 = uint64_t 别名,在 kernel 入口为 complex64 输入局部选择 uint64_t,保持原有按 64 位原始数据复制的行为。 - Polar 的两个示例在重复调用前显式启用 executor 复用,结束后销毁 executor;检查同步和结果拷贝错误,将精度失败和用例失败传递为非零退出码。保留原有五组形状、warmup 次数、计时次数和精度阈值。 共 14 个文件,+192/-201。所改文件包含 pre-commit 要求的 clang-format 18.1.8 调整,其中 tile.h 的 171 行 diff 主要为格式变化;已与格式化后的基线逐项比较,该头文件的逻辑改动仅删除五行旧类型别名块。 ## 关联的Issue Issue [#3243](https://gitcode.com/cann/ops-math/issues/3243)。 ## 测试 验证环境:CANN 9.0.0,aarch64 / Ascend910B3。 - 全部 11 个修改的现有文件通过容器 pre-commit 和显式 OAT;git diff --check、旧头文件零引用审计通过。 - Sin:32/32 focused UT;sin/sub/tan/tanh_grad 组合正常顺序和随机顺序(seed 17)均 116/116 通过。未修复的干净基线可复现相同 5 个 BF16 失败。 - Atan2:21/21 focused UT;atan/atan2/cross 组合正常顺序和随机顺序(seed 17)均 51/51 通过。 - 当前完整 diff 经仓库 CI 生成器选择的以下命令全部通过: bash bash build.sh -u -j16 --experimental --ops=atan2,polar,tile --opapi --soc=ascend910b bash build.sh -u -j16 --experimental --ops=tile --opkernel --soc=ascend910b bash build.sh --pkg -j16 --experimental --vendor_name=experimental --ops=atan2,polar,tile - 上述 op_api UT 为 23/23(Atan2 21 个、Repeat 2 个;Polar 无 op_api UT);Tile kernel UT 为 3/3,三组比较均 max_diff=0.0。 - 三算子实验包构建及只读完整性校验 --check --noexec 通过。检查实际包内容:含公开 API 头、libcust_opapi.so、3 个 Atan2 / 1 个 Polar / 24 个 Tile kernel 对象,不含三个旧公共头。实际 Polar 对象依赖 canonical 头文件。 - Tile 在 NPU 1 上完成 float32 和三组 complex64 实机检查,输出逐位一致,覆盖负零、NaN、无穷及次正规数。 - Polar 两个示例各 5/5 实机用例通过,所有元素错误计数为 0;原始 REF 示例在相同自定义库下用 GDB 复现 malloc_consolidate(): unaligned fastbin chunk detected / SIGABRT。两个示例均按 CI 的 -lcust_opapi 方式链接,不将 REF 文件名视为系统库对照。 - 实机 Polar 验证副本仅将设备常量从 0 改为 1,以避开 NPU 0 已有进程数限制;仓内示例仍使用设备 0。验证后源码 SHA256 和容器 vendor 配置均未改变,使用包的 staging 目录,无需安装到 SDK。 验证边界:以上为 CANN 9.0.0 本地容器结果,CANN 9.3 双架构 CI 和 A2 PreSmoke 待线上验证。全量常规 --pkg 构建仍被未修改的 conversion/concat_d/op_graph/fusion_pass/concat_to_concatd_fusion_pass.cpp 与 CANN 9.0 GE SubgraphRewriter::Replace 参数不匹配阻塞;干净基线翻译单元使用相同参数可复现,三算子实验包已通过。 ## 文档更新 无仓内文档变更;变更范围、历史问题、验证结果及限制已汇总于本 MR 描述。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:公共头文件引用迁移与兼容转发头清理 See merge request: cann/ops-math!6400 | 26 days ago | |
【CANN开源开放社区任务】【社区任务】AscendC实现Polar算子贡献 Co-authored-by: LiJianhao2<25213050226@m.fudan.edu.cn> # message auto-generated for no-merge-commit merge: !2923 merge master into master 【CANN开源开放社区任务】【社区任务】AscendC实现Polar算子贡献 Created-by: LiJianhao2 Commit-by: LiJianhao2 Merged-by: cann-robot Description: ## 描述 新增社区任务 Polar 算子(任务编号 04-5),落在 experimental/math/polar/。polar(input, angle) = input · (cos(angle) + i·sin(angle)):输入 input/angle 为 fp32,输出 out 为 complex64,≤8 维,支持 input 与 angle 的 numpy 广播。kernel 单算子内 Cos/Sin → Mul×2 → Gather 交织成 complex64(同 shape elementwise),广播在 aclnn L2 层经 Contiguous → BroadcastTo → l0::Polar → ViewCopy 完成,集成约定对标 ops-math experimental/math 的 addcdiv/floor。变更范围限于新增的 experimental/math/polar/ 目录,不影响存量算子。 ## 关联的Issue [Requirement|需求建议]: Polar 算子开发(社区任务 04-5) — https://gitcode.com/cann/ops-math/issues/1647 ## 测试 官方 AscendOpTest 50 个验收用例全部 PASS,覆盖同 shape 小/大(含 [16384,16384,2] 同 shape)、低维→高维广播、标量广播、双向多轴广播、高维非对齐等。complex64 精度阈值在用例中显式配置(compare_complex 为纯绝对差、default_acc 无 complex64 默认键):大幅值用例 [0.001, 0.001],小幅值用例 [0.0001, 0.0001]。 ## 文档更新 随交付提供设计文档(已通过华为评审)、自测报告、测试步骤指导文档。 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!2923 | 4 months ago | |
【CANN开源开放社区任务】【社区任务】AscendC实现Polar算子贡献 Co-authored-by: LiJianhao2<25213050226@m.fudan.edu.cn> # message auto-generated for no-merge-commit merge: !2923 merge master into master 【CANN开源开放社区任务】【社区任务】AscendC实现Polar算子贡献 Created-by: LiJianhao2 Commit-by: LiJianhao2 Merged-by: cann-robot Description: ## 描述 新增社区任务 Polar 算子(任务编号 04-5),落在 experimental/math/polar/。polar(input, angle) = input · (cos(angle) + i·sin(angle)):输入 input/angle 为 fp32,输出 out 为 complex64,≤8 维,支持 input 与 angle 的 numpy 广播。kernel 单算子内 Cos/Sin → Mul×2 → Gather 交织成 complex64(同 shape elementwise),广播在 aclnn L2 层经 Contiguous → BroadcastTo → l0::Polar → ViewCopy 完成,集成约定对标 ops-math experimental/math 的 addcdiv/floor。变更范围限于新增的 experimental/math/polar/ 目录,不影响存量算子。 ## 关联的Issue [Requirement|需求建议]: Polar 算子开发(社区任务 04-5) — https://gitcode.com/cann/ops-math/issues/1647 ## 测试 官方 AscendOpTest 50 个验收用例全部 PASS,覆盖同 shape 小/大(含 [16384,16384,2] 同 shape)、低维→高维广播、标量广播、双向多轴广播、高维非对齐等。complex64 精度阈值在用例中显式配置(compare_complex 为纯绝对差、default_acc 无 complex64 默认键):大幅值用例 [0.001, 0.001],小幅值用例 [0.0001, 0.0001]。 ## 文档更新 随交付提供设计文档(已通过华为评审)、自测报告、测试步骤指导文档。 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!2923 | 4 months 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 | |
【CANN开源开放社区任务】【社区任务】AscendC实现Polar算子贡献 Co-authored-by: LiJianhao2<25213050226@m.fudan.edu.cn> # message auto-generated for no-merge-commit merge: !2923 merge master into master 【CANN开源开放社区任务】【社区任务】AscendC实现Polar算子贡献 Created-by: LiJianhao2 Commit-by: LiJianhao2 Merged-by: cann-robot Description: ## 描述 新增社区任务 Polar 算子(任务编号 04-5),落在 experimental/math/polar/。polar(input, angle) = input · (cos(angle) + i·sin(angle)):输入 input/angle 为 fp32,输出 out 为 complex64,≤8 维,支持 input 与 angle 的 numpy 广播。kernel 单算子内 Cos/Sin → Mul×2 → Gather 交织成 complex64(同 shape elementwise),广播在 aclnn L2 层经 Contiguous → BroadcastTo → l0::Polar → ViewCopy 完成,集成约定对标 ops-math experimental/math 的 addcdiv/floor。变更范围限于新增的 experimental/math/polar/ 目录,不影响存量算子。 ## 关联的Issue [Requirement|需求建议]: Polar 算子开发(社区任务 04-5) — https://gitcode.com/cann/ops-math/issues/1647 ## 测试 官方 AscendOpTest 50 个验收用例全部 PASS,覆盖同 shape 小/大(含 [16384,16384,2] 同 shape)、低维→高维广播、标量广播、双向多轴广播、高维非对齐等。complex64 精度阈值在用例中显式配置(compare_complex 为纯绝对差、default_acc 无 complex64 默认键):大幅值用例 [0.001, 0.001],小幅值用例 [0.0001, 0.0001]。 ## 文档更新 随交付提供设计文档(已通过华为评审)、自测报告、测试步骤指导文档。 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!2923 | 4 months ago | |
aclnn确定性开关配置变更和产品名变更,简化md表格语法,删除冗余css样式 Co-authored-by: gitcode-chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !6613 merge master into master aclnn确定性开关配置变更和产品名变更,简化md表格语法,删除冗余css样式 Created-by: gitcode-chenjiao Commit-by: gitcode-chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> - aclnn确定性开关配置变更:aclrtCtxSetSysParamOpt改为aclrtSetSysParamOpt - 产品名变更 - 简化md表格语法,删除冗余css样式 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [# 3833](https://gitcode.com/cann/ops-math/issues/3833) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ok ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> \*.md acl\*.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6613 | 19 days ago |
Polar
产品支持情况
| 产品 | 是否支持 |
|---|---|
| Atlas A3系列产品 | √ |
| Atlas A2系列产品 | √ |
| Ascend 950PR&950DT系列产品 | × |
| Atlas 200I/500 A2推理产品 | × |
| Atlas推理系列产品 | × |
| Atlas训练系列产品 | × |
功能说明
-
算子功能:由模长(abs)与幅角(angle)构造极坐标复数张量,对应 PyTorch 接口
torch.polar(abs, angle)。 -
计算公式:
outi=inputi×(cos(anglei)+i⋅sin(anglei))out_i = input_i \times (\cos(angle_i) + i \cdot \sin(angle_i)) outi=inputi×(cos(anglei)+i⋅sin(anglei))
参数说明
| 参数名 | 输入/输出/属性 | 描述 | 数据类型 | 数据格式 |
|---|---|---|---|---|
| input | 输入 | 极坐标模长分量,公式中的input。 | FLOAT | ND |
| angle | 输入 | 极坐标幅角(弧度),公式中的angle。 | FLOAT | ND |
| out | 输出 | 计算结果,公式中的out;shape为input与angle广播后的shape。 | COMPLEX64 | ND |
约束说明
- input与angle的数据类型必须一致(FLOAT)。
- input与angle的shape满足NumPy广播关系,out的shape为两者广播后的shape。
- input、angle的维度数不超过8维。
调用说明
| 调用方式 | 调用样例 | 说明 |
|---|---|---|
| aclnn调用 | test_aclnn_polar | 通过aclnnPolar接口方式调用Polar算子。 |
| 图模式调用 |
本目录包含Polar算子的aclnn接口及Ascend C实现;关于该算子的设计与自测,请参考设计文档与自测报告。
贡献说明
| 贡献者 | 贡献方 | 贡献算子 | 贡献时间 | 贡献内容 |
|---|---|---|---|---|
| 开源社区贡献者 | 开源社区 | Polar | 2026/06/30 | Polar算子适配开源仓 |