已合并
add alg check #3840
梅国晗954517创建于 7月6日
add alg check #3840
已合并
梅国晗954517创建于 7月6日
梅国晗954517
梅国晗954517成员
7月6日

描述

内置随机数生成算法默认为Philox算法,即alg始终为1。算子调用传入了alg值,但实际并未使用,仅做对齐竞品接口作用。
竞品和71上随机数生成算法也仅只支持Philox,alg值只能为1,非1时会有校验拦截行为,当前算子需在tiling侧增加对alg的校验拦截,行为对齐竞品和71。

关联的Issue

https://gitcode.com/cann/ops-math/issues/2163

测试

各泛化测试

文档更新

不涉及

类型标签

  • Bug修复
  • 新特性
  • 性能优化
  • 文档更新
  • 其他,请描述:
likedislike
Pull Request已成功合入, 合并人@CANN-robot
(感谢 梅国晗954517 的贡献)
梅国晗954517梅国晗954517成员
7月6日 创建了 pull request,commit d7d6f68a
atomgit-bot
atomgit-bot
7月6日 评论:

变更摘要

本 PR 为 StatelessTruncatedNormalV2 算子的 Tiling 阶段新增了算法类型(alg)输入的合法性校验。此前算子接受 alg 输入但未验证其取值,现在仅允许 alg=1(Philox 算法),对于其他值(如 0 或 2/Threefly)会在 Tiling 阶段通过 OP_LOGE_FOR_INVALID_VALUE_WITH_REASON 宏报错并返回失败,同时对应的输入张量也被添加到数据依赖列表中。此外新增了两个单元测试用例,分别覆盖 alg=0alg=2 的错误场景。

主要改动

  • INPUT_IDX_ALG 输入校验规则增强: 在 BuildOpConfig()inputCheckRules 中为 INPUT_IDX_ALG 添加了 lambda 校验函数,空指针检查后判断 alg 值是否等于 1ALG_PHILOX),不匹配时通过 OP_LOGE_FOR_INVALID_VALUE_WITH_REASON 输出含具体算法 ID 的错误日志并返回 false
  • TilingInputsDataDependency 补充: 在算子注册末尾的 .TilingInputsDataDependency 列表中追加了 INPUT_IDX_ALG,使 Tiling 阶段依赖该输入张量的数据。
  • 新增 #include <string> 头文件: 为支持校验 lambda 中使用 std::to_stringstd::string 构造错误消息。
  • 新增错误场景单元测试: 添加 test_alg_value_error(alg=0)和 test_alg_value_error_threefly(alg=2)两个测试用例,验证不支持的算法值会导致 Tiling 返回 ge::GRAPH_FAILED
likedislike
atomgit-bot
atomgit-bot
7月6日 评论:

代码审查

所有文件均已审查完毕,以下为最终汇总。


审查总结

  • 审查文件数:2
  • 发现问题数:1
优先级 数量
P0 0
P1 0
P2 0
P3 1
  • random/stateless_truncated_normal_v2/op_host/arch35/stateless_truncated_normal_v2_tiling_arch35.cpp:无问题。#include <string> 的新增合理,lambda 校验逻辑正确(空指针检查完备,alg=1 通过、其他拒绝),TilingInputsDataDependency 增加 INPUT_IDX_ALG 是读取 alg 数据所必需的。
  • random/stateless_truncated_normal_v2/tests/ut/op_host/arch35/test_stateless_truncated_normal_v2_tiling.cpp:发现 1 个 P3 拼写问题(threeflythreefry),测试逻辑和结构本身正确。

整体风险评估:该变更风险很低,核心校验逻辑正确,新增测试覆盖了 alg=0 和 alg=2 两种非法值场景。唯一瑕疵是测试名称中的拼写错误,不影响功能。

⚠️ 已识别出整体风险,但无法提取行内评论,请参考整体评估。

likedislike
CANN-robotCANN-robot成员
7月6日 添加了label:cann-cla/yes
CANN-robot
CANN-robot成员
7月6日 评论:

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
repo-cann/ops-math 宋恺, wangrui_ (2/2) 宋恺, wangrui_ (2/1)

💡 Tip:

  • Committer can comment /approve or /lgtm
  • Commenting /approve implies both code review (lgtm) and intent to merge (approve)

CLA Signature Pass

gh_M, thanks for your pull request. All authors of the commits have signed the CLA. 👍

likedislike
此处折叠了82条消息 查看更多
CANN-robotCANN-robot成员
7月8日 添加了label:approved
RuiWang_成员
7月8日 评论:

/lgtm
/approve

likedislike
CANN-robotCANN-robot成员
7月8日 添加了label:lgtm
CANN-robotCANN-robot成员
7月8日 关闭了关联的issue
CANN-robotCANN-robot成员
7月8日 合入了pull request