| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
## 描述 新增 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 个月前 | |
## 描述 新增 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 个月前 | |
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 | 3 天前 | |
## 描述 新增 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 个月前 | |
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 | 18 天前 | |
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 | 3 天前 | |
产品名变更 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 个月前 |
Bias
产品支持情况
| 产品 | 是否支持 |
|---|---|
| Ascend 950PR&950DT系列产品 | √ |
| Atlas A3系列产品 | √ |
| Atlas A2系列产品 | √ |
| Atlas 200I/500 A2推理产品 | √ |
| Atlas推理系列产品 | √ |
| Atlas训练系列产品 | √ |
功能说明
Bias 按照 axis、num_axes 和 bias_from_blob 推导 bias 的逻辑广播形状,并计算 y = x + broadcast(bias)。
计算公式如下:
yi=xi+biasiy_i = x_i + bias_i yi=xi+biasi
broadcast(bias) 的推导规则如下:
axis < 0时,先执行axis += rank(x)。bias_from_blob = true且num_axes = -1时,broadcast_shape = [1] * axis + shape(bias)。bias_from_blob = true且num_axes = 0时,broadcast_shape = [1] * rank(x)。bias_from_blob = true且num_axes > 0时,broadcast_shape = [1] * axis + shape(bias) + [1] * (rank(x) - axis - num_axes)。bias_from_blob = false且bias为单元素时,broadcast_shape = [1] * rank(x)。bias_from_blob = false的其它场景,broadcast_shape = [1] * axis + shape(bias) + [1] * (rank(x) - axis - rank(bias))。
参数说明
| 参数名 | 输入/输出/属性 | 描述 | 数据类型 | 数据格式 |
|---|---|---|---|---|
| x | 输入 | 待进行Bias计算的输入张量。 | FLOAT、FLOAT16、BFLOAT16 | ND、NC1HWC0 |
| bias | 输入 | 按属性广播后与x相加的偏置张量。 | FLOAT、FLOAT16、BFLOAT16 | ND、NC1HWC0 |
| axis | 属性 | bias 逻辑形状的起始对齐轴,默认值为1。 | INT | - |
| num_axes | 属性 | bias 覆盖的轴数,默认值为1;支持-1、0和正整数。 | INT | - |
| bias_from_blob | 属性 | 是否按 blob bias 规则推导逻辑广播形状,默认值为true。 | BOOL | - |
| y | 输出 | 输出张量,形状和数据类型跟随x。 | FLOAT、FLOAT16、BFLOAT16 | ND、NC1HWC0 |
约束说明
- 支持 ND 和 NC1HWC0 数据格式(4D输入时支持NC1HWC0),以及 FLOAT、FLOAT16、BFLOAT16 同数据类型输入输出;不支持混合数据类型。
bias经过属性推导后的每个维度必须为1,或与x的对应维度相同。
调用说明
| 调用方式 | 调用样例 | 说明 |
|---|---|---|
| 图模式调用 | test_geir_bias | 通过算子IR构图方式调用Bias算子。 |