已合并
fix cleancode view_copy #3838
fix cleancode view_copy #3838
已合并
csz创建于 7月6日
 csz
csz
7月6日

描述

冒烟和ST测试通过
修改viewcopy的超大函数和超大圈复杂度问题
提交后发现还有pre-commit的格式问题也修改了

关联的Issue

https://gitcode.com/cann/ops-math/issues/2154
DTS2607060008784

测试

文档更新

类型标签

likedislike
Pull Request已成功合入, 合并人@CANN-robot
(感谢 csz 的贡献)
 csz csz
7月6日 创建了 pull request,commit e7e46fb7
atomgit-bot
atomgit-bot
7月6日 评论:

变更摘要

本次 PR 是对 view_copy_tiling_arch35.cpp 的一次代码整洁性重构(clean code),主要将 GetSizeAndStrideValueDoTiling 两个函数中的内联逻辑提取为独立的辅助函数,以提升代码可读性和可维护性,不涉及功能逻辑的变更。

主要改动

  • 新增 FilterSizeAndStrideAxes 模板函数:将原本在 GetSizeAndStrideValue 中过滤 size/stride 维度(跳过值为 1 的轴)及兜底填充的逻辑提取为独立函数,在 GetSizeAndStrideValue 中直接调用。
  • 新增 CalcOutSizeAndAdjustUb 函数:将 DoTiling 中计算 outSize 并根据多核条件动态调整 ubSize、重新计算 ubFactor 的 while 循环逻辑抽取为独立函数,返回计算后的 outSize
  • 新增 CalcContiguousStrides 函数:将 DoTiling 中基于 disContiguousAxis 计算 contiguousUbDstStridecontiguousUbSrcStride 的两个 for 循环逻辑抽取为独立函数。
likedislike
atomgit-bot
atomgit-bot
7月6日 评论:

代码审查

审查总结

本次审查覆盖了 1 个变更文件:conversion/view_copy/op_host/arch35/view_copy_tiling_arch35.cpp

该文件的变更是将 GetSizeAndStrideValueDoTiling 两个函数中的大段内联代码提取为三个独立的静态辅助函数(FilterSizeAndStrideAxesCalcOutSizeAndAdjustUbCalcContiguousStrides),以降低圈复杂度。提取的代码在逻辑上与原内联代码基本一致。

发现统计:P3 × 1

  • P3(1 个)CalcOutSizeAndAdjustUb 函数中新增了 bytesForOneData > 0 守卫,这是原始内联代码中不存在的防御性变更。对于所有合法输入该守卫无实际影响,但在重构 PR 中引入了行为偏差,并与同文件中其他类似代码路径风格不一致。

整体风险评估:低风险。变更的主体是纯粹的代码提取重构,不影响正常业务流程。唯一的行为差异仅存在于非法 dtype 的边缘场景,且在实际运行中不可达。

⚠️ 已识别出整体风险,但无法提取行内评论,请参考整体评估。

likedislike
CANN-robotCANN-robot成员
7月6日 添加了label:cann-cla/yes
 csz csz
7月6日 修改了pull request 的描述
此处折叠了64条消息 查看更多
 csz csz
7月7日 修改了pull request 的描述
zl_hw成员
7月7日 评论:

/lgtm
/approve

likedislike
CANN-robotCANN-robot成员
7月7日 添加了label:lgtm
CANN-robotCANN-robot成员
7月7日 关闭了关联的issue
CANN-robotCANN-robot成员
7月7日 合入了pull request