| 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 days ago |
| 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 days ago |
| [fix] 插件归位 Co-authored-by: nextyale<yaochen15@huawei.com> # message auto-generated for no-merge-commit merge: !4626 merge issue2302 into master [fix] 插件归位 Created-by: nextyale Commit-by: nextyale Merged-by: cann-robot Description: ## 描述 迁移算子插件到对应目录 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/2302 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述: 迁移插件 See merge request: cann/ops-math!4626 | 2 months ago |
| 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 days ago |
| fix(stateless_bernoulli): 适配 Ascend960DT/960PR 融合规则 Co-authored-by: liangtongxue<lianglihui@h-partners.com> # message auto-generated for no-merge-commit merge: !7109 merge fix/bernoulli-fusion-960-platforms into master fix(stateless_bernoulli): 适配 Ascend960DT/960PR 融合规则 Created-by: liangtongxue Commit-by: liangtongxue Merged-by: cann-robot Description: ## 描述 修复 StatelessBernoulli 融合规则未适配 Ascend960DT / Ascend960PR 的问题。CheckPlatform 白名单增加两个平台,保留 Ascend910_93 / Ascend950 和现有 GE 版本、dtype、shape 限制。 新增 960DT / 960PR 各 FP16、FP32 共 4 条 UT,检查 StatelessBernoulliV2 被移除,且恰好生成一个 StatelessBernoulli 节点。 ## 关联的Issue 关联的Issue:#4512 ## 测试 - git diff --check 通过。 - 使用仓库 compile_commands.json 编译融合 pass 和 UT,独立链接本机 CANN 9.3.0 GE/ES 库,BernoulliFusionPassTest 全部 13 条通过。 - 使用未修复 master 的 pass 与同一组新增 UT 对照,4 条新增用例全部失败,确认回归覆盖有效。 - 标准命令 bash build.sh -u --opgraph --ops=stateless_bernoulli --gtest_filter=BernoulliFusionPassTest* -j8 被现有环境依赖阻断:opbase 的 op_arch_helper.cpp 引用 DAV_5162,但本机 CANN 9.3.0 头文件未定义该枚举;未改动该依赖。 - 未执行 960DT / 960PR 硬件端到端测试。 ## 文档更新 无。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!7109 | 5 days ago |
| 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 | 12 days ago |
| 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 days ago |
| fix(stateless_bernoulli): 适配 Ascend960DT/960PR 融合规则 Co-authored-by: liangtongxue<lianglihui@h-partners.com> # message auto-generated for no-merge-commit merge: !7109 merge fix/bernoulli-fusion-960-platforms into master fix(stateless_bernoulli): 适配 Ascend960DT/960PR 融合规则 Created-by: liangtongxue Commit-by: liangtongxue Merged-by: cann-robot Description: ## 描述 修复 StatelessBernoulli 融合规则未适配 Ascend960DT / Ascend960PR 的问题。CheckPlatform 白名单增加两个平台,保留 Ascend910_93 / Ascend950 和现有 GE 版本、dtype、shape 限制。 新增 960DT / 960PR 各 FP16、FP32 共 4 条 UT,检查 StatelessBernoulliV2 被移除,且恰好生成一个 StatelessBernoulli 节点。 ## 关联的Issue 关联的Issue:#4512 ## 测试 - git diff --check 通过。 - 使用仓库 compile_commands.json 编译融合 pass 和 UT,独立链接本机 CANN 9.3.0 GE/ES 库,BernoulliFusionPassTest 全部 13 条通过。 - 使用未修复 master 的 pass 与同一组新增 UT 对照,4 条新增用例全部失败,确认回归覆盖有效。 - 标准命令 bash build.sh -u --opgraph --ops=stateless_bernoulli --gtest_filter=BernoulliFusionPassTest* -j8 被现有环境依赖阻断:opbase 的 op_arch_helper.cpp 引用 DAV_5162,但本机 CANN 9.3.0 头文件未定义该枚举;未改动该依赖。 - 未执行 960DT / 960PR 硬件端到端测试。 ## 文档更新 无。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!7109 | 5 days ago |
| [ascend960] bernoulli/choicewithmask/drop_out_do_mask_v3(_d)/stateless_randperm 算子新增 ascend960dt/ascend960pr 平台支持 Co-authored-by: liangtongxue<lianglihui@h-partners.com> # message auto-generated for no-merge-commit merge: !6151 merge stateless-bernoulli-ascend960 into master [ascend960] bernoulli/choicewithmask/drop_out_do_mask_v3(_d)/stateless_randperm 算子新增 ascend960dt/ascend960pr 平台支持 Created-by: liangtongxue Commit-by: liangtongxue Merged-by: cann-robot Description: ## 描述 stateless_bernoulli、stateless_random_choice_with_mask、drop_out_do_mask_v3、drop_out_do_mask_v3_d、stateless_randperm 五个 random 算子新增 ascend960dt / ascend960pr 平台支持,补齐 960 公共构建配置(对齐 !6074 清单)与 bernoulli 的 L2 aclnn 层适配。v3 系列适配点合入自 !6186(zyf0712)、randperm 合入自 !6144(guankarl),均经 review 并补齐遗漏项。**本次适配不涉及资料与 ST 用例,后续单独处理。** L2/L0 芯片路由统一使用底层 IsRegBase()(common/inc/op_api/aclnn_check.h 已含 DAV_3510/9201/9202)。 ### stateless_bernoulli(A6 适配点合入 + L2 层补齐) - 以 A5 主线 random_common 框架版为主体(A6 唯一 kernel 适配点 PHILOX_THREAD_LAUNCH=512 已含于主线重构版),tiling 沿用 arch35 - **L2 层**:统一使用底层 IsRegBase() 覆盖四处分支(dtype 列表×2 / 张量 prob Cast float / 标量 prob 转 float tensor),960 与 950 走同一 L0 路径且行为一致 ### stateless_random_choice_with_mask(基于 A5 现有实现适配,A6 暂无源码) - kernel 核数/线程/UB 全部经 tilingData 动态下发(无写死核数);Reg:: / asc_vf_call / PhiloxRandom<10> 均有 960 先例;tiling 平台参数全部动态获取;全链路无 SocVersion 区间判断 ### drop_out_do_mask_v3 / drop_out_do_mask_v3_d(合入 !6186,已 review) - tiling 新增 BeforeProcess 按 NpuArch 动态设置 coreAlignSize:960 用 32(DV121),其余维持 256。**已核验 BeforeProcess 早于 coreAlignSize 全部消费点,950/350/910b 行为与原静态设置等价** - kernel 零改动;binary.json 与 ascend950 一致;v3_d 依赖已闭环 ### stateless_randperm(合入 !6144 + 补齐其遗漏) - def / CMakeLists / config(ascend960dt+pr) / ascendc_config 登记(auto_sync=true 存量风格) - **L0/L2 路由补 960**(!6144 遗漏):CheckAiCoreIsSupport 原仅 DAV_3510 会误走 AICPU,统一改用 IsRegBase();L2 bf16 同补 - **kernel const 兼容**:GET_TILING_DATA_WITH_STRUCT 产生 const tilingData,构造/成员/reinterpret_cast 全链 const 化(对齐 split_v 先例,950 双向兼容) - 依赖说明:kernel 内嵌 sort 计算(非运行时依赖 sort 算子) ### 公共构建配置(与基线取并集) build.conf.sh / build_options.sh / build_env.sh 净增 960pr(960dt 基线已含);random_common 960 已由 !6074 合入基线;ascendc_config.json 登记五算子 960 ### 待定项(后续单独处理) - fusion pass(StatelessBernoulliV2 融合)CheckPlatform 白名单 - README/docs 资料与 ST 用例 ### 950 影响评估 全部为追加式/条件扩展式改动:kernel/tiling 950 既有路径零改动、L2/L0 条件扩展不改变 950 判断结果。**950 出包行为不变。** ## 关联的Issue #3623 ## 测试 - pre-commit 门禁全部通过 - bernoulli / drop_out_do_mask_v3 / v3_d 已完成 960 单算子验证;choicewithmask 已出包验证 - 950 出包行为不变 ## 文档更新 不涉及(资料后续单独处理) ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6151 | 24 days ago |
| 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 days ago |
| docs: add English translations for markdown files Co-authored-by: jenny_xiang<jenny.xiang@huawei.com> # message auto-generated for no-merge-commit merge: !7113 merge docs/add-english-translations into master docs: add English translations for markdown files Created-by: jenny_xiang Commit-by: jenny_xiang Merged-by: cann-robot Description: ## 描述 新增仓库Markdown文档英文译稿(第二批,共409个文件):第一批(已合入)之外的其余全部译稿,覆盖conversion、examples、ge、math、random各类算子README译稿,以及CHANGELOG_en.md、.gitcode PR模板英文版等。 本批内全部仓内链接均指向master已有文件(含第一批已合入的21+2篇译稿),合入后本仓432篇英文文档全部就位,链接完整生效。 本批同时包含4篇基于最新源文档的增量更新(math/ada_cast、math/prod_force_se_a、math/sinkhorn、math/xlogy,对应上游近期文档变更)。 ## 关联的Issue 无 ## 测试 文档类变更,无需算子测试;已通过链接有效性校验(本批全部相对链接仅指向master已有文件,无指向本PR外未提交文件的链接),并完成逐篇翻译规范自查与语义校对(含支持状态表、限定词、术语、数值符号核对)。 ## 文档更新 新增409个英文译稿文件(*_en.md / .en-US.md),不修改任何现有文件。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!7113 | 5 days ago |