| Files | Last commit | Last update |
|---|---|---|
[修复] 整改random 部分算子非法错误码上报 Co-authored-by: zhuzemao<zhuzemao1@h-partners.com> # message auto-generated for no-merge-commit merge: !6689 merge modify_error into master [修复] 整改random 部分算子非法错误码上报 Created-by: zhuzemao Commit-by: zhuzemao Merged-by: cann-robot Description: ## 描述 整改random 部分算子非法错误码上报 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/4008 ## 测试 不涉及 ## 文档更新 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6689 | 15 days ago | |
fix: StatelessRandomChoiceWithMask补注册OutputShapeDependOnCompute并补充UT;补齐4个random算子tiling UT的expectTilingData;修复Bernoulli两个ST executor的__call__重复定义 Co-authored-by: liangtongxue<lianglihui@h-partners.com> # message auto-generated for no-merge-commit merge: !6835 merge fix/stateless-random-choice-with-mask-output-shape-depend into master fix: StatelessRandomChoiceWithMask补注册OutputShapeDependOnCompute并补充UT;补齐4个random算子tiling UT的expectTilingData;修复Bernoulli两个ST executor的__call__重复定义 Created-by: liangtongxue Commit-by: liangtongxue Merged-by: cann-robot Description: ## 描述 本 PR 包含两部分修复(commit 已合一): ### 一、StatelessRandomChoiceWithMask 补注册 OutputShapeDependOnCompute StatelessRandomChoiceWithMask 的输出 y/mask 为数据依赖 shape(三类算子),kernel 侧已实现 shapeOut 缓冲区回写真实输出 shape,但 op impl 注册链缺少 OutputShapeDependOnCompute 标记: - GE 编译期不会给节点打 DEPEND_SHAPE_RANGE 三类算子标记(shape_inference.cc 中仅当 functions->IsOutputShapeDependOnCompute() 为真时设置) - rt v2 执行期走普通 InferStorageShape 路径,输出 shape 保持 [-1, rank] - CalcAlignedSizeByShape 按 -1 × rank 计算 tensor size 得负数失败,整图执行报错 RunGraph failed, error code:1343242272,报错数值随输入 rank 变化(shape_size[-1]/[-2]/[-3]/[-4]) GEIR 用例 StatelessRandomChoiceWithMask_bool_int32_int64_ND_* 的 s/d 两模式全量在同一报错点失败,对比可正常执行的同类算子 NonZero/UniqueConsecutive/BroadcastGradientArgs,其 IMPL_OP_INFERSHAPE 注册链均含 OutputShapeDependOnCompute,本算子缺失。 **修复**:注册链补 .OutputShapeDependOnCompute({OUT_IDX_Y, OUT_IDX_MASK})。补齐后走三类算子路径:编译期打 DEPEND_SHAPE_RANGE 标记 → lowering 走 InferMaxShape(调用算子已注册的 InferShapeRange 按 max shape 分配输出内存并分配 shape buffer)→ kernel 回写真实 shape → SetOutputShape 同步实际输出 shape。kernel 侧无需改动。另新增 3 个 UT 用例覆盖 InferShapeRange 正常/上界路径与注册完整性断言。 ### 二、补齐公共 tiling 结构 prob 字段扩展后 4 个算子 tiling UT 的 expectTilingData !5714 为 bernoulli 标量场景在公共结构 RandomUnifiedSimtTilingDataStruct 末尾新增 probDims(int32+padding)/probSizes[8]/probStrides[8](共 17 个 int64 槽位),tilingData 序列化从 51 词扩展至 68 词,但下列 4 个算子 tiling UT 的 expectTilingData 仍是旧 51 词,经 tiling_case_executor.cpp 全量逐词比较时尾部多出 17 个 0 而失败(共 15 例): - sim_thread_exponential: fp32/fp16/bf16 3 例 - stateless_random: test_0/test_1 2 例 - stateless_uniform: test_0~test_8 9 例 - truncated_normal_v2: 910D_float_001 1 例 **修复**:各 UT 新增 PROB_ADDR_TAIL 宏追加至 expectTilingData 尾部([51] probDims(int32+padding) [52..59] probSizes[8] [60..67] probStrides[8],仅 stateless_bernoulli 填充、上述算子不消费恒为 0),并对涉改文件做 clang-format 归一。 ### 三、修复 aclnnBernoulli/aclnnBernoulliTensor 两个 ST executor 的 __call__ 重复定义 executor_aclnnBernoulli.py 与 executor_aclnnBernoulliTensor.py 的 Method 类中 __call__ 定义了两遍:第一份(含 super().__init__(task_result) 与 OpsDataset.seed_everything())被第二份覆盖成为死代码,种子固定逻辑永不执行,两个 ST 用例的随机输入不受种子控制。 **修复**:第一份改回 __init__(与 aclnnDropoutGenMaskV2/aclnnInplaceUniform 等规范 executor 一致),使 seed_everything 在构造期生效;同步清理 ruff 存量问题(未使用的 torch_npu/numpy 导入、引号与空白归一,规范 executor 均不显式导入 torch_npu,NPU 后端由 atk 框架统一管理)。AST 校验两 Method 类方法序列均为 ['__init__','__call__']。 ## 关联的Issue fixes #4275(UT 失败统一单 issue 跟踪,原按算子拆分的 #4263~#4266 已关闭并入) fixes #3835(Bernoulli 两个 ST executor 的 __call__ 重复定义,种子固定逻辑死代码) GEIR 全量 200 个 all_coverage 用例在 rt v2 路径执行失败(shape_utils.cc CalcAlignedSizeByShape: shape_size[-N])。 ## 测试 - StatelessRandomChoiceWithMask infershape UT 通过 - ophost UT(ascend950)4 算子共 33 用例全部通过(此前失败的 15 例逐条确认恢复) - pre-commit 全钩子通过(clang-format/codespell/OAT 合规等) - 待 GEIR 环境重跑 all_coverage s/d 两模式回归验证 ## 文档更新 不涉及 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6835 | 11 days ago | |
feat(sim_thread_exponential)算子支持 Co-authored-by: liangtongxue<lianglihui@h-partners.com> # message auto-generated for no-merge-commit merge: !2751 merge liangtongxue/sim-thread-exponential-no-split into master feat(sim_thread_exponential)算子支持 Created-by: liangtongxue Commit-by: liangtongxue Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> feat(sim_thread_exponential)算子支持 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!2751 | 5 months ago |
| Files | Last commit | Last update |
|---|---|---|
| 15 days ago | ||
| 11 days ago | ||
| 5 months ago |