Pull Request已成功合入, 合并人@CANN-robot
(感谢 jzj007 的贡献)Thanks for your pull-request.
The full list of commands accepted by me can be found at here。
You can get sig-info at here
PR Approval Progress
✅ Congratulations! All modules have met the lgtm and approve requirements.
Module Approval Details
| module | lgtm status | approve status |
|---|---|---|
| conversion/transpose | ✅ 宋恺, wangrui_ (2/2) | ✅ 宋恺, wangrui_ (2/1) |
💡 Tip:
- Committer can comment
/approveor/lgtm- Commenting
/approveimplies both code review (lgtm) and intent to merge (approve)
CLA Signature Pass
jzj007, thanks for your pull request. All authors of the commits have signed the CLA. 👍


变更摘要
此次 PR 主要针对 TransposeNddmaTiling 中 021 转置的 VConv tiling 路径进行了修复和优化:将原本内联的 021 VConv 有效性判断逻辑抽取为独立方法 Is021VConvValid(),并补充了更精细的 shape 对齐和乘积下限校验(引入 HW_ALIGN、HW_MIN_PRODUCT 常量),同时在 EntryTilingTemplate() 中为 DAV_5102 架构增加了末轴最小元素数的限制条件,以避免将不合适的 shape 送入 021 VConv 路径导致性能回退。
主要改动
-
抽取
Is021VConvValid()方法并强化校验逻辑:将原本内联在TryVCONVTiling()中的 021 转置条件判断提取为独立方法Is021VConvValid(),新增了H * W >= HW_MIN_PRODUCT(448)的下限检查,以及基于HW_ALIGN(16)的对齐后面积比对校验(H * W <= hAlign * wAlign / 2时视为无效),避免小尺寸或非对齐 shape 进入 021 VConv 路径。 -
新增常量
HW_ALIGN与HW_MIN_PRODUCT:在头文件transpose_tiling_arch35.h中添加constexpr int64_t HW_ALIGN = 16和constexpr int64_t HW_MIN_PRODUCT = 448,作为 021 VConv tiling 的 shape 校验阈值。 -
EntryTilingTemplate()增加末轴最小元素限制:在 DAV_5102 架构的非末轴转置分支中,新增条件shapeInfo_.reducedInShape[shapeInfo_.dim - 1] >= MOVEALIGN_LAST_MIN_ELE,防止末轴元素过少时误用不适合的 tiling 阈值。


代码审查
经过对两个变更文件的详细审查,我确认该 diff 没有引入任何正确性、安全性或可靠性问题。以下是逐文件总结:
文件 1: conversion/transpose/op_host/arch35/transpose_tiling_arch35.cpp
变更内容:
- 将 021 VCONV 校验逻辑从内联条件提取为
Is021VConvValid()方法,并新增了两个性能调优约束(H*W >= 448和H*W > hAlign*wAlign/2),均为有意的 profiling 调优参数,不存在越界或溢出风险。 - 在
EntryTilingTemplate()中新增shapeInfo_.reducedInShape[shapeInfo_.dim - 1] >= MOVEALIGN_LAST_MIN_ELE条件以对齐阈值设定和 tiling 路径选择逻辑,dim在此处已确保 >= 2,数组访问安全。
文件 2: conversion/transpose/op_host/arch35/transpose_tiling_arch35.h
变更内容:
- 新增常量
HW_ALIGN = 16、HW_MIN_PRODUCT = 448,用于 profiling 约束。 - 新增私有方法声明
bool Is021VConvValid(),与 cpp 定义一致。
整体风险评估:低风险。 此变更是一次 profiling 调优,未发现逻辑错误、内存问题或安全风险。
审查结论:未发现问题,无需报告。
⚠️ 已识别出整体风险,但无法提取行内评论,请参考整体评估。


描述
关联的Issue
#2120
测试
文档更新
类型标签