Thanks for sending an requirement! Please fill in the following template to help quickly solve your problem.
本 issue 用于提交 CANN 2026 社区任务 Polar 算子(任务编号 04-5)的开发交付与验收申请。算子语义对齐 cann/ops-math 中已有的 l0 拼接参考实现 math/complex/op_host/op_api/aclnn_polar.cpp,在其基础上新增 input/angle 不同维的 numpy 广播能力。
cann/ops-math
math/complex/op_host/op_api/aclnn_polar.cpp
04_tasks/.../04-5-Polar/看不见我/docs/design.md
polar(input, angle) = input · (cos(angle) + i·sin(angle))
input
angle
out
Scope 边界(与参考一致,刻意不扩展):不支持 fp64 / complex128,无 attr。complex64 在向量单元不支持,按交织的 fp32 实部/虚部对处理。
Cos/Sin(angle) → Mul(input)×2
→ Gather 交织
Contiguous → BroadcastTo → l0::Polar → ViewCopy
experimental/math/polar/
ACLNNTYPE aclnn_exclude
docs/design.md
官方 AscendOpTest 50 个验收用例全部 PASS,覆盖同 shape 小/大(含 [16384,16384,2] = 537M 同 shape)、低维→高维广播、标量广播、双向多轴广播、高维非对齐等。
[16384,16384,2]
complex64 精度阈值说明:HIT1920 AscendOpTest 的 compare_complex 为纯绝对差且 default_acc 无 complex64 默认键,需在用例显式配置 err_threshold;大幅值用例取 [0.001, 0.001],小幅值用例取 [0.0001, 0.0001]。
compare_complex
default_acc
err_threshold
[0.001, 0.001]
[0.0001, 0.0001]
设计文档已过评审,代码与测试交付齐备、官方 AscendOpTest 50/50 全 PASS。现申请进入验收流程,私有仓库链接见上,验收人员“开发者权限”已开通,请安排验收。
/assign @LiJianhaoo2
This issue can not be assigned to LiJianhaoo2. Please try to assign to the repository members.
Thanks for sending an requirement! Please fill in the following template to help quickly solve your problem.
一、任务背景
本 issue 用于提交 CANN 2026 社区任务 Polar 算子(任务编号 04-5)的开发交付与验收申请。算子语义对齐
cann/ops-math中已有的 l0 拼接参考实现math/complex/op_host/op_api/aclnn_polar.cpp,在其基础上新增 input/angle 不同维的 numpy 广播能力。04_tasks/.../04-5-Polar/看不见我/docs/design.md,PR 〔160〕)二、算子功能描述
polar(input, angle) = input · (cos(angle) + i·sin(angle))input:fp32;angle:fp32out:complex64Scope 边界(与参考一致,刻意不扩展):不支持 fp64 / complex128,无 attr。complex64 在向量单元不支持,按交织的 fp32 实部/虚部对处理。
三、设计方案概述
Cos/Sin(angle) → Mul(input)×2(分别得实部、虚部)→ Gather 交织成 complex64 内存布局。复数交织使用 Init 阶段一次性矢量构造的静态 offset 表。Contiguous → BroadcastTo → l0::Polar → ViewCopy,kernel 退化为同 shape elementwise。此举规避了 kernel 内广播的两类硬约束——fp32 索引在 outNumel > 2²⁴ 时失精、广播侧整块入 UB 的容量上限。experimental/math/polar/,对标 addcdiv/floor;ACLNNTYPE aclnn_exclude配手写 op_api(承载 BroadcastTo L2 链路)。四、交付内容
experimental/math/polar/(op_host / op_kernel / op_api / op_graph / CMakeLists)docs/design.md五、测试结果
官方 AscendOpTest 50 个验收用例全部 PASS,覆盖同 shape 小/大(含
[16384,16384,2]= 537M 同 shape)、低维→高维广播、标量广播、双向多轴广播、高维非对齐等。complex64 精度阈值说明:HIT1920 AscendOpTest 的
compare_complex为纯绝对差且default_acc无 complex64 默认键,需在用例显式配置err_threshold;大幅值用例取[0.001, 0.001],小幅值用例取[0.0001, 0.0001]。六、验收申请
设计文档已过评审,代码与测试交付齐备、官方 AscendOpTest 50/50 全 PASS。现申请进入验收流程,私有仓库链接见上,验收人员“开发者权限”已开通,请安排验收。