| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
math仓英文合入 Co-authored-by: y60124828<yanglou1@h-partners.com> # message auto-generated for no-merge-commit merge: !6772 merge master into master math仓英文合入 Created-by: yanglu-1 Commit-by: y60124828 Merged-by: cann-robot Description: ## 描述 math仓master分支英文合入 ## 关联的Issue 关联issue:[4170](https://gitcode.com/cann/ops-math/issues/4170) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6772 | 12 天前 | |
docs: 修复注释与代码不一致(DropOutDoMask 头文件保护注释) Co-authored-by: tangpingchuan<tangpingchuan@huawei.com> # message auto-generated for no-merge-commit merge: !6498 merge docs/comment-cleanup-20261019-25 into master docs: 修复注释与代码不一致(DropOutDoMask 头文件保护注释) Created-by: pingchuantang Commit-by: tangpingchuan Merged-by: cann-robot Description: ## 描述 修正 #endif 尾注释为各自实际 guard 名: - random/drop_out_do_mask_v3/op_host/arch35/drop_out_do_mask_v3_tiling_arch35.h - random/drop_out_do_mask_v3_d/op_host/arch35/drop_out_do_mask_v3_d_tiling_arch35.h ## 关联的Issue - https://gitcode.com/cann/ops-math/issues/3807 ## 测试 - pre-commit(含 OAT):通过 - Markdown 链接/图片检查:无新增失效项 - Markdown 代码围栏检查:通过 - 全部 26 个分支合并验证:无冲突 ## 文档更新 - random/drop_out_do_mask_v3/op_host/arch35/drop_out_do_mask_v3_tiling_arch35.h - random/drop_out_do_mask_v3_d/op_host/arch35/drop_out_do_mask_v3_d_tiling_arch35.h ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6498 | 19 天前 | |
docs: 修复注释与代码不一致(DropOutDoMask 头文件保护注释) Co-authored-by: tangpingchuan<tangpingchuan@huawei.com> # message auto-generated for no-merge-commit merge: !6498 merge docs/comment-cleanup-20261019-25 into master docs: 修复注释与代码不一致(DropOutDoMask 头文件保护注释) Created-by: pingchuantang Commit-by: tangpingchuan Merged-by: cann-robot Description: ## 描述 修正 #endif 尾注释为各自实际 guard 名: - random/drop_out_do_mask_v3/op_host/arch35/drop_out_do_mask_v3_tiling_arch35.h - random/drop_out_do_mask_v3_d/op_host/arch35/drop_out_do_mask_v3_d_tiling_arch35.h ## 关联的Issue - https://gitcode.com/cann/ops-math/issues/3807 ## 测试 - pre-commit(含 OAT):通过 - Markdown 链接/图片检查:无新增失效项 - Markdown 代码围栏检查:通过 - 全部 26 个分支合并验证:无冲突 ## 文档更新 - random/drop_out_do_mask_v3/op_host/arch35/drop_out_do_mask_v3_tiling_arch35.h - random/drop_out_do_mask_v3_d/op_host/arch35/drop_out_do_mask_v3_d_tiling_arch35.h ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6498 | 19 天前 | |
math仓英文合入 Co-authored-by: y60124828<yanglou1@h-partners.com> # message auto-generated for no-merge-commit merge: !6772 merge master into master math仓英文合入 Created-by: yanglu-1 Commit-by: y60124828 Merged-by: cann-robot Description: ## 描述 math仓master分支英文合入 ## 关联的Issue 关联issue:[4170](https://gitcode.com/cann/ops-math/issues/4170) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6772 | 12 天前 | |
math仓英文合入 Co-authored-by: y60124828<yanglou1@h-partners.com> # message auto-generated for no-merge-commit merge: !6772 merge master into master math仓英文合入 Created-by: yanglu-1 Commit-by: y60124828 Merged-by: cann-robot Description: ## 描述 math仓master分支英文合入 ## 关联的Issue 关联issue:[4170](https://gitcode.com/cann/ops-math/issues/4170) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6772 | 12 天前 | |
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 | 10 天前 | |
math仓英文合入 Co-authored-by: y60124828<yanglou1@h-partners.com> # message auto-generated for no-merge-commit merge: !6772 merge master into master math仓英文合入 Created-by: yanglu-1 Commit-by: y60124828 Merged-by: cann-robot Description: ## 描述 math仓master分支英文合入 ## 关联的Issue 关联issue:[4170](https://gitcode.com/cann/ops-math/issues/4170) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6772 | 12 天前 | |
fix:aclnnRandom && aclnnUniform bug修复 Co-authored-by: zhuzemao<zhuzemao1@h-partners.com> # message auto-generated for no-merge-commit merge: !6950 merge ree_random_uniform into master fix:aclnnRandom && aclnnUniform bug修复 Created-by: zhuzemao Commit-by: zhuzemao Merged-by: cann-robot Description: ## 描述 aclnnRandom && aclnnUniform bug修复 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/4379 ## 测试 不涉及 ## 文档更新 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6950 | 9 天前 | |
fix(stateless_bernoulli): 标量场景对齐竞品 bernoulli kernel 的随机数映射与比较语义 Co-authored-by: liangtongxue<lianglihui@h-partners.com> # message auto-generated for no-merge-commit merge: !5714 merge fix/bernoulli-scalar-philox-align into master fix(stateless_bernoulli): 标量场景对齐竞品 bernoulli kernel 的随机数映射与比较语义 Created-by: liangtongxue Commit-by: liangtongxue Merged-by: cann-robot Description: ## 描述 arch35 标量 prob 场景(prob 为单元素 tensor)与竞品(PyTorch 标量 bernoulli CUDA kernel)存在两处不一致: 1. 元素→随机数映射为连续映射(线程 t 处理 4 个连续元素),竞品标量 kernel 为交织映射(步长=总线程数 T,元素 li 由虚拟线程 li%T 的第 li/(T*4) 次 philox 调用生成,取第 (li/T)%4 个分量); 2. 比较使用 results <= p(竞品张量版语义),竞品标量版为严格小于 rand < p(transformation::bernoulli)。 修复:标量场景改用 PhiloxSimtKernelDiscontinuous 交织映射模板(与 sim_thread_exponential 接入方式一致),新增 BernoulliScalarTransform 完成 u 换算(与 curand_uniform 同式:(0,1])与 u < p 严格比较;张量场景保持原实现不变(连续映射 + <=,恰与竞品张量版语义一致)。 注意:同一 (seed, offset) 下标量场景输出与旧版本不同,属对齐性行为变更;offset 换算逻辑(PhiloxAlgParsInit)与消耗总量公式不变。 ## 关联的Issue 无 ## 测试 - pre-commit 门禁(clang-format / OAT 合规)全部通过 - UT 单测运行级用例(prob=0.5,tests/ut/op_kernel/test_stateless_bernoulli.cpp) - 上板 ST:与 GPU golden 对比(fp16/bf16/fp32 × p∈{0, 1, 0.25, 0.5}、numel%4≠0 尾部、numel>2^31 分支)——待上卡验证 ## 文档更新 无需更新(接口契约不变,文档无映射/输出流相关描述) ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: --- 关联 issue: fixes #4188 (完整问题背景/修改方案/验证记录见 issue #4188) See merge request: cann/ops-math!5714 | 12 天前 | |
Ascend960 支持RandomStandardNormalV1融合规则 Co-authored-by: m0_46386992<wanghongbin19@huawei.com> # message auto-generated for no-merge-commit merge: !6608 merge random_standard_normalV2_pass into master Ascend960 支持RandomStandardNormalV1融合规则 Created-by: m0_46386992 Commit-by: m0_46386992 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> Ascend960 支持RandomStandardNormalV1 fussion Pass迁移RandomStandardNormalV2 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/3829 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> - GEIR本地测试通过 - 冒烟测试通过 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> - 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6608 | 12 天前 | |
RandomUniformIntV2算子fusionpass文件适配ascend960 Co-authored-by: zhaozi3<zhaozi3@h-partners.com> # message auto-generated for no-merge-commit merge: !6639 merge master into master RandomUniformIntV2算子fusionpass文件适配ascend960 Created-by: zhaozi3 Commit-by: zhaozi3 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> RandomUniformIntV2 的融合 pass(RandomUniformIntFusionPass)此前平台门控仅支持 Ascend950。 随着 ascend960dt (DAV_9201) / ascend960pr (DAV_9202) 芯片支持 RandomUniformIntV2 算子, 融合 pass 需同步扩展平台适配,使这两个新平台也能触发 RandomUniformInt → RandomUniformIntV2 的融合。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [x] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## 关联的Issue 关联Issue:#3858 See merge request: cann/ops-math!6639 | 14 天前 | |
drop_out_v3、random_standard_normal_v2、random_uniform_v2、truncated_normal_v2算子fusion pass适配350平台 Co-authored-by: huairuchen<chenhuairu@huawei.com> # message auto-generated for no-merge-commit merge: !6327 merge bugfix/random-fusion-pass-npuarch-gate into master drop_out_v3、random_standard_normal_v2、random_uniform_v2、truncated_normal_v2算子fusion pass适配350平台 Created-by: huairuchen Commit-by: huairuchen Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 四个fusion pass的平台门控原先基于 short_soc_version 字符串判断(仅 "Ascend950"),导致 NpuArch 同为 DAV_3510 的 Ascend350 上融合被跳过。 - pass 侧改用 rtGetSocSpec("version", "NpuArch") 获取芯片架构(与 argmin_onnx_plugin.cpp 中 IsRegBasePlatform 同范式),白名单 {DAV_3510};StatelessBernoulli 为 {DAV_3510, DAV_2201},与原 soc 白名单(950+910_93)行为等价 - UT 侧增加 rtGetSocSpec 弱符号 stub(ASCEND_NPU_ARCH 环境变量),原有平台 mock 保留、仅追加 SetNpuArch ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。 --> https://gitcode.com/cann/ops-math/issues/3684 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 冒烟,A5 350平台的泛化测试,证明不会影响到其他机器上的运作,以及能成功在350平台上被正确调用。 涉及到修改UT,也确保了A5平台上UT前后无变化。 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 无 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6327 | 21 天前 | |
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 | 10 天前 | |
fix(stateless_bernoulli): 补齐 ascend960dt/960pr binary 清单缺失的 probMode 属性 Co-authored-by: liangtongxue<lianglihui@h-partners.com> # message auto-generated for no-merge-commit merge: !6813 merge fix/bernoulli-960dt-960pr-probmode into master fix(stateless_bernoulli): 补齐 ascend960dt/960pr binary 清单缺失的 probMode 属性 Created-by: liangtongxue Commit-by: liangtongxue Merged-by: cann-robot Description: ## 描述 StatelessBernoulli 算子已全链路支持 probMode 属性(def 定义、op_api 透传、tiling 按下标消费),ascend950/ascend350 的 stateless_bernoulli_binary.json 已包含该属性,但 **ascend960dt/ascend960pr** 的清单中 96 条二进制条目的 attrs 仅有 dtype,缺失 probMode。 缺失影响: 1. 运行时 op_api 以 OP_ATTR_NAMES({"dtype", "probMode"}) 传入属性,FE 匹配预编译二进制时属性集合不一致,导致二进制匹配失败(kernel not found)或回退在线编译; 2. 即使匹配通过,tiling 按下标 ATTR_IDX_PROB_MODE = 1 读取属性(stateless_bernoulli_tiling_arch35.cpp),attrs 集合不同会错位读空,标量/张量概率语义丢失。 修复方法:参照 ascend950 清单,为两个平台全部 96 条 op 的 attrs 补上 {"name": "probMode", "dtype": "int", "value": null},补齐后与 ascend950 逐条一致(bin_filename/inputs/outputs/attrs 完全对齐)。 ## 关联的Issue 无 ## 测试 - [x] JSON 语法校验通过(pre-commit check json Passed) - [x] 补齐后 ascend960dt/ascend960pr 96 条与 ascend950 清单逐条 diff 一致 - [x] OAT 合规扫描通过 ## 文档更新 无需更新 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## 关联的Issue #4222 See merge request: cann/ops-math!6813 | 11 天前 | |
drop_out_do_mask、stateless_drop_out_gen_mask新增Ascend960平台支持 Co-authored-by: rsj007<renshuojian@huawei.com> # message auto-generated for no-merge-commit merge: !6074 merge master into master drop_out_do_mask、stateless_drop_out_gen_mask新增Ascend960平台支持 Created-by: rsj007 Commit-by: rsj007 Merged-by: cann-robot Description: ## 描述 drop_out_do_mask、stateless_drop_out_gen_mask新增Ascend960平台支持 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/3624 ## 测试 obp、david冒烟 ## 文档更新 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6074 | 24 天前 | |
[feat] ChunkCat, StatelessSampleMultinonmial适配ascend960dt Co-authored-by: wsunmoon<wangming176@huawei.com> # message auto-generated for no-merge-commit merge: !6430 merge chunkcatMultinomial into master [feat] ChunkCat, StatelessSampleMultinonmial适配ascend960dt Created-by: wsunmoon Commit-by: wsunmoon Merged-by: cann-robot Description: ## 描述 ChunkCat, StatelessSampleMultinonmial算子适配960DT: 新增960DT二进制配置json文件 CMakeLists.txt文件配置960DT 算子信息库新增960DT aclnn接口新增支持960DT ChunkCat算子在960DT上做先分多核再分UB的性能优化 ## 关联的Issue 关联Issue [#3763](https://gitcode.com/cann/ops-math/issues/3763) ## 测试 UT, ST, 冒烟通过 ## 文档更新 不涉及 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [ ] AI辅助编写 See merge request: cann/ops-math!6430 | 19 天前 | |
docs: StatelessNormal README明确mean/stdev张量仅第0项参与计算,与算子实际实现对齐 Co-authored-by: aiteer<lujiale4@huawei.com> # message auto-generated for no-merge-commit merge: !6916 merge stateless_normal_doc_issue4232 into master docs: StatelessNormal README明确mean/stdev张量仅第0项参与计算,与算子实际实现对齐 Created-by: aiteer Commit-by: aiteer Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> README 中 mean/stdev 的参数描述及“同形”约束确实与当前实现契约存在偏差:按 stateless_normal_proto.h 中的原型注释及 NormalLauncher 实现,Tensor 入参实际仅使用第 0 项,所有输出元素共用同一组均值和标准差。本pr明确mean/stdev张量仅第0项参与计算,与算子实际实现对齐。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [#4232](https://gitcode.com/cann/ops-math/issues/4232) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 更新了StatelessNormal README.md文件 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6916 | 9 天前 | |
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 | 10 天前 | |
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 | 8 天前 | |
math仓英文合入 Co-authored-by: y60124828<yanglou1@h-partners.com> # message auto-generated for no-merge-commit merge: !6772 merge master into master math仓英文合入 Created-by: yanglu-1 Commit-by: y60124828 Merged-by: cann-robot Description: ## 描述 math仓master分支英文合入 ## 关联的Issue 关联issue:[4170](https://gitcode.com/cann/ops-math/issues/4170) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6772 | 12 天前 | |
docs: 修复 stateless_random_normal README 中 aclnnNormalTensorFloat 接口链接文字 Co-authored-by: tangpingchuan<tangpingchuan@huawei.com> # message auto-generated for no-merge-commit merge: !6489 merge docs/comment-cleanup-20261019-16 into master docs: 修复 stateless_random_normal README 中 aclnnNormalTensorFloat 接口链接文字 Created-by: pingchuantang Commit-by: tangpingchuan Merged-by: cann-robot Description: ## 描述 修复 random/stateless_random_normal_v2/README.md 与 random/stateless_random_normal_v3/README.md 中 aclnnNormalTensorFloat 接口所在行的链接文字错误。该行链接目标为 docs/aclnnNormalTensorFloat.md,但链接文字误写为 aclnnNormalFloatTensor,本次将链接文字修正为 aclnnNormalTensorFloat,使其与接口文档名称保持一致。 ## 关联的Issue - #3703 ## 测试 - pre-commit(含 OAT):通过 - Markdown 链接/图片检查:无新增失效项 - Markdown 代码围栏检查:通过 - 全部 26 个分支合并验证:无冲突 ## 文档更新 - random/stateless_random_normal_v2/README.md - random/stateless_random_normal_v3/README.md ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6489 | 20 天前 | |
refactor(random): random 系列算子去除16M workspace 冗余 Co-authored-by: aiteer<lujiale4@huawei.com> # message auto-generated for no-merge-commit merge: !6462 merge random_ws_zero into master refactor(random): random 系列算子去除16M workspace 冗余 Created-by: aiteer Commit-by: aiteer Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 针对 random 系列算子去除 16M workspace 冗余:将各算子 arch35 侧 tiling 中用于 AscendC 工具库的 workspace 常量由 16777216(16M)改为 0,并同步删除 stateless_random_normal_v2、stateless_random_uniform_v2 两个 kernel 入口中对 workspace 的非空校验与 SetSysWorkspace/GetUserWorkspace 调用,使算子不再额外申请和传递该冗余 workspace;相应 UT 的期望 workspace 值也由 16777216 调整为 0。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [#3844](https://gitcode.com/cann/ops-math/issues/3844) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 各算子kernel各路径进行ttk测试,功能精度全部pass ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 无 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [x] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6462 | 12 天前 | |
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 | 8 天前 | |
[CANNBot]修复StatelessRandperm算子infershape对-1/-2的适配 Co-authored-by: guankarl<guanhongwei3@huawei.com> # message auto-generated for no-merge-commit merge: !6836 merge fix_stateless_randperm into master [CANNBot]修复StatelessRandperm算子infershape对-1/-2的适配 Created-by: guankarl Commit-by: guankarl Merged-by: cann-robot Description: ## 描述 修复StatelessRandperm算子infershape对-1/-2的适配:n输入desc含-2(unknown rank)/-1(unknown shape)时输出置{-1}由运行时解析;增加const data缺失保护、n负值校验及关键路径日志。 ## 关联的issue ## 测试 - 新增3个UT用例覆盖desc为{-1}/{-2}/{-1,-1}陷阱场景,期望输出均为{-1} - 反向验证:移除修复代码后3个新用例均FAILED,恢复修复后4/4 PASSED - 基于master基线编译通过(bash build.sh -u --ops=stateless_randperm --noexec),op_host UT 4/4 PASSED ## 文档更新 无 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述 ## AI/Agent 生成声明 代码来源: - [ ] 纯人工手写 - [ ] AI 辅助编写 - [x] AI 完全生成 人工审查:已完成 测试验证:已通过 合规检查:已完成 See merge request: cann/ops-math!6836 | 9 天前 | |
math仓英文合入 Co-authored-by: y60124828<yanglou1@h-partners.com> # message auto-generated for no-merge-commit merge: !6772 merge master into master math仓英文合入 Created-by: yanglu-1 Commit-by: y60124828 Merged-by: cann-robot Description: ## 描述 math仓master分支英文合入 ## 关联的Issue 关联issue:[4170](https://gitcode.com/cann/ops-math/issues/4170) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6772 | 12 天前 | |
StatelessTruncatedNormalV2算子新增ascend960dt/960pr平台支持 Co-authored-by: zhangdongdong34<zhangdongdong34@huawei.com> # message auto-generated for no-merge-commit merge: !6651 merge truncated121 into master StatelessTruncatedNormalV2算子新增ascend960dt/960pr平台支持 Created-by: zhangdongdong34 Commit-by: zhangdongdong34 Merged-by: cann-robot Description: ## 描述 StatelessTruncatedNormalV2 算子适配 ascend960dt/ascend960pr(DV121): - stateless_truncated_normal_v2_def.cpp:新增 AddConfig("ascend960dt") / AddConfig("ascend960pr"),复用 ascend950 同款 aicoreConfig - CMakeLists.txt:SUPPORT_COMPUTE_UNIT 新增 ascend960dt/ascend960pr,SUPPORT_TILING_DIR 对应新增 arch35(tiling 复用 arch35) - ascendc_config.json:StatelessTruncatedNormalV2 条目 compute_units 补登 ascend960dt/ascend960pr,并补对应 dcci 编译选项(与 950/350 既有风格一致) - op_host/config/ascend960dt|ascend960pr/stateless_truncated_normal_v2_simplified_key.ini:参考 !6169 模式从 ascend950 拷贝,仅 ini(无 binary.json,走 def config 自动生成路径,与 950 目录现状一致) 修改模式参考 !6169 中 truncated_normal_v2 的 960 适配。 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/3676 ## 测试 - pre-commit 全部通过(clang-format/check-json/codespell/OAT 合规) - 950/350 既有行为零改动(纯追加式注册) ## 文档更新 无 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6651 | 13 天前 | |
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 | 10 天前 | |
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 | 10 天前 | |
update operators Co-authored-by: biabu111<hebaojing1@huawei.com> # message auto-generated for no-merge-commit merge: !916 merge master into master update operators Created-by: biabu111 Commit-by: biabu111 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 增强以下算子功能 tensor_equal tensor_move tril triu stalessrandomuniform stalessrandomnormal assign dsarandomuniform dsarandomnormal ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> #530 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!916 | 9 个月前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 12 天前 | ||
| 19 天前 | ||
| 19 天前 | ||
| 12 天前 | ||
| 12 天前 | ||
| 10 天前 | ||
| 12 天前 | ||
| 9 天前 | ||
| 12 天前 | ||
| 12 天前 | ||
| 14 天前 | ||
| 21 天前 | ||
| 10 天前 | ||
| 11 天前 | ||
| 24 天前 | ||
| 19 天前 | ||
| 9 天前 | ||
| 10 天前 | ||
| 8 天前 | ||
| 12 天前 | ||
| 20 天前 | ||
| 12 天前 | ||
| 8 天前 | ||
| 9 天前 | ||
| 12 天前 | ||
| 13 天前 | ||
| 10 天前 | ||
| 10 天前 | ||
| 9 个月前 |