已开启
[PROMPT-CONSERVATIVE][source #3] [Requirement|需求建议]: pad_v3_grad算子SIMT kernel变量命名规范化治理 #57
xujiachen8创建于  9月16日
xujiachen8成员
9月16日 创建

本条为响应质量测试副本,来源 https://gitcode.com/xujiachen8/ops-math/issues/3 。

本 Issue 仅用于 gitcode-issue-handler 调试。原始来源:https://gitcode.com/cann/ops-math/issues/3172 。以下保留原始描述。

一、背景信息 (必填)

pad_v3_grad 算子 arch35 平台 SIMT kernel(circular/mirror 填充模式,op_kernel/arch35/pad_v3_grad_circular_simt.h 与 pad_v3_grad_mirror_simt.h)中存在泛化命名:成员 mTD_ 与局部变量 inIdxCnt 在多个模板函数(1~5 维计算分支、CalCandidate/ReflectDimOffset/SymmetricDimOffset 等场景)中重复使用,可读性差,不满足代码度量(cmetrics)整洁要求。需进行变量命名规范化治理。

二、价值/作用 (必填)

提升 kernel 代码可读性与可维护性,降低 circular/mirror 模式及不同维度分支间的误读风险;满足代码度量(cmetrics)治理要求。

三、设计方案 (必填)

3.1 使能方式(涉及哪些框架:如Aclnn直调、Pytorch训练等)

不涉及变更。算子以 aclnn exclude 方式接入(CMakeLists 中 ACLNNTYPE aclnn_exclude、DISABLE_IN_OPP TRUE),本次重构不改变算子对外接口与使能方式。

3.2 总体设计
3.2.1 算子支持的数据类型

bfloat16、float16、float32、int32、int64(ND 格式,以 ascend950/ascend350 平台算子信息配置为准),本次不改变。

3.2.2 host侧设计

无改动。

3.2.3 kernel侧设计
  • pad_v3_grad_circular_simt.h:mTD_ → mCircularTD_;CalCandidate 形参 → circularCandidateIdxCnt;SimtComputeCircularOne~Five 局部变量 → circularInIdxCnt1~5
  • pad_v3_grad_mirror_simt.h:mTD_ → mMirrorTD_;ReflectDimOffset 形参 → mirrorReflectIdxCnt;SymmetricDimOffset 形参 → mirrorSymmetricIdxCnt;SimtComputeMirrorOne~Five 局部变量 → mirrorInIdxCnt1~5
  • 均为同语义重命名并做超长表达式折行与注释对齐,计算逻辑不变
3.3 支持硬件

算子 COMPUTE_UNIT 为 ascend950、mc62、ascend350(CMakeLists 中 tiling/kernel 均映射 arch35 目录),本次重构作用于 arch35 kernel 源码,对上述平台统一生效。

3.4 算子约束限制

不涉及变更。

💡 备注(选填)
关联 PR:https://gitcode.com/cann/ops-math/pull/5656

likedislike
xujiachen8成员
9月16日 评论:

您好,感谢反馈!

需求分析

我们核对了当前 xujiachen8/ops-math 仓库提交 63d11ee0efd1912bf21ddccac750a3f157924a2a。arch35 的 circular 和 mirror SIMT 实现中,mTD_ 保存 tiling 数据,inIdxCnt 保存各维输入索引及候选次数,并在 1 至 5 维分支及 CalCandidate、ReflectDimOffset、SymmetricDimOffset 中反复出现。它们的语义可以从上下文判断,但名称泛化会增加跨模式阅读和代码度量维护成本。

调整方向

按 Issue 给出的方向进行同语义重命名是可行的,例如用能区分 circular/mirror 及索引计数用途的名称,并同步更新模板函数参数、局部变量和相关注释。该类调整应保持模板参数、索引计算、维度分支、数据类型和 arch35 入口不变,只改变标识符及必要排版。PR !5656 已于 2026 年 9 月 14 日合入,改动覆盖 circular/mirror 两个 SIMT 头文件中的命名与排版。该合入信息针对仓库分支,具体发布包是否包含此提交还需按包版本核对。

likedislike