| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
[selu] 修复aclnn接口返回值未判空问题并修正dtype可转换契约与文档 (#6654 #6674) Co-authored-by: dengguojie<dengguojie@huawei.com> # message auto-generated for no-merge-commit merge: !11931 merge hardening/Selu into master [selu] 修复aclnn接口返回值未判空问题并修正dtype可转换契约与文档 (#6654 #6674) Created-by: dengguojie Commit-by: dengguojie Merged-by: cann-robot Description: ## 描述 本 PR 为 Selu 算子质量加固成果入库,单 commit(350afa548),含判空修复、dtype 契约修正、文档修正与测试资产四类改动。 **1. 判空修复(#6654,op_api/aclnn_selu.cpp,+5 行)** - ExecSeluGetWorkspaceSize 链 5 处 l0op/AllocIntArray 返回值补 CHECK_RET(x != nullptr, ACLNN_ERR_INNER_NULLPTR) 判空(shape1d/reshapeSelf/shapeOriDetail/reshapeSeluOut/castSeluOut),消除内部分配失败场景空指针解引用风险,对齐官方内置 matmul_util 与同仓 lstm_backward 等判空先例。 **2. dtype 契约修正(#6674,op_api/aclnn_selu.cpp +1 行 / docs 1 行 / UT +2 用例)** - 代码:CheckDtypeValid 两条 NOT_SUPPORT 检查后补 OP_CHECK_RESULT_DTYPE_CAST_FAILED(self->GetDataType(), out->GetDataType(), return false),拦截表内不可转换组合(浮点→整型);self/out 支持表内混合 dtype(如 fp32 算/fp16 出)为设计内 cast 行为(l0op::Cast→ViewCopy),不做等值拦截。 - 文档:161002 错误码第③行"self和out的type不匹配。"→"参数out的数据类型不是self可转换的。" - UT 看护 2 用例:test_selu_mixed_dtype_cast(FLOAT→FLOAT16/BF16、INT32→FLOAT/INT8 断言 SUCCESS,防等值拦截复发)+ test_selu_dtype_not_castable(FLOAT→INT32 断言 161002)。 **3. 测试资产(TTK golden 与看护集)** - tests/assets/golden.py:TestSpec 格式标杆(基于 LongTailInfo 2026-08-25 存量交付最小整改:torch 为主实现(含 TF 路 spec golden)、竞品框架函数体内 lazy import、浮点容差采用 LT 仓 cross_check 三方标准(level L2,OA 仓为 L1;不写二方数值容差,本地无竞品环境时由 TTK CLI --compare mixed 走二方比对);TF 双注册 tf.nn.selu/tf.raw_ops.Selu 同指 SeluTensorFlowSpec(third_party 声明式引用);int8 截断+回绕/int32 截断+饱和溢出语义与设备实测逐位对齐;E2E torch 接口经复合分解派发内置 aclnnElu 不经本算子,__spec__ 不注册 torch.selu/torch.nn.functional.selu); - tests/st/arch35/ttk_kernel_selu_st.csv(50 条)+ ttk_aclnn_selu_st.csv(50 条):看护集,从泛化用例套(kernel 580 / aclnn 587 条)按 L0/L1/L2 分层抽取,覆盖正常值/边界值/异常拦截(dtype/format/null/rank/shape);aclnn 侧 8 条非连续(NC)用例的 tensor_view_offsets 已按每 tensor 标量格式序列化,可直接被 TTK 执行;可转换混合 dtype 用例命名 L1_aclnnSelu_mixed_dtype_*(序号沿用)。 **4. HostUT 补齐** - 新增 test_selu_infershape.cpp 与 arch35/test_selu_tiling.cpp,登记 tests/ut/op_host/CMakeLists.txt;host 侧加权行覆盖率 85.3% → 92.5%。 **5. 文档** - README 调用说明表新增 GE 图模式条目(test_geir_selu 样例,算子 IR 构图方式调用)。 ## 关联的Issue - Closes #6654(aclnnSelu 内部 API 返回值未判空) - Closes #6674(aclnnSelu self/out dtype 契约:文档 161002 措辞错误 + 缺 CanCast 防护) ## 测试 - 编译安装:build.sh --pkg --soc=ascend950 通过;三层核验:verify_install 通过、bin path 核验确认加载 vendors/hardening_nn 新代码(非内置)、防假绿实证(plog CanCast 拦截报错来自安装产物中的新代码行); - 117 条定向回归逐条对账:判空修复后 exc_format_005~011 共 7 条恢复 cast 行为(FAIL→PASS),其余 110 条零迁移;dtype 契约修正后 exc_format_005/007(浮点→整型不可转换)PASS→FAIL 为 CanCast 防护预期拦截(UT 负向用例看护),exc_format_006/008~011 可转换组合维持 PASS,其余 115 条零迁移; - UT:op_api 21/21 PASSED(存量 19 零退化 + 新增混合 dtype 2 用例); - 异常拦截实测:空指针 6/6 → 161001、非法 dtype 58+ → 161002、rank/shape 越界 → 161002,运行时零 SegFault; - 看护集可执行性:ttk list 两文件各 Total 50,aclnn 侧与派生执行件逐字段 0 diff;5 条 mixed_dtype 新名用例逐一执行全 PASS 100%。 - golden 资产整改回归:aclnn 402 + kernel 400 + 看护集 100 + GEIR 抽样 52 共 954 条次与基线逐条对账零退化;tolerance 恢复 cross_check 写法后以 --compare mixed 口径重验 aclnn 402 + kernel 400(含 5 dtype 冒烟 10 条)与基线零退化、PASS 集比较标准分布一致;int 溢出语义定向冒烟 9/9(int32 溢出按设备饱和语义最小修正,int8 回绕天然对齐零修正);TF(tf.raw_ops.Selu)隔离子进程交叉验证 float32/float16 通过(bfloat16 差异为 TF 侧舍入偏离 spec RNE 契约,已记录); ## 文档更新 - activation/selu/docs/aclnnSelu&aclnnInplaceSelu.md:161002 第③行措辞修正(等值→可转换语义); - activation/selu/README.md:调用说明表新增 GE 图模式条目。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!11931 | 8 天前 | |
[selu] 修复aclnn接口返回值未判空问题并修正dtype可转换契约与文档 (#6654 #6674) Co-authored-by: dengguojie<dengguojie@huawei.com> # message auto-generated for no-merge-commit merge: !11931 merge hardening/Selu into master [selu] 修复aclnn接口返回值未判空问题并修正dtype可转换契约与文档 (#6654 #6674) Created-by: dengguojie Commit-by: dengguojie Merged-by: cann-robot Description: ## 描述 本 PR 为 Selu 算子质量加固成果入库,单 commit(350afa548),含判空修复、dtype 契约修正、文档修正与测试资产四类改动。 **1. 判空修复(#6654,op_api/aclnn_selu.cpp,+5 行)** - ExecSeluGetWorkspaceSize 链 5 处 l0op/AllocIntArray 返回值补 CHECK_RET(x != nullptr, ACLNN_ERR_INNER_NULLPTR) 判空(shape1d/reshapeSelf/shapeOriDetail/reshapeSeluOut/castSeluOut),消除内部分配失败场景空指针解引用风险,对齐官方内置 matmul_util 与同仓 lstm_backward 等判空先例。 **2. dtype 契约修正(#6674,op_api/aclnn_selu.cpp +1 行 / docs 1 行 / UT +2 用例)** - 代码:CheckDtypeValid 两条 NOT_SUPPORT 检查后补 OP_CHECK_RESULT_DTYPE_CAST_FAILED(self->GetDataType(), out->GetDataType(), return false),拦截表内不可转换组合(浮点→整型);self/out 支持表内混合 dtype(如 fp32 算/fp16 出)为设计内 cast 行为(l0op::Cast→ViewCopy),不做等值拦截。 - 文档:161002 错误码第③行"self和out的type不匹配。"→"参数out的数据类型不是self可转换的。" - UT 看护 2 用例:test_selu_mixed_dtype_cast(FLOAT→FLOAT16/BF16、INT32→FLOAT/INT8 断言 SUCCESS,防等值拦截复发)+ test_selu_dtype_not_castable(FLOAT→INT32 断言 161002)。 **3. 测试资产(TTK golden 与看护集)** - tests/assets/golden.py:TestSpec 格式标杆(基于 LongTailInfo 2026-08-25 存量交付最小整改:torch 为主实现(含 TF 路 spec golden)、竞品框架函数体内 lazy import、浮点容差采用 LT 仓 cross_check 三方标准(level L2,OA 仓为 L1;不写二方数值容差,本地无竞品环境时由 TTK CLI --compare mixed 走二方比对);TF 双注册 tf.nn.selu/tf.raw_ops.Selu 同指 SeluTensorFlowSpec(third_party 声明式引用);int8 截断+回绕/int32 截断+饱和溢出语义与设备实测逐位对齐;E2E torch 接口经复合分解派发内置 aclnnElu 不经本算子,__spec__ 不注册 torch.selu/torch.nn.functional.selu); - tests/st/arch35/ttk_kernel_selu_st.csv(50 条)+ ttk_aclnn_selu_st.csv(50 条):看护集,从泛化用例套(kernel 580 / aclnn 587 条)按 L0/L1/L2 分层抽取,覆盖正常值/边界值/异常拦截(dtype/format/null/rank/shape);aclnn 侧 8 条非连续(NC)用例的 tensor_view_offsets 已按每 tensor 标量格式序列化,可直接被 TTK 执行;可转换混合 dtype 用例命名 L1_aclnnSelu_mixed_dtype_*(序号沿用)。 **4. HostUT 补齐** - 新增 test_selu_infershape.cpp 与 arch35/test_selu_tiling.cpp,登记 tests/ut/op_host/CMakeLists.txt;host 侧加权行覆盖率 85.3% → 92.5%。 **5. 文档** - README 调用说明表新增 GE 图模式条目(test_geir_selu 样例,算子 IR 构图方式调用)。 ## 关联的Issue - Closes #6654(aclnnSelu 内部 API 返回值未判空) - Closes #6674(aclnnSelu self/out dtype 契约:文档 161002 措辞错误 + 缺 CanCast 防护) ## 测试 - 编译安装:build.sh --pkg --soc=ascend950 通过;三层核验:verify_install 通过、bin path 核验确认加载 vendors/hardening_nn 新代码(非内置)、防假绿实证(plog CanCast 拦截报错来自安装产物中的新代码行); - 117 条定向回归逐条对账:判空修复后 exc_format_005~011 共 7 条恢复 cast 行为(FAIL→PASS),其余 110 条零迁移;dtype 契约修正后 exc_format_005/007(浮点→整型不可转换)PASS→FAIL 为 CanCast 防护预期拦截(UT 负向用例看护),exc_format_006/008~011 可转换组合维持 PASS,其余 115 条零迁移; - UT:op_api 21/21 PASSED(存量 19 零退化 + 新增混合 dtype 2 用例); - 异常拦截实测:空指针 6/6 → 161001、非法 dtype 58+ → 161002、rank/shape 越界 → 161002,运行时零 SegFault; - 看护集可执行性:ttk list 两文件各 Total 50,aclnn 侧与派生执行件逐字段 0 diff;5 条 mixed_dtype 新名用例逐一执行全 PASS 100%。 - golden 资产整改回归:aclnn 402 + kernel 400 + 看护集 100 + GEIR 抽样 52 共 954 条次与基线逐条对账零退化;tolerance 恢复 cross_check 写法后以 --compare mixed 口径重验 aclnn 402 + kernel 400(含 5 dtype 冒烟 10 条)与基线零退化、PASS 集比较标准分布一致;int 溢出语义定向冒烟 9/9(int32 溢出按设备饱和语义最小修正,int8 回绕天然对齐零修正);TF(tf.raw_ops.Selu)隔离子进程交叉验证 float32/float16 通过(bfloat16 差异为 TF 侧舍入偏离 spec RNE 契约,已记录); ## 文档更新 - activation/selu/docs/aclnnSelu&aclnnInplaceSelu.md:161002 第③行措辞修正(等值→可转换语义); - activation/selu/README.md:调用说明表新增 GE 图模式条目。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!11931 | 8 天前 | |
[selu] 修复aclnn接口返回值未判空问题并修正dtype可转换契约与文档 (#6654 #6674) Co-authored-by: dengguojie<dengguojie@huawei.com> # message auto-generated for no-merge-commit merge: !11931 merge hardening/Selu into master [selu] 修复aclnn接口返回值未判空问题并修正dtype可转换契约与文档 (#6654 #6674) Created-by: dengguojie Commit-by: dengguojie Merged-by: cann-robot Description: ## 描述 本 PR 为 Selu 算子质量加固成果入库,单 commit(350afa548),含判空修复、dtype 契约修正、文档修正与测试资产四类改动。 **1. 判空修复(#6654,op_api/aclnn_selu.cpp,+5 行)** - ExecSeluGetWorkspaceSize 链 5 处 l0op/AllocIntArray 返回值补 CHECK_RET(x != nullptr, ACLNN_ERR_INNER_NULLPTR) 判空(shape1d/reshapeSelf/shapeOriDetail/reshapeSeluOut/castSeluOut),消除内部分配失败场景空指针解引用风险,对齐官方内置 matmul_util 与同仓 lstm_backward 等判空先例。 **2. dtype 契约修正(#6674,op_api/aclnn_selu.cpp +1 行 / docs 1 行 / UT +2 用例)** - 代码:CheckDtypeValid 两条 NOT_SUPPORT 检查后补 OP_CHECK_RESULT_DTYPE_CAST_FAILED(self->GetDataType(), out->GetDataType(), return false),拦截表内不可转换组合(浮点→整型);self/out 支持表内混合 dtype(如 fp32 算/fp16 出)为设计内 cast 行为(l0op::Cast→ViewCopy),不做等值拦截。 - 文档:161002 错误码第③行"self和out的type不匹配。"→"参数out的数据类型不是self可转换的。" - UT 看护 2 用例:test_selu_mixed_dtype_cast(FLOAT→FLOAT16/BF16、INT32→FLOAT/INT8 断言 SUCCESS,防等值拦截复发)+ test_selu_dtype_not_castable(FLOAT→INT32 断言 161002)。 **3. 测试资产(TTK golden 与看护集)** - tests/assets/golden.py:TestSpec 格式标杆(基于 LongTailInfo 2026-08-25 存量交付最小整改:torch 为主实现(含 TF 路 spec golden)、竞品框架函数体内 lazy import、浮点容差采用 LT 仓 cross_check 三方标准(level L2,OA 仓为 L1;不写二方数值容差,本地无竞品环境时由 TTK CLI --compare mixed 走二方比对);TF 双注册 tf.nn.selu/tf.raw_ops.Selu 同指 SeluTensorFlowSpec(third_party 声明式引用);int8 截断+回绕/int32 截断+饱和溢出语义与设备实测逐位对齐;E2E torch 接口经复合分解派发内置 aclnnElu 不经本算子,__spec__ 不注册 torch.selu/torch.nn.functional.selu); - tests/st/arch35/ttk_kernel_selu_st.csv(50 条)+ ttk_aclnn_selu_st.csv(50 条):看护集,从泛化用例套(kernel 580 / aclnn 587 条)按 L0/L1/L2 分层抽取,覆盖正常值/边界值/异常拦截(dtype/format/null/rank/shape);aclnn 侧 8 条非连续(NC)用例的 tensor_view_offsets 已按每 tensor 标量格式序列化,可直接被 TTK 执行;可转换混合 dtype 用例命名 L1_aclnnSelu_mixed_dtype_*(序号沿用)。 **4. HostUT 补齐** - 新增 test_selu_infershape.cpp 与 arch35/test_selu_tiling.cpp,登记 tests/ut/op_host/CMakeLists.txt;host 侧加权行覆盖率 85.3% → 92.5%。 **5. 文档** - README 调用说明表新增 GE 图模式条目(test_geir_selu 样例,算子 IR 构图方式调用)。 ## 关联的Issue - Closes #6654(aclnnSelu 内部 API 返回值未判空) - Closes #6674(aclnnSelu self/out dtype 契约:文档 161002 措辞错误 + 缺 CanCast 防护) ## 测试 - 编译安装:build.sh --pkg --soc=ascend950 通过;三层核验:verify_install 通过、bin path 核验确认加载 vendors/hardening_nn 新代码(非内置)、防假绿实证(plog CanCast 拦截报错来自安装产物中的新代码行); - 117 条定向回归逐条对账:判空修复后 exc_format_005~011 共 7 条恢复 cast 行为(FAIL→PASS),其余 110 条零迁移;dtype 契约修正后 exc_format_005/007(浮点→整型不可转换)PASS→FAIL 为 CanCast 防护预期拦截(UT 负向用例看护),exc_format_006/008~011 可转换组合维持 PASS,其余 115 条零迁移; - UT:op_api 21/21 PASSED(存量 19 零退化 + 新增混合 dtype 2 用例); - 异常拦截实测:空指针 6/6 → 161001、非法 dtype 58+ → 161002、rank/shape 越界 → 161002,运行时零 SegFault; - 看护集可执行性:ttk list 两文件各 Total 50,aclnn 侧与派生执行件逐字段 0 diff;5 条 mixed_dtype 新名用例逐一执行全 PASS 100%。 - golden 资产整改回归:aclnn 402 + kernel 400 + 看护集 100 + GEIR 抽样 52 共 954 条次与基线逐条对账零退化;tolerance 恢复 cross_check 写法后以 --compare mixed 口径重验 aclnn 402 + kernel 400(含 5 dtype 冒烟 10 条)与基线零退化、PASS 集比较标准分布一致;int 溢出语义定向冒烟 9/9(int32 溢出按设备饱和语义最小修正,int8 回绕天然对齐零修正);TF(tf.raw_ops.Selu)隔离子进程交叉验证 float32/float16 通过(bfloat16 差异为 TF 侧舍入偏离 spec RNE 契约,已记录); ## 文档更新 - activation/selu/docs/aclnnSelu&aclnnInplaceSelu.md:161002 第③行措辞修正(等值→可转换语义); - activation/selu/README.md:调用说明表新增 GE 图模式条目。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!11931 | 8 天前 | |
Format update: Adjusted the license description format in all relevant files. Co-authored-by: jiangqi<jiangqi47@h-partners.com> # message auto-generated for no-merge-commit merge: !364 merge license4 into master Format update: Adjusted the license description format in all relevant files. Created-by: jiangqi2025 Commit-by: jiangqi Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #123--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!364 | 10 个月前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 8 天前 | ||
| 8 天前 | ||
| 8 天前 | ||
| 10 个月前 |