| fix: 修复 stateless_random_uniform_v3 与 stateless_random_choice_with_mask 样例运行期问题 Co-authored-by: xuejinghui<xuejinghui@huawei.com> # message auto-generated for no-merge-commit merge: !6997 merge fix/ops-math-20261102-102928-ops-math-stateless-random-choice-with-mask-stateless-ran into master fix: 修复 stateless_random_uniform_v3 与 stateless_random_choice_with_mask 样例运行期问题 Created-by: xuejinghui Commit-by: xuejinghui Merged-by: cann-robot Description: ## 描述 两个样例此前仅以 --noexec 验证过编译(!5867),实际运行均失败,本 PR 修复运行期问题: ### 一、stateless_random_uniform_v3 eager 样例运行失败(Run failed: 561103) - 复现:bash build.sh --run_example stateless_random_uniform_v3 eager --example_name=stateless_random_uniform_v3 --soc=ascend950 - 失败链路:RandomTilingParseArch35 GetHardwareInfo Failed, vectorCoreNum:0 → tiling compile info parse failed → InitTilingParseCtx failed → Run failed: 561103 - 根因:样例使用裸 l0op 执行器直调(CREATE_EXECUTOR + l0op::StatelessRandomUniformV3 + executor->Run()),不经过 aclnn 两段式接口,L2 线程上下文(AIC/AIV 核数)未被初始化(正常由 aclnn 层 InitL2Phase1Context/L2_DFX_PHASE_1 填充);执行期 TilingParse 获取的平台信息 vector_core_cnt 被覆写为 0,tiling parse 校验失败。 - 修改:样例在调用 l0op 前补 InitL2Phase1Context("StatelessRandomUniformV3", nullptr); ### 二、stateless_random_choice_with_mask graph 样例输入构造缺陷 - 该算子仅提供图模式样例(无 op_api/aclnn 入口,eager 提示 does not have eager examples 属预期);graph 运行失败已由 !6835(OutputShapeDependOnCompute 注册)修复。 - 本次排查发现样例自身缺陷:BOOL 输入 x 用 GenOnesDataFloat32 生成(float 1.0f 小端前两字节为 0x00),x 实际全为 false,输出恒为全 padding、mask 全 false,样例演示无意义;且 y/mask 输出 desc 形状与 count=3 不一致。 - 修改:x 改用 ADD_INT_INPUT 生成(int32 缓冲小端首字节 0x01 → x=[true,false],与 concat 样例 BOOL 生成方式一致),y/mask 输出 desc 对齐 count=3({3,1}/{3})。 ## 关联的Issue #4399 ## 测试 (Ascend950PR_9579,CANN 9.3.0~weekly.20261028.01,本 PR head 559fa3c9) 1. bash build.sh --run_example stateless_random_uniform_v3 eager --example_name=stateless_random_uniform_v3 --soc=ascend950:StatelessRandomUniformV3 test passed! / execute samples success(修复前 Run failed: 561103) 2. 本仓 HEAD 构建 vendor 包(build_out/cann-ops-math-*.run 安装至 vendors)后 bash build.sh --run_example stateless_random_choice_with_mask graph --example_name=stateless_random_choice_with_mask --soc=ascend950:execute samples success,实际输出 y=[0,0,0]/mask=[1,0,0](x=[true,false]、count=3 → 1 个有效索引 + 2 个填充,语义正确;修复前输出恒为全 padding、mask 全 false) 3. pre-commit 全钩子(clang-format/codespell/OAT 合规等)通过 说明:本地默认内置算子包为 10-28 构建(早于 !6835),该环境下 graph 样例需安装与本仓代码匹配的包后运行;本 PR 仅修改两份样例代码,不涉及算子 op_host/op_kernel,无算子行为影响。 ## 文档更新 不涉及 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6997 | 11 days ago |