| 【社区任务】新增 FusedExponential 指数分布后处理融合算子 Co-authored-by: katiyaaa<591434155@qq.com> # message auto-generated for no-merge-commit merge: !6445 merge community-fused-exponential-upstream into master 【社区任务】新增 FusedExponential 指数分布后处理融合算子 Created-by: katiyaaa Commit-by: katiyaaa Merged-by: cann-robot Description: ## 功能说明 实现社区任务 FusedExponential 指数分布后处理融合算子,将已有均匀分布样本转换为指数分布样本,融合 neg、add、边界处理、log 和 mul 运算。算子本身不生成随机数,不改变随机数生成器状态。 新增 ACLNN 两段式接口: - aclnnFusedExponentialGetWorkspaceSize - aclnnFusedExponential ## 实现范围 代码位于 experimental/math/FusedExponential/,包含 ACLNN 接口、算子定义、Host/Tiling、Ascend C Kernel、设计与接口文档、完整调用示例及测试。 - 支持 Atlas A2/A3,Tensor dtype 为 FLOAT16、BFLOAT16、FLOAT32,率参数为 Host DOUBLE scalar。 - 支持标量、空张量、非连续输入输出和原地计算;检查不安全的输出重叠布局。 - 采用多核分块计算,在 FLOAT32 中完成计算后转换为输出 dtype。 - 连续路径不创建算法 GM 中间张量;框架返回的固定 512 字节 workspace 按实际返回值分配,非连续转换缓冲另计。 - 补充平台、参数、shape 溢出及异常路径检查。 ## 验证结果 验证环境:Ascend 910B3、CANN 9.1.0、torch/torch-npu 2.7.1、ATK 26.9.8。 - 仓库 UT:43/43 通过。 - 补充集成测试:7/7 通过。 - 完整 C++ ACLNN 示例:编译及执行通过。 - 官方精度:全部 1000 条均已执行尝试,996 条匹配,0 条精度不符。其余 4 条在目标算子调用前触发任务书已登记的 ATK 空张量归一化问题(aclnnInplaceCopy,161002)。 - 官方空张量直接调用:29 条用例覆盖连续/非连续、独立/原地四种路径,共 116/116 通过。 - 官方性能:完整 200/200 条达标,最低拼接链/融合实现耗时比为 1.5327,满足逐条 ≥ 1.0 的要求。本轮重新测量全部融合耗时,对照同环境同卡保存的完整拼接基线,并使用原始 CSV 复核。 - 内存测试:12/12 通过。 - A2/A3 均完成编译打包;实机验证在 910B3 完成。 官方用例、golden 逻辑及判定阈值未修改。 本任务已收到平台测试验收通过通知,本 PR 用于后续上游代码检视与合入。 See merge request: cann/ops-math!6445 | 20 days ago |