| feat(logit): Logit/LogitGrad 改手写支持非连续输入输出 Co-authored-by: luoyufan7<luoyufan7@h-partners.com> # message auto-generated for no-merge-commit merge: !11989 merge feat/logit-noncontig into master feat(logit): Logit/LogitGrad 改手写支持非连续输入输出 Created-by: luoyufan7 Commit-by: luoyufan7 Merged-by: cann-robot Description: ## 描述 ### 改动原因 O1 图模式/eager 模式存在非连续输入输出场景,aclnnLogit / aclnnLogitGrad 当前为自动生成实现(无手写 aclnn 层),输出为非连续 tensor 时 kernel 按连续线性布局写入,结果落在错误位置(详见关联 issue)。 ### 改动方法 | 接口 | 改造 | |---|---| | aclnnLogit(input, eps, out) / aclnnLogitGrad(x, dy, eps, out) | 自动生成改手写:新建 l0op 桥接(logit_l0op / logit_grad_l0op,避开 op_kernel 同名头文件)+ 手写 aclnn 层;CMakeLists 由 aclnn 改 aclnn_exclude | - 参照同目录族 nll_loss 的手写先例(loss 系 op_api 位于算子目录顶层) - 非连续支持:输入 l0op::Contiguous 转连续(连续原样返回零开销);输出 IsContiguous 判断——连续直接作 kernel 输出,非连续分配连续结果 buffer(write-only 不拷旧值)计算后 l0op::ViewCopy 按 stride 回写 - eps 属性按公共签名 double 透传(桥接侧 float),签名与自动生成版逐参一致 - 机型判断用 SocVersion;kernel/tiling/binary 不变 ## 关联的Issue Closes #6701 ## 测试 - A2(910B3)build.sh --soc=ascend910b --ops=logit;logit_grad 真机 op 构建:Build binary success - A2 build.sh -u --opapi --soc=ascend910b --ut_mode=fast:4 tests PASSED / 0 FAILED(非连续输入+非连续输出用例,六参 TensorDesc 构造 strides/offset/storageShape) - pre-commit 全部 hook 通过(clang-format / codespell / OAT 合规),零自动修复 ## 文档更新 - docs/aclnnLogit.md / docs/aclnnLogitGrad.md:out 的"非连续Tensor"标记由 × 改为 √ ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!11989 | 5 天前 |