| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
aclnnNormalTensorTensor A2/A3分支内存优化 Co-authored-by: Ding_Jing<dingjing19@huawei.com> # message auto-generated for no-merge-commit merge: !4137 merge aclnnNormalTensorTensorOptimizeMem into master aclnnNormalTensorTensor A2/A3分支内存优化 Created-by: Ding_Jing Commit-by: Ding_Jing Merged-by: cann-robot Description: ## 描述 aclnnNormalTensorTensor 在 A2/A3(ASCEND910B / DAV_2201)分支计算 out = stateLessOut * std + mean 时,Mul、Add 使用非 inplace 接口会各自新分配一块中间 tensor 内存。本 PR 复用计算过程中新建的中间 tensor 内存,减少内存分配: - **Mul**:当 stateLessOut 的 shape 与 out 一致、且 std 的 dtype 与 stateLessOut 一致时,改用 MulInplace(std, stateLessOut) 复用 stateLessOut 内存作为输出;否则回退 Mul(stateLessOut, std)。注意 MulInplace 输出为第二入参、Mul 输出 dtype 取第一入参,故两分支入参顺序相反。 - **Add**:类型提升已保证 meanCast 与 mulOutCast 的 dtype 一致,且 mean 恒能广播进 mulOutCast,直接改用 AddInplace(meanCast, mulOutCast) 复用 mulOutCast 内存作为输出。 优化仅改变内存使用方式,最多减少 2 次中间内存分配,对功能和精度无影响。 ## 关联的Issue #2260 ## 测试 在 test_aclnn_normal_tensor_tensor_l2.cpp 新增 2 个 L2 UT 覆盖两条分支(UT 默认 soc 为 ASCEND910B/DAV_2201,走 A2/A3 分支): 1. **case_broadcast_mean_ND_normal**:mean{1,3} 向 std{2,3} 广播,stateLessOut 取 mean 的 shape{1,3} 与 out{2,3} 不一致,Mul 走非 inplace 回退分支;Add 侧 meanCast{1,3} 广播进 mulOutCast{2,3}。 2. **case_broadcast_std_ND_normal**:std{1,3} 向 mean{2,3} 广播,stateLessOut 取 mean 的 shape{2,3} 与 out 一致且 dtype 相同,Mul 走 MulInplace 复用内存分支。 两个用例均校验 aclnnNormalTensorTensorGetWorkspaceSize 返回 ACL_SUCCESS;原有 UT(含 case_mixed_dtype_ND_normal 等)保持通过。另对测试文件做了少量格式清理(SetUpTestCase/TearDownTestCase 单行化、补齐文件末尾换行)。 ## 文档更新 无文档变更(本 PR 为内部内存优化,不涉及接口/README 变更)。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [x] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4137 | 1 个月前 | |
支持下一代cos_stateless_bernoulli_stateless_random_normal_v2算子实现 Co-authored-by: z00940181<zhanghaodong30@huawei.com> # message auto-generated for no-merge-commit merge: !548 merge master into master 支持下一代cos_stateless_bernoulli_stateless_random_normal_v2算子实现 Created-by: hawdonz Commit-by: z00940181 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!548 | 8 个月前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 1 个月前 | ||
| 8 个月前 |