已合并
【docs】更新多核tiling 算子实践 #4157
Chen Ning创建于 7月8日
【docs】更新多核tiling 算子实践 #4157
已合并
Pull Request已成功合入, 合并人@CANN-robot
(感谢 Chen Ning 的贡献)atomgit-bot
7月8日 评论:
7月8日 评论:
变更摘要
本次 PR 更新了多核 Tiling 算子实践示例文档,主要对 vector_tiling_strategy.asc 中的 Tiling 计算逻辑进行了重构。核心变化包括移除 TileInfo 辅助结构体与 CalcTileInfo 函数,将原先基于该函数的间接计算改为直接推导各变量,同时调整了分支判断结构,使四种 Tiling 场景的判定逻辑更加清晰直观。
主要改动
- 移除
TileInfo结构体与CalcTileInfo函数:原先通过CalcTileInfo计算tileNum和lastTileLength,现改为直接计算baseTileNum、baseLastTileLength、formerTileNum、formerLastTileLength等变量,减少了中间抽象层。 - 重构
LaunchAddByTiling分支逻辑:将mainTileRemainder == 0U的纯主块均分场景提前返回,避免后续冗余的尾块长度判断;mainTileRemainder != 0U时所有核均有等长尾块,直接进入MainTileWithTailBlockTiling。 - 新增尾块余数合并为主块的优化:当
formerLastTileLength == MAIN_TILE_LENGTH时,将前核的最后一个尾块提升为完整主块(formerTileNum += 1U; formerLastTileLength = 0U),减少不必要的尾块处理。 - 常量重命名:
HALF_SIZE改为SIZE_OF_HALF,使常量语义更明确,相关引用(地址计算、数据大小计算)同步更新。 - 更新场景注释名称:四种 Tiling 场景的描述从"仅主块、主块+尾块、主块+尾核、尾块+尾核"改为"主块均分、主块-尾块、主块-尾核、尾块-尾核"。


atomgit-bot
7月8日 评论:
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 |
💬 仅评论


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


zhugexun_sjtu
18 天前 评论:
18 天前 评论:
/lgtm


18 天前 添加了label:lgtm
18 天前 关闭了关联的issue
18 天前 合入了pull request
描述
优化算子实践参考中的多核Tiling切分相关内容
关联的Issue
测试
文档更新
类型标签