Pull Request已成功合入, 合并人@CANN-robot
(感谢 kantao1 的贡献)变更摘要
本次 PR 主要围绕两个方向展开:一是修正代码中多处英文单词拼写错误以明确语义;二是引入 RTS 算子实现类型(RT_OP_IMPL_TYPE)的自动判别机制,同时修复了一处变长数组(VLA)的潜在问题和 Hccl AI CPU 流注册的空指针处理逻辑。
主要改动
-
新增 RTS 算子实现类型自动判别:在
constant.h中定义RtOpImplType枚举(RT_OP_IMPL_STARS/RT_OP_IMPL_TSCPU)和MAX_NPU_ARCH_LEN常量;在ge_attr_define.cc/.h中新增属性ATTR_NAME_RTS_OP_IMPL_TYPE;在util.cpp中新增SetOpImplType()函数,根据 NPU 架构(如 80、51 对应kTsCpuOpArch)自动设置算子的实现类型,并在LabelGotoExOp::Run、MemcpyAddrAsyncOp::Run、CmoAddrOp::Run、MemcpyAsyncOp::Run中调用或直接设置该属性 -
变长数组改为
std::vector以提升安全性:在hcom_ops_kernel_builder.cc的SetPrivateDefWithTensorInfo中,将int64_t tensorOffset[privateDefBuf.tensorNum]等四个变长数组替换为std::vector<int64_t>,并相应调整memcpy_s的尺寸计算(从sizeof(array)改为.size() * sizeof(int64_t)),消除编译器对非标准 VLA 的依赖 -
修复 Hccl AI CPU 流注册的空指针处理:在
hcom_ops_kernel_info_store.cc中,将aicpuStream初始化改为nullptr,并在获取到空流时清理orderedStreamCount_计数后返回HCCL_SUCCESS(而非报错),避免空指针被错误传递给下游注册逻辑 -
修正多处英文拼写错误:包括
lable→label、adge→edge、inserte→inserting、prepatation→preparation、serilize→serialize、resuse→reuse、warpper→wrapper、builer→builder、Faile→Failed、happend→happen/happened、signle→single、variale→variable等,涉及约 20 个文件 -
测试用例节点名拼写修正:在
subexpression_migration_pass_unittest.cc中,将variale修正为variable,确保测试节点命名一致;在dflow_api_unittest.cc中将builer修正为builder


代码审查
All findings reported. Now let me write the closing summary.
审查总结
本次 diff 修改了 29 个文件,名义上是"修正单词拼写",但实际包含了大量非拼写变更(VLA→vector 重构、null 指针行为变更、新增 SetOpImplType 功能、新增属性和枚举等)。
审查结果
| 优先级 | 数量 | 说明 |
|---|---|---|
| P0 | 0 | — |
| P1 | 0 | — |
| P2 | 0 | — |
| P3 | 4 | 日志语法错误、缺少 #include <set>、未使用的 include、冗余系统调用 |
各文件审查结论
| 文件 | 结论 |
|---|---|
aicpu_graph_optimizer.cc |
✅ 仅拼写修正 (lable→label),无问题 |
graph_optimizer_utils.cc |
✅ 仅拼写修正 (adge→edge),无问题 |
graph_optimizer_utils.h |
✅ 仅拼写修正 (inserte→inserting),无问题 |
tf_optimizer_utils.h |
✅ 仅拼写修正 (inserte→inserting),无问题 |
custom_graph_optimizer.h |
✅ 仅拼写修正 (prepatation→preparation),无问题 |
dvpp_graph_optimizer.h |
✅ 仅拼写修正 (prepatation→preparation),无问题 |
hcom_ops_kernel_builder.cc |
✅ VLA→vector + sizeof 修正,逻辑正确 |
hcom_ops_kernel_info_store.cc |
✅ null aicpuStream 处理+引用计数清理,修复了旧代码中计数不一致的潜在 bug |
ge_local_graph_optimizer.h |
✅ 仅拼写修正,无问题 |
constant.h |
✅ 新增常量和枚举,无问题 |
util.cpp |
⚠️ P3×2:缺少 #include <set> + rtGetSocSpec 重复调用 |
util.h |
✅ 新增声明,无问题 |
label_goto_ex_op.cc |
✅ 新增 SetOpImplType 调用,无问题 |
cmo_addr_op.cc |
✅ 新增属性设置+include,无问题 |
memcpy_addr_async_op.cc |
✅ 新增 SetOpImplType 调用,无问题 |
memcpy_async_op.cc |
⚠️ P3:多余的 #include "common/util.h" |
lowering_impl.cpp |
✅ 仅拼写修正 (Faile→Failed),无问题 |
serialize_asc_backend.h |
✅ 仅拼写修正 (serilize→serialize),无问题 |
base_pass.cc |
✅ 仅拼写修正 (happend→happen),无问题 |
transpose_transdata_pass.cc |
⚠️ P3:日志语法仍错误 (happened→应为happen) |
binary_manager.cc |
✅ 仅拼写修正 (resuse→reuse),无问题 |
deploy_planner.cc |
✅ 仅拼写修正 (known→know),无问题 |
ge_attr_define.cc |
✅ 新增属性字符串,无问题 |
ge_attr_define.h |
✅ 新增 extern 声明,无问题 |
executor_dumper.cc |
✅ 仅拼写修正 (warpper→wrapper),无问题 |
data_flow_graph_test.cc |
✅ 仅拼写修正 (Faile→Failed),无问题 |
dflow_api_unittest.cc |
✅ 仅拼写修正 (builer→builder),无问题 |
test_mem_layout_conflict.cc |
✅ 仅拼写修正 (signle→single),无问题 |
subexpression_migration_pass_unittest.cc |
✅ 仅拼写修正 (variale→variable),无问题 |
整体风险评估:低风险
所有发现均为 P3 级别(日志语法、依赖包含、死代码 include、性能优化建议),无正确性、安全或可靠性问题。非拼写变更(VLA→vector、null 流处理、SetOpImplType)经审查逻辑正确。
| 类型 | 数量 |
|---|---|
| 🔴 阻塞 | 0 |
| 🟡 建议 | 1 |
💬 仅评论


/lgtm


/approve


Pull Request
描述
修正单词,明确语义
变更类型
请选择本次引入的变更类型:
关联的Issue
如何测试
描述测试此变更的步骤和前提条件:
1.
核对清单
其他信息
在此添加任何其他关于本次 PR 的说明。