文件最后提交记录最后更新时间
D&C 示例代码修复 Co-authored-by: jiangxiuhan1<jiangxiuhan@huawei.com> # message auto-generated for no-merge-commit merge: !4371 merge master into master D&C 示例代码修复 Created-by: jiangxiuhan1 Commit-by: jiangxiuhan1 Merged-by: cann-robot Description: ## 描述 IS_TEST_* 需要手动设置,直接运行示例代码,没有设置IS_TEST_* 会导致 example 运行失败,example daily会运行失败; 修复上述问题,将原先独立的IS_TEST_A3和IS_TEST_A5布尔标志合并为统一的IS_TEST_A3A5标志,并设置为true,可直接运行示例代码。 ## 关联的Issue https://gitcode.com/cann/ops-transformer/issues/1948 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [x] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: # 代码检视报告 **检视文件**:test_aclnn_moe_distribute_combine_v2.cpp **检视类别**:C++ 安全编码规范(Host 侧测试代码) **规范来源**:cpp-secure.mdascendc-topk.md **检视时间**:2026-04-20 --- ## 风险点列表 ### 【中风险】问题1:LOG 参数类型不匹配 **代码位置**:116-118 行、80 行 ```cpp LOG_PRINT("[INFO] rank = %d, ...", args.rankId, ...); // args.rankId 是 uint32_t,应用 %u LOG_PRINT("[ERROR] aclrtMalloc failed. ret: %d\n", ret); // ret 是 int,%d 正确 ``` **假设检验过程**: | 证据类型 | 分析动作 | 分值 | |---------|---------|------| | 规范违反 | 规则 11.3:LOG 参数类型与格式化说明符不匹配 | +40% | | 上下文防御缺失 | 无类型检查 | +30% | **自信值**:70%(> 60%,判定存在风险) **规范条款**:规则 11.3 LOG API 参数类型必须与格式化说明符匹配 [适用: Tiling] **建议修复**:uint32_t 类型使用 %u 而非 %d。 --- ### 【中风险】问题2:资源释放后未置空 **代码位置**:315-320 行、576-581 行 ```cpp if (dispatchV2WorkspaceSize > 0) { aclrtFree(dispatchV2WorkspaceAddr); // 释放后未置 nullptr } ``` **假设检验过程**: | 证据类型 | 分析动作 | 分值 | |---------|---------|------| | 规范违反 | 规则 3.2:资源释放后指针应置新值 | +40% | | 上下文防御缺失 | 后续无重复使用,但不符合规范 | +20% | **自信值**:60%(= 60%,判定存在风险) **规范条款**:规则 3.2 指向资源句柄的变量,在资源释放后立即赋予新值 [适用: Tiling] **建议修复**: ```cpp if (dispatchV2WorkspaceSize > 0) { aclrtFree(dispatchV2WorkspaceAddr); dispatchV2WorkspaceAddr = nullptr; } ``` --- ### 【中风险】问题3:函数返回值未校验 **代码位置**:768-772 行 ```cpp if (IS_TEST_A2) { int ret = run_example_on_A2(); // 返回值未使用 } else if (IS_TEST_A3A5) { int ret = run_example_on_A3A5(); // 返回值未使用 } ``` **假设检验过程**: | 证据类型 | 分析动作 | 分值 | |---------|---------|------| | 规范违反 | TOPK 问题1:必须校验函数返回值 | +40% | | 上下文防御缺失 | 未处理执行失败情况 | +30% | **自信值**:70%(> 60%,判定存在风险) **规范条款**:TOPK 问题清单 规则 1 必须校验函数返回值 [适用: Host] --- ## 检视总结 | 风险级别 | 数量 | 问题类型 | |---------|------|---------| | 中风险 | 3 | LOG类型不匹配、资源释放后未置空、返回值未校验 | # 代码检视报告 **检视文件**:test_aclnn_moe_distribute_dispatch_v2.cpp **检视类别**:C++ 安全编码规范(Host 侧测试代码) **规范来源**:cpp-secure.mdascendc-topk.md **检视时间**:2026-04-20 --- ## 风险点列表 ### 【中风险】问题1:LOG 参数类型不匹配 **代码位置**:115 行、361 行 ```cpp LOG_PRINT("[INFO] rank = %d, ...", args.rankId, ...); // args.rankId 是 uint32_t,应用 %u ``` **假设检验过程**: | 证据类型 | 分析动作 | 分值 | |---------|---------|------| | 规范违反 | 规则 11.3:LOG 参数类型与格式化说明符不匹配 | +40% | | 上下文防御缺失 | 无类型检查 | +30% | **自信值**:70%(> 60%,判定存在风险) **规范条款**:规则 11.3 LOG API 参数类型必须与格式化说明符匹配 [适用: Tiling] --- ### 【中风险】问题2:资源释放后未置空 **代码位置**:314-318 行、572-577 行 ```cpp if (dispatchV2WorkspaceSize > 0) { aclrtFree(dispatchV2WorkspaceAddr); // 释放后未置 nullptr } ``` **假设检验过程**: | 证据类型 | 分析动作 | 分值 | |---------|---------|------| | 规范违反 | 规则 3.2:资源释放后指针应置新值 | +40% | | 上下文防御缺失 | 后续无重复使用,但不符合规范 | +20% | **自信值**:60%(= 60%,判定存在风险) **规范条款**:规则 3.2 指向资源句柄的变量,在资源释放后立即赋予新值 [适用: Tiling] --- ### 【中风险】问题3:函数返回值未校验 **代码位置**:763 行、767 行 ```cpp if (IS_TEST_A2) { LOG_PRINT("Example on <Atlas A2> will be executed!\n"); int ret = run_example_on_A2(); // 返回值未使用 } else if (IS_TEST_A3A5) { LOG_PRINT("Example on <Atlas A3> or <Atlas A5> will be executed!\n"); int ret = run_example_on_A3A5(); // 返回值未使用 } ``` **假设检验过程**: | 证据类型 | 分析动作 | 分值 | |---------|---------|------| | 规范违反 | TOPK 问题1:必须校验函数返回值 | +40% | | 上下文防御缺失 | 未处理执行失败情况 | +30% | **自信值**:70%(> 60%,判定存在风险) **规范条款**:TOPK 问题清单 规则 1 必须校验函数返回值 [适用: Host] --- ## 检视总结 | 风险级别 | 数量 | 问题类型 | |---------|------|---------| | 中风险 | 3 | LOG类型不匹配、资源释放后未置空、返回值未校验 | See merge request: cann/ops-transformer!43711 个月前
mc2 docs fix Co-authored-by: caoqiku<caoqiku1@h-partners.com> # message auto-generated for no-merge-commit merge: !4110 merge mc2_docs_fix into master mc2 docs fix Created-by: cqk1107 Commit-by: caoqiku Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 同步mc2文档更新商分pr上的检视意见 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [x] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!41101 个月前
mc2 docs fix Co-authored-by: caoqiku<caoqiku1@h-partners.com> # message auto-generated for no-merge-commit merge: !4110 merge mc2_docs_fix into master mc2 docs fix Created-by: cqk1107 Commit-by: caoqiku Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 同步mc2文档更新商分pr上的检视意见 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [x] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!41101 个月前