| fix(bias): remove hardcoded SoC from GEIR example Co-authored-by: raoliang_sac<raoliang4@huawei.com> # message auto-generated for no-merge-commit merge: !6999 merge fix/bias-geir-auto-soc into master fix(bias): remove hardcoded SoC from GEIR example Created-by: raoliang_sac Commit-by: raoliang_sac Merged-by: cann-robot Description: ## 描述 Bias 图模式示例将 ge.socVersion 固定为 Ascend950DT_9592,在实际型号为 Ascend950PR_9579 的设备上会因型号不匹配导致 GE 初始化失败。 移除这项硬编码配置,由 GE/Runtime 获取运行环境的实际 SoC,保持与仓库其他在线图模式示例一致。 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/4400 ## 测试 - Ascend950PR_9579,CANN 包时间戳 20260923_000324205(version.info:9.2.0),Python 3.12.9。 - 执行 bash build.sh --run_example bias graph --example_name=bias --soc=ascend950 -j8,退出码 0。 - 日志确认运行时识别 Ascend950PR_9579,图执行成功,示例输出校验通过:Bias GEIR example run success, outputs=1。 - git diff --check 通过。本次验证为示例构建与上板执行,未运行全量本地 CI。 ## 文档更新 无需更新。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6999 | 11 days ago |
| ## 描述 新增 Bias 算子(Ascend950/arch35)的三段式 SIMD 实现。Bias 算子按照 axis、num_axes 和 bias_from_blob 属性推导 bias 的逻辑广播形状,计算 y = x + broadcast(bias)。对标 canndev 内置同名 Bias 算子,本次在 ops-math 目标仓新增 A5 路径,不修改 A2 既有实现。 主要改动: - 新增 math/bias/ 算子目录,包含 arch35 RegBase kernel(手写 CopyIn/Compute/CopyOut 三段式)、Broadcast tiling、OpDef/InferShape/InferDataType、binary config、GEIR example、TTK manifest、golden、UT - fp16/bf16 走 Cast→FP32 Add→Cast 回输出 dtype 路径,fp32 走直接 Add 路径 - 支持 dtype:float16/float32/bfloat16(同 dtype),format:ND,rank 1~8 - 支持 attrs:axis(含负值归一化)、num_axes(-1/0/正整数)、bias_from_blob(true/false) - docs/zh/op_list.md 新增 Bias 条目 ## 关联的Issue 无 ## 测试 - 编译打包通过 - CI pre-commit 全部通过(clang-format/ruff-check/ruff-format/codespell/OAT/trailing-whitespace 等) - 泛化测试:828/828 PASS(3 dtype × 9 attr 组合 × 1D-8D shape × 空 tensor × 尾块/边界,--binary=release) - GEIR 通路:50/50 PASS(3 dtype × 1D-3D+5D,含三方精度 cross_check + 三方性能 xpu_device_us 实测) - 三方精度:15/15 PASS(NPU vs CPU golden vs A100 GPU,三个比较方向均 PASS) - 性能对标:75/75 PASS(NPU 全面优于 A100 2.1x~12x,folded G/N ≥ 0.5) - 特殊值:3/3 PASS(fp16/bf16/fp32 的 -inf/+inf/nan/-0.0 传播) - UT:12/12 PASS(tiling 9 + infershape 3) ## 文档更新 - 新增 math/bias/README.md(产品支持情况、功能说明、参数说明、约束说明、调用说明、参考资源) - 更新 docs/zh/op_list.md(新增 Bias 条目) ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: Co-authored-by: SeanDictionary<b24081019@njupt.edu.cn> # message auto-generated for no-merge-commit merge: !4836 merge feat/bias into master feat: Bias 算子下一代实现(无 aclnn 接口) Created-by: SeanDictionary Commit-by: SeanDictionary Merged-by: cann-robot Description: ## 描述 新增 Bias 算子(Ascend950/arch35)的三段式 SIMD 实现。Bias 算子按照 axis、num_axes 和 bias_from_blob 属性推导 bias 的逻辑广播形状,计算 y = x + broadcast(bias)。对标 canndev 内置同名 Bias 算子,本次在 ops-math 目标仓新增 A5 路径,不修改 A2 既有实现。 主要改动: - 新增 math/bias/ 算子目录,包含 arch35 RegBase kernel(手写 CopyIn/Compute/CopyOut 三段式)、Broadcast tiling、OpDef/InferShape/InferDataType、binary config、GEIR example、TTK manifest、golden、UT - fp16/bf16 走 Cast→FP32 Add→Cast 回输出 dtype 路径,fp32 走直接 Add 路径 - 支持 dtype:float16/float32/bfloat16(同 dtype),format:ND,NC1HWC0 - 支持 attrs:axis(含负值归一化)、num_axes(-1/0/正整数)、bias_from_blob(true/false) - docs/zh/op_list.md 新增 Bias 条目 ## 关联的Issue [[Requirement|需求建议]: 新增支持Bias算子](https://gitcode.com/cann/ops-math/issues/2729) ## 测试 - 编译打包通过 - CI pre-commit 全部通过(clang-format/ruff-check/ruff-format/codespell/OAT/trailing-whitespace 等) - release 泛化:828/828 PASS。 - UT:12/12 PASS(tiling 9 + infershape 3)。 - 三方精度:16/16 PASS。 - DFX:15/15 PASS(空 tensor/inf-nan/nonalign/large/negaxis/blobfalse/numneg1)。 - 性能:21/21 PASS(mean G/N=2.249,20/21 NPU 快于 GPU)。 - GEIR:50/50 PASS(含三方精度+三方性能,xpu_device_us 实测)。 ## 文档更新 - 新增 math/bias/README.md(产品支持情况、功能说明、参数说明、约束说明、调用说明、参考资源) - 更新 docs/zh/op_list.md(新增 Bias 条目) ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4836 | 2 months ago |
| Math仓算子适配Ascend350平台 Co-authored-by: huairuchen<chenhuairu@huawei.com> # message auto-generated for no-merge-commit merge: !6372 merge dvlite-math-350-adapt into master Math仓算子适配Ascend350平台 Created-by: huairuchen Commit-by: huairuchen Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> Math仓部分随机数算子在350平台进行适配 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/4202 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 算子泛化测试,冒烟测试 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6372 | 15 days ago |
| fix(bias): 修正 kernel 侧 WithLoop/WithoutLoop 分派条件,解决高维交错广播 MTE 越界 Co-authored-by: SeanDictionary<b24081019@njupt.edu.cn> # message auto-generated for no-merge-commit merge: !7087 merge feat/bias into master fix(bias): 修正 kernel 侧 WithLoop/WithoutLoop 分派条件,解决高维交错广播 MTE 越界 Created-by: SeanDictionary Commit-by: SeanDictionary Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> **根因**:bias_kernel.h 中 CopyInX / CopyInBias 的 WithLoop/WithoutLoop 分派条件误用 shapeLen ≤ NDDMA_MAX_DIMS(只看合轴后总维数),而 lerp / pow / tanh_grad 等同仓算子均使用 shapeLen - ubSplitAxis ≤ NDDMA_MAX_DIMS(看切分轴到末尾的维数)。 当 shapeLen=6 且 ubSplitAxis=2 时(高维交错广播场景,如 8 维输入 + bias 广播维交错): - 原条件:6 > 5 → 强制进入 BroadcastNddmaWithLoop,但切分轴实际位于 NDDMA 最后 5 维以内(6-2=4≤5),该函数在此场景下索引模型错乱(空积循环计数、负索引写、DMA 参数未截断切分轴),单次搬运量超出队列容量约 160 倍,触发 MTE 写 UB 越界(errcode 82),多核任务级崩溃 - 正确条件:6 - 2 = 4 ≤ 5 → 走 BroadcastNddmaWithoutLoop,正确将切分轴截断为 ubSplitSize,安全搬运 **修复**:分派条件从 shapeLen ≤ NDDMA_MAX_DIMS 改为 shapeLen - ubSplitAxis ≤ NDDMA_MAX_DIMS,与 lerp/pow/tanh_grad 等算子保持一致,仅修改 2 行。继续使用 base 公共函数(atvoss/util/broadcast_utils.h),不做本地化封装。 **同仓对照**:lerp / pow / tanh_grad 使用同一 base 广播函数但因分派条件正确而不受此问题影响,实测用同样的 8 维交错广播输入验证均安全(UNSUPPORTED 或正常执行,无设备错误)。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> #4450 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 平台:Ascend950 (950DT_9592),CANN 9.2.0,TTK 三方精度比对(NPU + CPU golden + GPU A100): - 复现用例 Bias_L1_accuracy_perf_d_b_476 及同构探针(修复前 MTE 越界崩溃):修复后 **PASS**(572µs/581µs) - 官方泛化用例 L0(GEIR 三方):**77/77** PASS - 官方 L2 异常注入:14 例全部执行无崩溃(4 正确通过 + 10 正确拒绝) - 精度专项(inf/nan/大 shape/非对齐):**16/16**;DFX(空 tensor/非连续/动态 shape):**15/15**;性能:**21/21**;GEIR:**50/50** - 自有 ST 三方 cross_check:**828/828** PASS - L1 全量(GEIR 三方 689 例):后台运行中(此前抽样 30/30 已通过) ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。--> 无 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!7087 | 9 days ago |
| fix(bias): tiling 补 num_axes=0 元素数校验;golden 按 TTK 三方比对规范加固 Co-authored-by: SeanDictionary<b24081019@njupt.edu.cn> # message auto-generated for no-merge-commit merge: !6336 merge feat/bias into master fix(bias): tiling 补 num_axes=0 元素数校验;golden 按 TTK 三方比对规范加固 Created-by: SeanDictionary Commit-by: SeanDictionary Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 本 PR 包含两处修复: **1. tiling 元素数漏检(bias_tiling_arch35.cpp)** num_axes=0 时原校验只检查 bias 的秩(rank==1),未校验元素数。bias=[N](N>1) 的非法输入会漏过 tiling 检查,kernel 将 N 元素的 bias 按 1 元素标量广播,golden 侧 reshape 报错。修复为:biasDimNum != 1 || biasShape.GetDim(0) != 1,按元素数报 OP_LOGE_FOR_INVALID_SHAPEDIM。 **2. golden 按 TTK 三方比对规范加固(tests/assets/golden.py,对齐 zl_hw/myOpen#2)** - 出口零 cast:按 Promote 后的 output_dtypes 取 dtype,补 float64 映射(原实现将 fp32 用例的 fp64 真值砍回 fp32,撤销 Promote 导致三比值分母被夹、RMSE 假红) - 三方腿(third_party/torch)按 NPU 加宽行为同步 cast:fp16/bf16 升 fp32 计算后窄回原 dtype,fp32 直算(对齐 kernel BiasKernel<half/bfloat16_t, true> 行为) - 入口零 cast + bf16 位级桥接(uint16 位串 / ml_dtypes.bfloat16 两方模式) 另新增 UT 反例 tiling_invalid_num_axes_zero_bias_elems(num_axes=0 + bias=[4] 期望 GRAPH_FAILED)。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> #3579 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 平台:Ascend950 (950DT_9592),CANN 9.2.0,TTK 三方比对(NPU + CPU golden + torch 三方腿): - Host UT:13/13 PASS(build.sh -u --ophost --soc=ascend950 --ops=bias,含新反例) - ST 三方 cross_check 全量:828/828 PASS - 精度专项(inf/nan/大 shape/非对齐):16/16 PASS - DFX(空 tensor/inf-nan/非连续/动态 shape):13/15 PASS,余 2 例 inf/nan 用例首轮因手工输入文件丢失(测试基础设施问题,非算子问题)未完成复跑 - 性能:21/21 PASS(DYN/BIN perf 数值正常) - GEIR 通路:50/50 PASS - ST 两方 close 泛化:抽样 55 例 0 FAIL(含 bf16 全 dtype) ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 无 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6336 | 30 days ago |
| Math仓算子适配Ascend350平台 Co-authored-by: huairuchen<chenhuairu@huawei.com> # message auto-generated for no-merge-commit merge: !6372 merge dvlite-math-350-adapt into master Math仓算子适配Ascend350平台 Created-by: huairuchen Commit-by: huairuchen Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> Math仓部分随机数算子在350平台进行适配 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/4202 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 算子泛化测试,冒烟测试 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6372 | 15 days ago |
| 产品名变更 Co-authored-by: gitcode-chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !5912 merge master into master 产品名变更 Created-by: gitcode-chenjiao Commit-by: gitcode-chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> AI处理器对应的产品型号名称更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [#3258](https://gitcode.com/cann/ops-math/issues/3258) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ok ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> *.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5912 | 1 month 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 | 8 days ago |