已合并
【docs】更新多核tiling 算子实践 #4157
Chen Ning创建于 7月8日
【docs】更新多核tiling 算子实践 #4157
已合并
Chen Ning创建于 7月8日
Chen Ning
Chen Ning成员
7月8日

描述

优化算子实践参考中的多核Tiling切分相关内容

关联的Issue

测试

文档更新

类型标签

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

变更摘要

本次 PR 更新了多核 Tiling 算子实践示例文档,主要对 vector_tiling_strategy.asc 中的 Tiling 计算逻辑进行了重构。核心变化包括移除 TileInfo 辅助结构体与 CalcTileInfo 函数,将原先基于该函数的间接计算改为直接推导各变量,同时调整了分支判断结构,使四种 Tiling 场景的判定逻辑更加清晰直观。

主要改动

  • 移除 TileInfo 结构体与 CalcTileInfo 函数:原先通过 CalcTileInfo 计算 tileNumlastTileLength,现改为直接计算 baseTileNumbaseLastTileLengthformerTileNumformerLastTileLength 等变量,减少了中间抽象层。
  • 重构 LaunchAddByTiling 分支逻辑:将 mainTileRemainder == 0U 的纯主块均分场景提前返回,避免后续冗余的尾块长度判断;mainTileRemainder != 0U 时所有核均有等长尾块,直接进入 MainTileWithTailBlockTiling
  • 新增尾块余数合并为主块的优化:当 formerLastTileLength == MAIN_TILE_LENGTH 时,将前核的最后一个尾块提升为完整主块(formerTileNum += 1U; formerLastTileLength = 0U),减少不必要的尾块处理。
  • 常量重命名HALF_SIZE 改为 SIZE_OF_HALF,使常量语义更明确,相关引用(地址计算、数据大小计算)同步更新。
  • 更新场景注释名称:四种 Tiling 场景的描述从"仅主块、主块+尾块、主块+尾核、尾块+尾核"改为"主块均分、主块-尾块、主块-尾核、尾块-尾核"。
likedislike
atomgit-bot
atomgit-bot
7月8日 评论:

代码审查

我已经完成了对所有12个变更文件的审查。以下是我的总结。


审查总结

审查的变更文件及结果:

文件 结果
docs/guide/index.md 无问题(TOC 链接更新一致)
docs/guide/算子实践参考/SIMD算子实现/矢量编程/DoubleBuffer场景.md 无问题(交叉引用更新正确)
docs/guide/算子实践参考/SIMD算子实现/矢量编程/多核-Tiling切分/主块-尾块.md 无问题(新建文档,代码示例正确)
docs/guide/算子实践参考/SIMD算子实现/矢量编程/多核-Tiling切分/主块-尾核.md 发现 1 个问题(变量作用域错误)
docs/guide/算子实践参考/SIMD算子实现/矢量编程/多核-Tiling切分/主块均分.md 无问题(新建文档,代码示例正确)
docs/guide/算子实践参考/SIMD算子实现/矢量编程/多核-Tiling切分/尾块-尾核.md 无问题(新建文档,代码示例正确)
docs/guide/算子实践参考/SIMD算子实现/矢量编程/多核-Tiling切分/概述.md 无问题(重写内容准确)
docs/guide/算子实践参考/SIMD算子实现/矢量编程/概述.md 无问题(TOC 更新一致)
docs/guide/算子实践参考/SIMD算子性能优化/Tiling策略/核间负载均衡.md 无问题(新增交叉引用正确)
examples/.../CMakeLists.txt 无问题(仅注释变更)
examples/.../README.md 无问题(场景名称更新和锚点添加一致)
examples/.../vector_tiling_strategy.asc 无问题(代码重构正确,数学验证通过)

按优先级统计:

  • P0:0
  • P1:0
  • P2:1
  • P3:0

整体风险评估:低风险。 此 PR 是一个文档重构,将旧的多核 Tiling 文档(多核Tiling、尾块Tiling、尾核Tiling、尾核&尾块)替换为以主块概念为中心的新组织方式(主块均分、主块-尾块、主块-尾核、尾块-尾核)。实际代码重构(.asc 文件)在数学上是正确的,并且通过移除辅助函数进行了简化。唯一的发现是 主块-尾核.md 中的一个文档作用域问题,即变量在 if 块内声明但在外部使用——这不会影响运行时行为,但会给读者提供不正确的 C++ 示例代码。

类型 数量
🔴 阻塞 0
🟡 建议 1

💬 仅评论

likedislike
CANN-robotCANN-robot成员
7月8日 添加了label:stat/needs-squash
CANN-robotCANN-robot成员
7月8日 添加了label:cann-cla/yes
此处折叠了167条消息 查看更多
zhugexun_sjtu
zhugexun_sjtu成员
18 天前 评论:

/approve

likedislike
zhugexun_sjtu
zhugexun_sjtu成员
18 天前 评论:

/lgtm

likedislike
CANN-robotCANN-robot成员
18 天前 添加了label:lgtm
CANN-robotCANN-robot成员
18 天前 关闭了关联的issue
CANN-robotCANN-robot成员
18 天前 合入了pull request