Pull Request已成功合入, 合并人@CANN-robot
(感谢 tianyu52 的贡献)变更摘要
本 PR 针对 BNInfer、InplaceApplyRMSProp、ApplyCamePart1 三个算子的检视意见进行闭环整改,涉及算子原型文档、tiling/内核实现、公共代码抽取及测试用例调整。BNInfer 扩展了输入格式支持范围并对 last-channel tiling 增加 UB 容量校验;ApplyCamePart1 支持带 batch 维度的 grad 输入并删除独立的 InferDataType 实现;InplaceApplyRMSProp 将同步机制从 PipeBarrier 改为事件同步,并将 use_locking 属性改为可选。此外两个优化算子的测试基准从 cross_check 调整为 stat_rel_err。
主要改动
-
BNInfer 算子文档与格式支持扩展: 在
bn_infer_proto.h中更新注释,输入x支持NC1HWC0、NULL、ND、NCHW、NCDHW、NHWC、NDHWC等多种格式,输出y与x格式一致,epsilon由可选改为必选属性;同时新增 nchw-like 与 ndhwc-like 的 infer shape 单测。 -
BNInfer last-channel tiling 增加 UB 容量校验: 在
bn_infer_tiling_infer_last_channel_arch35.cpp的FillLastChannelTilingForBSplit中新增requiredUbBytes与ubSize的容量判断,超出可用 UB 时返回GRAPH_FAILED,并补充了rejectLastChannelWhenChannelCacheExceedsUb测试用例。 -
ApplyCamePart1 支持 batch 维度与标量 eps: 更新
apply_came_part1_proto.h中 grad(rank ≥ 2,形如[batch..., n, m])与三个输出的形状描述;删除apply_came_part1_infershape_datatype.cpp中独立的 InferDataType 实现,并新增SupportsHigherRankBatchGrad、SupportsScalarEps单测。 -
ApplyCamePart1 抽取公共数据拷贝函数: 在
apply_came_part1_common.h中新增CopyOutReductionWorkspaceApplyCamePart1,将 fp16 与 fp32 两个内核中重复的事件同步及 workspace 数据拷贝逻辑收敛到该公共函数。 -
InplaceApplyRMSProp 同步机制与属性调整: 在
inplace_apply_rms_prop.h的LoadScalarF32中用MTE2_V、V_S事件同步替代PipeBarrier,并用常量kFp16CastAlignment表达 fp16 转换对齐;tiling 单测中use_locking属性改为可选,新增缺省该属性时 tiling 仍成功的用例;golden.py中该算子及ApplyCamePart1的测试容差标准均从cross_check改为stat_rel_err。


Pull Request 已合并或已关闭。
If you want to solve this problem, you can click here to do it in the FAQs.


The following label is not ready.
ci-pipeline-passed: The ci-pipeline-passed label is expired as added over 72 hours. Please use /compile to recompile.


描述
BNInfer,InplaceApplyRMSProp以及ApplyCamePart1算子检视意见闭环
关联的Issue
测试
BNInfer:泛化测试1000条均PASS
InplaceApplyRMSProp:泛化测试1000条均PASS
ApplyCamePart1:泛化测试1000条均PASS
文档更新
类型标签
AI/Agent生成声明