| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
【社区任务】Im2Col 新增 A2/A3 AscendC 实现 Co-authored-by: stacekey<tianjun.zou@foxmail.com> # message auto-generated for no-merge-commit merge: !4358 merge integrate/im2col-code-review-final into master 【社区任务】Im2Col 新增 A2/A3 AscendC 实现 Created-by: gcw_jgWZA4ay Commit-by: stacekey Merged-by: cann-robot Description: ## 描述 keke团队。在 experimental/conversion/im2col 新增 Im2Col AscendC 实现,面向 Atlas A2/A3,不复用 conversion/im2col 中面向 Ascend 950 的实现。 主要改动: - 新增 aclnnIm2col 两段式接口、参数校验、InferShape 与 Tiling。 - 新增 Im2Col AscendC Kernel,注册 ascend910b 与 ascend910_93 到同一实现。 - 支持 FLOAT16、FLOAT、BFLOAT16、BOOL,支持三维 CHW 与四维 NCHW。 - 支持非连续输入/输出及 N=0 空 Tensor 场景。 - 新增 op_api、op_host、op_kernel UT、README、接口文档和调用示例。 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/2434 ## 测试 - 官方 pre-commit:全部通过。 - op_api UT:6/6 通过。 - op_host UT:14/14 通过。 - op_kernel UT:ascend910b 2/2、ascend910_93 2/2 通过。 - A2/A3 experimental package:均编译成功。 - AscendOpTest 功能与二进制精度:100/100 通过。 - AscendOpTest 性能:100/100 满足任务书验收标准,并完成 TBE 基线对比。 ## 文档更新 - 新增 experimental/conversion/im2col/README.md。 - 新增 docs/aclnnIm2col.md。 - 新增 examples/test_aclnn_im2col.cpp。 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [x] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4358 | 21 天前 | |
fix: def-driven dtype + InferDataType分离 for ApproximateEqual/Inv/Ndtri Co-authored-by: babeiee<125106023003@njust.edu.cn> # message auto-generated for no-merge-commit merge: !4549 merge fix/def-driven-dtype-and-infer-approximateequal into master fix: def-driven dtype + InferDataType分离 for ApproximateEqual/Inv/Ndtri Created-by: babeiee Commit-by: babeiee Merged-by: cann-robot Description: ## 描述 approximate_equal inv ndtri 算子共性问题修改 ## 关联的issue []https://gitcode.com/cann/ops-math/issues/2660 ## 测试 ## 文档更新 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [ ] AI辅助编写 See merge request: cann/ops-math!4549 | 14 天前 | |
[社区任务] aclnnBernoulli低内存实现 Co-authored-by: hzw_rpap<692596316@qq.com> # message auto-generated for no-merge-commit merge: !4248 merge task/aclnn-bernoulli into master [社区任务] aclnnBernoulli低内存实现 Created-by: hzw_rpap Commit-by: hzw_rpap Merged-by: cann-robot Description: ## 描述 本 PR 为 Atlas A2/A3 训练系列产品提供 aclnnBernoulli 和 aclnnInplaceBernoulli 的低内存实现,代码位于 experimental/random/bernoulli_mask。 一般概率路径保留 DSAGenBitMask 的 seed/offset 随机序列生成逻辑,新增 Ascend C BernoulliMask Kernel,将 packed bit mask 直接展开为目标数据类型的 0 或 1,避免原实现中全尺寸 Fill、DropoutDoMask 及部分 Cast 中间张量带来的额外内存占用。 对于满足存储条件的连续输出,压缩 mask 与输出复用同一块设备内存,Kernel 从高地址向低地址分波展开,并在波次之间同步,避免覆盖尚未读取的 mask。小张量和非连续输出使用独立缓冲区,非连续结果通过 ViewCopy 写回目标 view。prob=0 和 prob=1 分别沿用 ZerosLike 和 OnesLike 快速路径。 实现支持 Atlas A2/A3、10 种输出数据类型、4 种 probability 数据类型、标量、空 Tensor、rank 0~8、连续及非连续 Tensor,以及 out-of-place 和 inplace 调用。 ## 关联的Issue - Issue:https://gitcode.com/cann/ops-math/issues/2322 - 设计文档:https://gitcode.com/cann/cann-ops-competitions/pull/671 ## 测试 测试环境为 CANN 8.5.2,测试平台为 Atlas A2 和 Atlas A3。功能、性能和内存测试基于源码提交 295d1e7fe793d3e5477d00cd1af86ebcea770f1d;后续变更仅包含 clang-format 格式整理、README 表述修订和提交历史合并,不改变算子实现语义。 测试结果如下: - ACLNN 功能矩阵:A2 77/77,A3 77/77; - ACLNN ST:A2 97/97,A3 97/97; - 随机分布统计:A2 15/15,A3 15/15; - Tensor probability 兼容回归:A2 8/8,A3 8/8; - TTK Kernel 通用用例:A2 26/26,A3 26/26; - TTK Kernel 存储复用用例:A2 8/8,A3 8/8; - Sanitizer:A2/A3 均为 115 PASS、13 LIMITED、0 FAIL; - 性能测试:A2/A3 的 5 种主要数据类型 P50、P90 均无性能回退; - 内存测试:A2/A3 与 H800 MIG GPU 的四组 total peak allocated/reserved 差距均小于 5%; - 平台专项验证:A2 AscendOpTest 2/2,A3 Host UT 36/36。 Sanitizer 中 13 项 LIMITED 为 CANN 8.5 对 masked Select 指令的已知识别限制,未计入 PASS,全部检查均无失败项。 ## 文档更新 - 新增 BernoulliMask 算子 README,说明接口、约束、实现原理、构建和测试方法; - 新增 ACLNN 调用样例及使用说明; - 新增 ACLNN ST 运行说明; - 新增 Kernel TTK 通用及存储复用测试配置。 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [x] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4248 | 30 天前 | |
西工大智能感知交互实验室-AscendC实现ViewCopy算子贡献 Co-authored-by: fullt<full.fu@huawei.com> # message auto-generated for no-merge-commit merge: !3921 merge add-experimental-view-copy into master 西工大智能感知交互实验室-AscendC实现ViewCopy算子贡献 Created-by: hehe7758511 Commit-by: fullt Merged-by: cann-robot Description: ## 描述 使用 AscendC 重构 ViewCopy 算子,新增 ACLNN 接口、host 侧 tiling 逻辑和 kernel 侧搬运实现,支持基于 size / stride / storage_offset 的连续与非连续 view copy 场景。 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/2183 ## 测试 采用aclnn调用测试,已在 Atlas A2 训练系列产品环境完成编译、部署和测试: - 覆盖多 dtype、多 rank、多 shape 用例。 - 覆盖连续 copy、非连续 stride、稀疏 stride、storage offset、dst/src storage size 不等、dst overlap 等场景。 - 使用 ascendoptest 进行自定义算子精度与性能测试。 - 使用 msprof 采集关键用例性能,优化后慢例性能已通过预期。 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [x] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!3921 | 1 个月前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 21 天前 | ||
| 14 天前 | ||
| 30 天前 | ||
| 1 个月前 |