| Files | Last commit | Last update |
|---|---|---|
feat: 增加 ascend350 平台支持(22 个算子) Co-authored-by: wenqi_wu<wenqiwu0628@163.com> # message auto-generated for no-merge-commit merge: !11038 merge adapt-ascend350 into master feat: 增加 ascend350 平台支持(22 个算子) Created-by: wenqi_wu Commit-by: wenqi_wu Merged-by: cann-robot Description: ## 描述 为 22 个算子增加 ascend350(arch35)平台支持,并将 Threshold 的 aclnn 接口 SocVersion BF16 判断重构为 NpuArch 判断。 算子列表(22 个): - activation: Relu6D、SoftplusGrad、Threshold - index: InplaceUpdate、ScatterNonAliasingAdd、SparseSegmentSumGrad - loss: SmoothL1Loss、SmoothL1LossGrad - norm: LpNormUpdate - optim: FusedMulApplyMomentum、FusedMulApplyMomentumExtern、SparseApplyAdadelta、SparseApplyFtrl、SparseApplyFtrlV2、SparseApplyProximalAdagrad、SparseApplyRMSProp - pooling: Dilation2D - quant: ActULQClampMaxGrad、ActULQClampMinGrad、ActsULQInputGrad、GroupedDynamicMxQuantWithDualAxis、SwigluBackwardMxQuantWithDualAxis 改动内容: 1. CMakeLists:SUPPORT_COMPUTE_UNIT 追加 ascend350,SUPPORT_TILING_DIR 追加 arch35; 2. op_host/*_def.cpp:追加 AICore().AddConfig("ascend350", ...); 3. op_kernel/CMakeLists:COMPUTE_UNITS 追加 ascend350; 4. 3 个算子复制 op_host/config/ascend950/*.json 到 ascend350/(ScatterNonAliasingAdd、GroupedDynamicMxQuantWithDualAxis、SwigluBackwardMxQuantWithDualAxis); 5. Threshold op_api/aclnn_threshold.cpp:GetDtypeSupportList 的 SocVersion 判断重构为 NpuArch 判断。 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/6131 ## 测试 <!--TODO--> ## 文档更新 无需更新文档 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!11038 | 23 days ago | |
feat: 增加 ascend350 平台支持(22 个算子) Co-authored-by: wenqi_wu<wenqiwu0628@163.com> # message auto-generated for no-merge-commit merge: !11038 merge adapt-ascend350 into master feat: 增加 ascend350 平台支持(22 个算子) Created-by: wenqi_wu Commit-by: wenqi_wu Merged-by: cann-robot Description: ## 描述 为 22 个算子增加 ascend350(arch35)平台支持,并将 Threshold 的 aclnn 接口 SocVersion BF16 判断重构为 NpuArch 判断。 算子列表(22 个): - activation: Relu6D、SoftplusGrad、Threshold - index: InplaceUpdate、ScatterNonAliasingAdd、SparseSegmentSumGrad - loss: SmoothL1Loss、SmoothL1LossGrad - norm: LpNormUpdate - optim: FusedMulApplyMomentum、FusedMulApplyMomentumExtern、SparseApplyAdadelta、SparseApplyFtrl、SparseApplyFtrlV2、SparseApplyProximalAdagrad、SparseApplyRMSProp - pooling: Dilation2D - quant: ActULQClampMaxGrad、ActULQClampMinGrad、ActsULQInputGrad、GroupedDynamicMxQuantWithDualAxis、SwigluBackwardMxQuantWithDualAxis 改动内容: 1. CMakeLists:SUPPORT_COMPUTE_UNIT 追加 ascend350,SUPPORT_TILING_DIR 追加 arch35; 2. op_host/*_def.cpp:追加 AICore().AddConfig("ascend350", ...); 3. op_kernel/CMakeLists:COMPUTE_UNITS 追加 ascend350; 4. 3 个算子复制 op_host/config/ascend950/*.json 到 ascend350/(ScatterNonAliasingAdd、GroupedDynamicMxQuantWithDualAxis、SwigluBackwardMxQuantWithDualAxis); 5. Threshold op_api/aclnn_threshold.cpp:GetDtypeSupportList 的 SocVersion 判断重构为 NpuArch 判断。 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/6131 ## 测试 <!--TODO--> ## 文档更新 无需更新文档 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!11038 | 23 days ago | |
修改产品名 Co-authored-by: fwx1169505<fengying27@h-partners.com> # message auto-generated for no-merge-commit merge: !11017 merge master into master 修改产品名 Created-by: fengying555682 Commit-by: fwx1169505 Merged-by: cann-robot Description: ## 描述 修改quant和activation文件夹中的md文档涉及的产品名称 ## 关联的Issue [#6056](https://gitcode.com/cann/ops-nn/issues/6056) ## 测试 已经完成文档语法和链接一致性检测 ## 文档更新 quant和activation文件夹中的md文档 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!11017 | 1 month ago | |
feat: 增加 ascend350 平台支持(22 个算子) Co-authored-by: wenqi_wu<wenqiwu0628@163.com> # message auto-generated for no-merge-commit merge: !11038 merge adapt-ascend350 into master feat: 增加 ascend350 平台支持(22 个算子) Created-by: wenqi_wu Commit-by: wenqi_wu Merged-by: cann-robot Description: ## 描述 为 22 个算子增加 ascend350(arch35)平台支持,并将 Threshold 的 aclnn 接口 SocVersion BF16 判断重构为 NpuArch 判断。 算子列表(22 个): - activation: Relu6D、SoftplusGrad、Threshold - index: InplaceUpdate、ScatterNonAliasingAdd、SparseSegmentSumGrad - loss: SmoothL1Loss、SmoothL1LossGrad - norm: LpNormUpdate - optim: FusedMulApplyMomentum、FusedMulApplyMomentumExtern、SparseApplyAdadelta、SparseApplyFtrl、SparseApplyFtrlV2、SparseApplyProximalAdagrad、SparseApplyRMSProp - pooling: Dilation2D - quant: ActULQClampMaxGrad、ActULQClampMinGrad、ActsULQInputGrad、GroupedDynamicMxQuantWithDualAxis、SwigluBackwardMxQuantWithDualAxis 改动内容: 1. CMakeLists:SUPPORT_COMPUTE_UNIT 追加 ascend350,SUPPORT_TILING_DIR 追加 arch35; 2. op_host/*_def.cpp:追加 AICore().AddConfig("ascend350", ...); 3. op_kernel/CMakeLists:COMPUTE_UNITS 追加 ascend350; 4. 3 个算子复制 op_host/config/ascend950/*.json 到 ascend350/(ScatterNonAliasingAdd、GroupedDynamicMxQuantWithDualAxis、SwigluBackwardMxQuantWithDualAxis); 5. Threshold op_api/aclnn_threshold.cpp:GetDtypeSupportList 的 SocVersion 判断重构为 NpuArch 判断。 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/6131 ## 测试 <!--TODO--> ## 文档更新 无需更新文档 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!11038 | 23 days ago | |
新增4个HiFloat4量化算子 Co-authored-by: TH<taohai2@huawei.com> # message auto-generated for no-merge-commit merge: !12451 merge hif4_quant into master 新增4个HiFloat4量化算子 Created-by: TH_HW Commit-by: TH Merged-by: cann-robot Description: ## 描述 (对应 HEAD 提交 feat: 拆分新增4个HiFloat4量化算子,共改动 120 个文件,+14755)新增 4 个 **HiFloat4(HiF4)量化**算子。4 个算子均基于 HiFloat4(S1P2,4-bit)三层缩放架构(Block Scale Ea / Sub-block Scale Eb / Micro-block Scale Ec),目标平台为 ascend960dt。 主要改动如下: 1. **新增 4 个 HiFloat4 量化算子** - aclnnAntiHiF4Quant(AntiHiF4Quant):将 HiF4(S1P2)量化数据按三层缩放因子(Ea/Eb/Ec)反量化为 FP16/BF16,按 scale shape 自动判定 PER_CHANNEL / PER_HEAD 模式。 - aclnnDynamicHiF4Quant(DynamicHiF4Quant):沿指定 axis 按 Block=64 / Sub-block=8 / Micro-block=4 三层缩放的在线动态量化,继承 DynamicMxQuant 架构。 - aclnnDynamicBlockHiF4Quant(DynamicBlockHiF4Quant):同时沿 -1、-2 轴按 64×64 基本块(Sub-block 8×8、Micro-block 4×4)三层缩放动态量化,分别输出 -1/-2 轴的 scale1、scale2。 - aclnnGroupedDynamicHiF4Quant(GroupedDynamicHiF4Quant):按 group_index 分组、组内按 64 元素为一块的三层缩放动态量化。 - 每个算子均包含:op_api(aclnn 对外接口 + 内部 l0op 接口)、op_graph(proto)、op_host(def / infershape / arch35 tiling,含 tail 与 not_tail 分支)、op_kernel(arch35 内核,含 common / tail / not_tail / struct / tilingdata)、docs(aclnn API 文档)、examples/arch92、tests/ut(op_host 的 infershape/tiling + op_kernel)、README,以及 op_host/config/ascend960dt 下的 *_binary.json 与 *_simplified_key.ini。 - 算子原型使用 ge::DT_HIFLOAT4 / DT_HIFLOAT4_SCALE,并在 *_def.cpp 中注册 ascend960dt。 ## 关联的Issue 无。 ## 测试 - 新增各算子 op_host UT(infershape、tiling)与 op_kernel UT。 - 新增各算子的 aclnn 示例(examples/arch92/test_aclnn_*_hi_f4_quant.cpp)。 - 通过 ascend960dt 编译与静态检查。 ## 文档更新 无。 ## 类型标签 <!-- [x] 表示选中 --> - [x] 新特性 - [ ] Bug修复 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!12451 | 21 days ago | |
DynamicQuant等22个算子支持Ascend960dt Co-authored-by: TH_HW<taohai2@huawei.com> # message auto-generated for no-merge-commit merge: !11335 merge backBlue into master DynamicQuant等22个算子支持Ascend960dt Created-by: TH_HW Commit-by: TH_HW Merged-by: cann-robot Description: ## 描述 (+17812 / -2151)为一批 ops-nn 算子补齐 **Ascend 960DT(NPU Arch 9201)** 平台支持,并重构 GeGluV2 arch35 内核、为 Erfinv 增加 inplace 通路。 主要改动如下: 1. **Ascend960DT 平台适配(22 个算子)** - activation:Relu、ReluV2、ReluGrad、ReluGradV2、Sigmoid、SigmoidGrad、PRelu、PReluGradUpdate、SiluGrad、Softplus、Swish、SwishGrad、SwiGluGrad、GeGluV2。 - index:MapIndex、SparseSlice、QuantUpdateScatter。 - quant:Quantize、DynamicQuant、DynamicQuantV2、AntiMxQuant、GroupedDynamicMxQuant。 - 具体做法:CMakeLists.txt 的 SUPPORT_COMPUTE_UNIT / SUPPORT_TILING_DIR 增加 ascend960dt;*_def.cpp 增加 AddConfig("ascend960dt", ...);aclnn/op_api 与 infershape 增加 NpuArch::DAV_9201 / Ascend960DT 分支;kernel 增加 __NPU_ARCH__ == 9201 分支;新增 op_host/config/ascend960dt/ 下的算子二进制配置(共 22 个,如 relu_binary.json、p_relu.json 等);scripts/kernel/binary_config/ascendc_config.json 为相关算子登记 ascend960dt 计算单元与编译选项。 2. **GeGluV2 arch35 内核重构** - 将 arch35 模板按 erf / tanh 两类拆分,并补齐 align、align_last_axis_big、vreduce × fp16/bf16/fp32 变体,统一命名 *_arch35.h。 - tiling 新增 RegBase per-template per-element UB 预算模型(GetRegbasePerElem),并支持 ascend960dt。 - aclnnGeGlu 参数校验重构(CheckShape 支持 0D 输入与 dim 范围校验),新增 ST 用例(all_aclnnGeGlu(.V3).json)并调整 UT。 3. **Erfinv 支持 inplace**:新增 inplace dtype 支持列表与校验(GetInplaceDtypeSupportList / CheckInplaceDtypeValid),并补充 op_api UT。 4. **内核与接口修复** - SparseSlice:9201 路径改用 SetValue 写入 sliceStart/sliceEnd(替代 DataCopy),Reg::Reduce 使用完整命名空间限定。 - QuantUpdateScatter:9201 增加 FLOAT_OVERFLOW_MODE_CTRL 保护。 - ReluV2 infershape:Ascend960DT 不支持 NC1HWC0,UINT1 支持列表加入 Ascend960DT。 - DynamicQuant / Mx 量化:9201 上 fp8 scale 改为 bf16 乘法后再 cast 到 e8m0。 5. **代码规范**:统一 License 头注释格式、补齐文件末尾换行、调整 quant 系列 UT 的 CMakeLists;新增 MapIndex、SparseSlice 的 GE IR 图模式示例。 ## 关联的Issue 无。 ## 测试 - 新增 GeGluV2 ST 用例与 Erfinv inplace UT,补充/调整 GeGluV2 相关 UT。 - 新增 MapIndex / SparseSlice 的 GE IR 示例(examples/test_geir_*.cpp)。 - 通过 ascend960dt 编译与静态检查。 ## 文档更新 无。 ## 类型标签 <!-- [x] 表示选中 --> - [x] 新特性 - [ ] Bug修复 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!11335 | 21 days ago | |
修改产品名 Co-authored-by: fwx1169505<fengying27@h-partners.com> # message auto-generated for no-merge-commit merge: !11017 merge master into master 修改产品名 Created-by: fengying555682 Commit-by: fwx1169505 Merged-by: cann-robot Description: ## 描述 修改quant和activation文件夹中的md文档涉及的产品名称 ## 关联的Issue [#6056](https://gitcode.com/cann/ops-nn/issues/6056) ## 测试 已经完成文档语法和链接一致性检测 ## 文档更新 quant和activation文件夹中的md文档 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!11017 | 1 month ago | |
删除源码链接 Co-authored-by: fwx1169505<fengying27@h-partners.com> # message auto-generated for no-merge-commit merge: !12106 merge master into master 删除源码链接 Created-by: fengying555682 Commit-by: fwx1169505 Merged-by: cann-robot Description: ## 描述 删除源码链接 ## 关联的Issue [#6769](https://gitcode.com/cann/ops-nn/issues/6769) ## 测试 仅涉及文档修改,已经测试md文档语法 ## 文档更新 activation和quant目录下的md文档 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!12106 | 23 days ago | |
算子插件迁移 Co-authored-by: welt_lester<songlizhe1@h-partners.com> Co-authored-by: x00842564<xuyanke@huawei.com> # message auto-generated for no-merge-commit merge: !8474 merge master into master 算子插件迁移 Created-by: welt_lester Commit-by: x00842564;welt_lester Merged-by: cann-robot Description: ## 描述 落实issue #4279,将adaptive_avg_pool2d、adaptive_max_pool2d、ascend_anti_quant、ascend_dequant、ascend_quant、batch_mat_mul_v3、batch_norm、celu_v2、instance_norm_v3、ascend_quant、log_softmax_v2、mat_mul_v3、unique_with_counts_and_sorting这13个算子对应的插件从common\src\framework迁出到各自算子目录新建的\framework目录下。 ## 关联的Issue [Bug-Report|缺陷反馈]: 有对应算子的插件不应该放到公共目录 [#4279](https://gitcode.com/cann/ops-nn/issues/4279) ## 测试 compile、本地验证build通过 ## 文档更新 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码重构(算子插件归属迁移,落实 #4279 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8474 | 2 months ago | |
nn仓121回合主线黄迁蓝 Co-authored-by: qq_52874943<gaomingyuan3@h-partners.com> # message auto-generated for no-merge-commit merge: !10361 merge master into master nn仓121回合主线黄迁蓝 Created-by: qq_52874943 Commit-by: qq_52874943 Merged-by: cann-robot Description: ## 描述 本 PR 为 Erfinv 算子新增 ascend960DT 平台的支持,包括新增该平台下的算子内核二进制配置、在算子定义中注册 ascend960DT 配置,并将该平台加入算子二进制编译配置的 compute_units 列表,使 Erfinv 算子能够在 ascend960DT 上编译运行。 ## 关联的Issue 关联Issue[#6917](https://gitcode.com/cann/ops-nn/issues/6917) ## 测试 本地已完成新精度对比与性能测试,通过静态检查、蓝区冒烟、算子ST以及算子二级冒烟 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!10361 | 22 days ago | |
fix: aclnnAscendQuant补充x维度下界校验,rank=0返回161002 Co-authored-by: cuijie25<cuijie24@h-partners.com> # message auto-generated for no-merge-commit merge: !12557 merge fix/ascend-quant-rank0-check into master fix: aclnnAscendQuant补充x维度下界校验,rank=0返回161002 Created-by: cuijie25 Commit-by: cuijie25 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> aclnnAscendQuant 的第一段接口未校验 x/y 的 rank 下界:0 维(标量)输入被直接接受并正常执行返回 0,而资料 quant/ascend_quant_v2/docs/aclnnAscendQuant.md 中 x/scale/offset/y 的维度均声明为 1-8,错误码 161002 子项也明确覆盖「shape 不满足限制条件」(详见关联 Issue)。 修改内容: 1. CheckShape 中在既有 OP_CHECK_MAX_DIM(x, 8) 前新增 OP_CHECK_MIN_DIM(x, 1, return false),与 glu/selu_grad 等算子既有用法一致;只校验 x 即可覆盖 y(int8 路径 y shape 必须与 x 全等,int32/int4 路径本就拒绝标量)。 2. 清理 CheckDim 中 dimNum == 0 时按 1 维处理的历史遗留代码(来自初始提交的防御式写法,加入下界校验后不可达)。 3. UT 新增 ascend910B2_output_int8_scalar_error 用例,镜像既有 int4/int32 标量报错用例的写法。 同算子家族口径已对齐:本接口 int32/int4 路径已拒绝标量("dtype int32/int4 does not support scalar"),V3 接口有 CheckInputScalar 显式拒绝,本次补齐 int8 路径。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> [#7094](https://gitcode.com/cann/ops-nn/issues/7094) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 1. UT:A2(910B3)环境 bash build.sh -u --opapi --ops=ascend_quant_v2 -j8,52/52 全部通过,含新增 int8 标量用例。 2. 实卡验证(A2 / 910B3,内置 CANN 9.1.0 基线 vs 打补丁 vendor 包): - rank=0 标量 x/y int8:基线 ret=0(复现缺陷)→ 修复后 ret=161002; - rank=9(上界对照):修复前后均 ret=161002; - 正常 1D x={1,2}:修复前后均 ret=0 且 y={1,2},无回归。 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 无。资料已声明维度为 1-8,本次是代码对齐资料,无需更新文档。 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!12557 | 20 days ago | |
修改产品名 Co-authored-by: fwx1169505<fengying27@h-partners.com> # message auto-generated for no-merge-commit merge: !11017 merge master into master 修改产品名 Created-by: fengying555682 Commit-by: fwx1169505 Merged-by: cann-robot Description: ## 描述 修改quant和activation文件夹中的md文档涉及的产品名称 ## 关联的Issue [#6056](https://gitcode.com/cann/ops-nn/issues/6056) ## 测试 已经完成文档语法和链接一致性检测 ## 文档更新 quant和activation文件夹中的md文档 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!11017 | 1 month ago | |
删除源码链接 Co-authored-by: fwx1169505<fengying27@h-partners.com> # message auto-generated for no-merge-commit merge: !12106 merge master into master 删除源码链接 Created-by: fengying555682 Commit-by: fwx1169505 Merged-by: cann-robot Description: ## 描述 删除源码链接 ## 关联的Issue [#6769](https://gitcode.com/cann/ops-nn/issues/6769) ## 测试 仅涉及文档修改,已经测试md文档语法 ## 文档更新 activation和quant目录下的md文档 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!12106 | 23 days ago | |
feat: dequant_situ_quant BF16/FP16 路径放开可选 group_index Co-authored-by: boes129<chenqi185@huawei.com> # message auto-generated for no-merge-commit merge: !12440 merge feat/dequant-situ-quant-group-index into master feat: dequant_situ_quant BF16/FP16 路径放开可选 group_index Created-by: boes129 Commit-by: boes129 Merged-by: cann-robot Description: ## 描述 ### 背景 dequant_situ_quant 的接口里已经注册了可选输入 group_index(INT64,一维张量,长度为专家数,每个元素是对应专家的行数,各专家的行在输入中连续排布)。kernel 拿到它可以按专家分段处理:只计算实际存在的行,段外没有对应的行,输出保持为 0。 目前只有 INT32 输入路径能使用 group_index,BF16/FP16 路径被三处检查挡住: 1. op_host/dequant_situ_quant_tiling.cpp 的 CheckInputShapesBF16():"group_index must be absent for bfloat16/float16 x"; 2. op_kernel/dequant_situ_quant.h 的 Process():非 INT32 dtype 不进入分组循环,且 groupIndexGm_ 的 GlobalBuffer 绑定写在 INT32 专属代码块内; 3. torch_extension/csrc/dequant_situ_quant.cpp 的 TORCH_CHECK 同样禁止。 实际部署中恰恰是 BF16 路径需要它。MoE 推理在 allgather 通信形态下,routed GMM 的输出缓冲按最坏情况分配(假设所有专家的行都落在本卡),输入为 BF16;实际被路由到本卡的行只占一小部分,其余为必须保持为零的填充行。没有 group_index 时 kernel 需要扫描全部行(填充行也要执行"读计数-判零-跳过");有 group_index 时可以直接按段跳过。 量级参考(Kimi-K3 W4A8,896 个专家,EP64): - decode:每卡缓冲 [896, 6144],实际有效行通常 1~2 行; - prefill(2048 token 的 chunk):展开为 [33664, 6144],实际有效行约 500 行。 同一改动已在 vllm-ascend main 合入(PR #17570)并完成生产验证;本 MR 将该实现回馈到 CANN ops-nn 上游。排期为 CANN 9.3.0 交付,本 PR 目标是提前对齐 issue 需求。 ### 改动方法 - tiling:CheckInputShapesBF16()(BF16 与 FP16 共用)改为接受可选 group_index,校验规则与 INT32 路径一致(非空一维、weight_scale/bias 的形状须与专家数匹配);expertNum/hasGroupIndex 按实际值写入 tiling 数据,不再写死 1/0; - kernel:groupIndexGm_ 的绑定移出到公共路径,删除非 INT32 的早退分支,分组循环(计数 clamp 与段外跳过)对 BF16/FP16 生效,逻辑与 INT32 路径相同; - torch_extension:删除 BF16/FP16 传入 group_index 的 TORCH_CHECK; - docs / proto:接口约束文档同步放开; - UT:新增 4 个 tiling 用例(见"测试");经典 TILING_DATA_FIELD_DEF 生成的 TilingData 类不是扁平内存布局(实测成员偏移与字段序号不对应),字段断言对序列化缓冲按 uint32 词流匹配期望值序列,做法与 dequant_swiglu_quant 的 UT 相同。 ## 关联的Issue Fixes #6270 ## 测试 - pre-commit 全钩子通过(含 clang-format / codespell / OAT 合规扫描); - Ascend 910B 真机 bash build.sh --pkg --ops=dequant_situ_quant --soc=ascend910b 构建通过; - op_host UT 9/9 通过,其中: - 原有 5 个用例(int8 static/dynamic、int32 dynamic、infershape ×2)全部不变通过; - 新增 4 个:tiling_bf16_dynamic_group(BF16 + group_index,tiling key 40000,expertNum=16 / hasGroupIndex=1 写入正确)、tiling_bf16_dynamic_no_group(BF16 无 group_index 回归,key 40000,expertNum=1 / hasGroupIndex=0)、tiling_fp16_dynamic_group(FP16 + group_index,key 50000)、tiling_bf16_dynamic_group_invalid_rank(2-D group_index 被正确拒绝); - 同一改动在 vllm-ascend 侧的实测数据(PR #17570):kernel 输入 [33664, 6144](526 行有效)耗时 1587µs → 40µs;8k 输入 1k 输出端到端 TTFT 20.7s → 11.5s(−44%),TPOT 145.2ms → 127.6ms;serving decode 单算子 p50 65.3µs → 42.2µs。 ## TTK 精度验证补充 在 Ascend 910B3 + CANN 9.2.0 环境下,按 TTK kernel 模式对本 MR 分支(commit 1772b077)构建的算子包做了随机精度回归,**13 个边界用例全部通过**(PASS 率 100%,dyn/bin 双模式一致)。 **命令**:python3 -m ttk kernel -i dsq_cases.csv -b release --plugin golden.py --seed 20261021 --run 1(固定种子,可复现) ### 用例覆盖 | 用例 | 输入 | group_index | 覆盖点 | | -------------------------------- | ----------------- | -------------- | ------------------------------------------------------------ | | dsq_bf16_group_896_sparse | [896,6144] bf16 | K=14,计数 0~60 | decode 生产形状,稀疏计数 | | dsq_bf16_group_33664_prefill | [33664,6144] bf16 | K=14,0~2400 | prefill 生产形状,含大量死尾行 | | dsq_bf16_group_7296_mixed | [7296,6144] bf16 | K=14,0~700 | 死尾 + 计数钳制混合 | | dsq_bf16_group_clamp_896 | [896,6144] bf16 | K=14,3000~4000 | 单专家计数即超总行数 → 恒走钳制分支 | | dsq_bf16_nogroup_528 | [528,6144] bf16 | 无 | BF16 无 group 基线回归 | | dsq_fp16_group_896_sparse | [896,6144] fp16 | K=14,0~60 | FP16 + group(tiling key 50000) | | dsq_fp16_nogroup_528 | [528,6144] fp16 | 无 | FP16 基线回归 | | dsq_bf16_group_default_attrs_896 | [896,6144] bf16 | K=14 | 默认属性 beta=4.0 / linear_beta=25.0(覆盖 Situ beta 缩放 + up 软限幅全公式) | | dsq_bf16_group_small_64 | [64,128] bf16 | K=8 | 小形状 | | dsq_bf16_group_k896_decode | [896,6144] bf16 | K=896,计数 0~2 | 生产 decode 真实专家数(896),稀疏计数 | | dsq_bf16_group_act_right_896 | [896,6144] bf16 | K=14 | activate_left=False(gate/up 对半交换分支) | | dsq_bf16_group_narrow_cols | [256,200] bf16 | K=8 | H=100 非 32 倍数,覆盖列 padding 掩码路径 | | dsq_bf16_group_zero_counts | [128,256] bf16 | K=8,计数全 0 | active=0 极端全死尾(输出保持缓冲初始值) | ### 判据与 golden - y(int8):quant 判据(逐元素 |diff| ≤ 1,超差元素比例 0); - y_scale(float32):mix_tolerance,rtol=1e-5; - golden 参考实现按 kernel 源码逐行对照编写(beta·tanh(gate/beta)·sigmoid(gate)、linear_beta>0 时 up 软限幅、per-row absmax/127 动态量化、scale=0 时仅本地 inv 置 1);group_index 的分段连续/计数≤0 跳过/超剩余钳制语义与 kernel Process() 组循环一致; - 死尾行校验的是"kernel 不写任何数据"(输出缓冲按非零值初始化,kernel 若误写会被立即捕获),比校验零值更严格。 ### 结果 | Total | PASS | FAIL | PassRate | | ----- | ---- | ---- | -------- | | 13 | 13 | 0 | 100% | **精度余量**:即使在最严格的逐位比对(binary_equal)下,三个大形状用例的不一致元素也仅 1~14 个(总元素数 1.6M~103M),且全部 |diff| = 1 —— 来自 round(x/scale) 在 .5 边界的取整方向差(浮点末位 1 ulp 差异使商跳到相邻整数格,属实现固有自由度);y_scale 与参考实现最大差 5.6e-9(float32 1 ulp 量级)。 测试脚本(golden.py / dsq_cases.csv)见附件,可直接复跑。 --- ## 规模化精度回归(按《昇腾算子精度标准 2.1》L1 级) 在上述边界用例之外,按精度标准 L1 级(重要算子,LLM-MoE 路径)要求追加规模化随机回归: | 标准要求 | 实现 | | ----------------------------------------------------- | ------------------------------------------------------------ | | 用例规模 ≥10,000 | 10,000 条(bf16 / fp16 各 5,000;有 group 7,000 / 无 group 3,000) | | 均匀分布 30% / 小值域均匀 10% / 离群点 20% / 正态 40% | 均匀与小值域按用例值域实现;离群点以宽域均匀 [−5000,5000] 近似(TTK 无逐元素 0.1%×1000 注入原语,大 scale/饱和数值面等效);正态为截断正态(μ∈[−75,75]、σ∈[1,25] 多组) | | 每种 dtype ≥700 | bf16 / fp16 各 5,000 | | 维度值按 (15,16) 步长泛化 | rows/H 覆盖 {1,15,16,31,32,…,2048},含奇数 H(列 padding 路径);K∈{1,2,8,14,16,64,128,896};计数覆盖稀疏/混合/钳制/全零 | | Attr 组合遍历 | activate_left × beta{1.0,4.0} × linear_beta{0,25} 随机组合 | | 输出总元素 ≥100 万 | 约 4.8 亿,远超要求 | | 比对:量化类整型输出绝对误差 ≤1 | y(int8) = quant 判据;y_scale(float32) = mix_tolerance rtol 1e-5 | **结果**:10,000 / 10,000 通过。首跑 9,998 直接通过;2 条(fp16,无共同失败模式)失败经查为 TTK 框架 warmup 辅助内核注册竞态(rts_interface.py 的 warmup.o 注册,发生在算子执行之前,该用例自身的编译/tiling 记录均正常),同条件单独复跑均 PASS(dyn/bin 双模式 100.0%)——**算子侧 0 失败**。 ## 文档更新 随本 PR 同步更新(均为放开 BF16/FLOAT16 路径约束,与实现一致): - docs/aclnnDequantSituQuant.md:约束节 BF16/FLOAT16 行; - docs/torchapi_dequant_situ_quant.md:输入约束表 BF16/FLOAT16 行,group_index 从禁止列移到可选列,并补充参数语义; - op_graph/dequant_situ_quant_proto.h:约束注释同步。 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [x] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [] AI辅助编写 See merge request: cann/ops-nn!12440 | 20 days ago | |
[style] 修复 20 处 ruff E7 语句违规:多余分号 / == None / not ... in Co-authored-by: NUAAwqy<162230229@nuaa.edu.cn> # message auto-generated for no-merge-commit merge: !11492 merge fix/issue-6385-ruff-e7-statement-violations into master [style] 修复 20 处 ruff E7 语句违规:多余分号 / == None / not ... in Created-by: NUAA_wqy Commit-by: NUAAwqy Merged-by: cann-robot Description: ## 描述 仓库自身 .pre-commit-config.yaml 的 ruff-check(rev v0.14.14,args 仅 --output-format github --fix,未关闭任何规则)默认启用 E4/E7/E9/F 系列。main 上执行 console $ python -m ruff check --isolated --select E703,E711,E713 . 会报 20 条,本 MR 全部修掉: - **E703 语句末尾多余分号(10 处)**:norm/batch_norm_v3/tests/ut/op_kernel/batch_norm_v3_data/gen_golden_data.py(8 处)、optim/advance_step/tests/ut/op_kernel/advance_step_data/gen_data.py(2 处)。同一段里紧邻的赋值语句都没有分号,只有这几行有,属于书写不一致。 - **E711 与 None 用 == 比较(5 处)**:if self.bias == None(matmul/fused_quant_mat_mul 的 2 个 ST executor)、if input_data.kwargs.get("bias"/"quant_scale", None) == None(quant/dequant_swiglu_quant 的 ST executor,2 处)、if ignore_index == None(loss/cross_entropy_loss 的 ST executor)。左值都是普通 Python 对象(tensor / dict.get 结果 / int),改成 is None 后取值不变,符合 PEP 8 对单例比较的要求。 - **E713 not x in y(5 处)**:集中在 scripts/kernel/binary_script/parser_ini.py,改成 x not in y,与 not (x in y) 完全等价。 改动范围:7 个文件、20 行,+20 / -20,无逻辑变更、无接口变更。 ## 变更类型 - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] 🚀 性能优化 - [ ] 📝 文档更新 - [x] 📋 其他,请描述:代码风格 / lint 清理(ruff E703/E711/E713) ## 关联的Issue #6385 ## 测试 已完成的测试用例和场景: 1. python -m ruff check --isolated --select E703,E711,E713 .:改动前 20 条(10 + 5 + 5),改动后 All checks passed!; 2. 7 个改动文件逐个 python -m py_compile,全部通过; 3. git diff 逐行核对:git diff --stat 为 7 files changed, 20 insertions(+), 20 deletions(-),每处只改了分号 / ==→is / not a in b→a not in b; 4. 语义核对:not a in b 与 a not in b 完全等价;x == None 的 x 均为普通对象(tensor、dict.get() 返回值、int),不含 numpy 逐元素比较,is None 结果一致。 补充的UT用例:无(纯 lint 修正,不引入逻辑) 说明:本 MR **未**纳入同批的 E712(77 处)与 E741(11 处)。diff_res = np.isclose(...) 是逐元素布尔数组,diff_res != True 不能简单改成 not diff_res(会触发 numpy truth value 歧义),需单独评估;E741 是把 gen_golden_data_simple(n, c, l, dtype) 的形参 l 改名,会牵涉调用方,属更大范围改动。本地无 NPU / CANN 工具链,未运行 ST/UT 用例。 ## 文档更新 NA ## 合入检查 - [x] 已阅读 CONTRIBUTING.md,commit message 含类型标签与 DCO 签名(Signed-off-by) - [x] 代码/文档遵循项目整体风格,改动最小且聚焦于该 Issue - [x] 已完成本地验证,验证方法见“测试”章节 ## DCO Signed-off-by: NUAAwqy <162230229@nuaa.edu.cn> See merge request: cann/ops-nn!11492 | 21 days ago | |
批量修改ws=0 Co-authored-by: ligen<ligen75@h-partners.com> # message auto-generated for no-merge-commit merge: !11512 merge master into master 批量修改ws=0 Created-by: ligen75 Commit-by: ligen Merged-by: cann-robot Description: ## 描述 批量修改算子的系统workspace大小 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/5482 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 自验通过 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!11512 | 30 days ago | |
新增4个HiFloat4量化算子 Co-authored-by: TH<taohai2@huawei.com> # message auto-generated for no-merge-commit merge: !12451 merge hif4_quant into master 新增4个HiFloat4量化算子 Created-by: TH_HW Commit-by: TH Merged-by: cann-robot Description: ## 描述 (对应 HEAD 提交 feat: 拆分新增4个HiFloat4量化算子,共改动 120 个文件,+14755)新增 4 个 **HiFloat4(HiF4)量化**算子。4 个算子均基于 HiFloat4(S1P2,4-bit)三层缩放架构(Block Scale Ea / Sub-block Scale Eb / Micro-block Scale Ec),目标平台为 ascend960dt。 主要改动如下: 1. **新增 4 个 HiFloat4 量化算子** - aclnnAntiHiF4Quant(AntiHiF4Quant):将 HiF4(S1P2)量化数据按三层缩放因子(Ea/Eb/Ec)反量化为 FP16/BF16,按 scale shape 自动判定 PER_CHANNEL / PER_HEAD 模式。 - aclnnDynamicHiF4Quant(DynamicHiF4Quant):沿指定 axis 按 Block=64 / Sub-block=8 / Micro-block=4 三层缩放的在线动态量化,继承 DynamicMxQuant 架构。 - aclnnDynamicBlockHiF4Quant(DynamicBlockHiF4Quant):同时沿 -1、-2 轴按 64×64 基本块(Sub-block 8×8、Micro-block 4×4)三层缩放动态量化,分别输出 -1/-2 轴的 scale1、scale2。 - aclnnGroupedDynamicHiF4Quant(GroupedDynamicHiF4Quant):按 group_index 分组、组内按 64 元素为一块的三层缩放动态量化。 - 每个算子均包含:op_api(aclnn 对外接口 + 内部 l0op 接口)、op_graph(proto)、op_host(def / infershape / arch35 tiling,含 tail 与 not_tail 分支)、op_kernel(arch35 内核,含 common / tail / not_tail / struct / tilingdata)、docs(aclnn API 文档)、examples/arch92、tests/ut(op_host 的 infershape/tiling + op_kernel)、README,以及 op_host/config/ascend960dt 下的 *_binary.json 与 *_simplified_key.ini。 - 算子原型使用 ge::DT_HIFLOAT4 / DT_HIFLOAT4_SCALE,并在 *_def.cpp 中注册 ascend960dt。 ## 关联的Issue 无。 ## 测试 - 新增各算子 op_host UT(infershape、tiling)与 op_kernel UT。 - 新增各算子的 aclnn 示例(examples/arch92/test_aclnn_*_hi_f4_quant.cpp)。 - 通过 ascend960dt 编译与静态检查。 ## 文档更新 无。 ## 类型标签 <!-- [x] 表示选中 --> - [x] 新特性 - [ ] Bug修复 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!12451 | 21 days ago | |
删除源码链接 Co-authored-by: fwx1169505<fengying27@h-partners.com> # message auto-generated for no-merge-commit merge: !12106 merge master into master 删除源码链接 Created-by: fengying555682 Commit-by: fwx1169505 Merged-by: cann-robot Description: ## 描述 删除源码链接 ## 关联的Issue [#6769](https://gitcode.com/cann/ops-nn/issues/6769) ## 测试 仅涉及文档修改,已经测试md文档语法 ## 文档更新 activation和quant目录下的md文档 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!12106 | 23 days ago | |
nn仓121回合主线黄迁蓝 Co-authored-by: qq_52874943<gaomingyuan3@h-partners.com> # message auto-generated for no-merge-commit merge: !10361 merge master into master nn仓121回合主线黄迁蓝 Created-by: qq_52874943 Commit-by: qq_52874943 Merged-by: cann-robot Description: ## 描述 本 PR 为 Erfinv 算子新增 ascend960DT 平台的支持,包括新增该平台下的算子内核二进制配置、在算子定义中注册 ascend960DT 配置,并将该平台加入算子二进制编译配置的 compute_units 列表,使 Erfinv 算子能够在 ascend960DT 上编译运行。 ## 关联的Issue 关联Issue[#6917](https://gitcode.com/cann/ops-nn/issues/6917) ## 测试 本地已完成新精度对比与性能测试,通过静态检查、蓝区冒烟、算子ST以及算子二级冒烟 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!10361 | 22 days ago | |
删除源码链接 Co-authored-by: fwx1169505<fengying27@h-partners.com> # message auto-generated for no-merge-commit merge: !12106 merge master into master 删除源码链接 Created-by: fengying555682 Commit-by: fwx1169505 Merged-by: cann-robot Description: ## 描述 删除源码链接 ## 关联的Issue [#6769](https://gitcode.com/cann/ops-nn/issues/6769) ## 测试 仅涉及文档修改,已经测试md文档语法 ## 文档更新 activation和quant目录下的md文档 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!12106 | 23 days ago | |
新增4个HiFloat4量化算子 Co-authored-by: TH<taohai2@huawei.com> # message auto-generated for no-merge-commit merge: !12451 merge hif4_quant into master 新增4个HiFloat4量化算子 Created-by: TH_HW Commit-by: TH Merged-by: cann-robot Description: ## 描述 (对应 HEAD 提交 feat: 拆分新增4个HiFloat4量化算子,共改动 120 个文件,+14755)新增 4 个 **HiFloat4(HiF4)量化**算子。4 个算子均基于 HiFloat4(S1P2,4-bit)三层缩放架构(Block Scale Ea / Sub-block Scale Eb / Micro-block Scale Ec),目标平台为 ascend960dt。 主要改动如下: 1. **新增 4 个 HiFloat4 量化算子** - aclnnAntiHiF4Quant(AntiHiF4Quant):将 HiF4(S1P2)量化数据按三层缩放因子(Ea/Eb/Ec)反量化为 FP16/BF16,按 scale shape 自动判定 PER_CHANNEL / PER_HEAD 模式。 - aclnnDynamicHiF4Quant(DynamicHiF4Quant):沿指定 axis 按 Block=64 / Sub-block=8 / Micro-block=4 三层缩放的在线动态量化,继承 DynamicMxQuant 架构。 - aclnnDynamicBlockHiF4Quant(DynamicBlockHiF4Quant):同时沿 -1、-2 轴按 64×64 基本块(Sub-block 8×8、Micro-block 4×4)三层缩放动态量化,分别输出 -1/-2 轴的 scale1、scale2。 - aclnnGroupedDynamicHiF4Quant(GroupedDynamicHiF4Quant):按 group_index 分组、组内按 64 元素为一块的三层缩放动态量化。 - 每个算子均包含:op_api(aclnn 对外接口 + 内部 l0op 接口)、op_graph(proto)、op_host(def / infershape / arch35 tiling,含 tail 与 not_tail 分支)、op_kernel(arch35 内核,含 common / tail / not_tail / struct / tilingdata)、docs(aclnn API 文档)、examples/arch92、tests/ut(op_host 的 infershape/tiling + op_kernel)、README,以及 op_host/config/ascend960dt 下的 *_binary.json 与 *_simplified_key.ini。 - 算子原型使用 ge::DT_HIFLOAT4 / DT_HIFLOAT4_SCALE,并在 *_def.cpp 中注册 ascend960dt。 ## 关联的Issue 无。 ## 测试 - 新增各算子 op_host UT(infershape、tiling)与 op_kernel UT。 - 新增各算子的 aclnn 示例(examples/arch92/test_aclnn_*_hi_f4_quant.cpp)。 - 通过 ascend960dt 编译与静态检查。 ## 文档更新 无。 ## 类型标签 <!-- [x] 表示选中 --> - [x] 新特性 - [ ] Bug修复 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!12451 | 21 days ago | |
DynamicQuant等22个算子支持Ascend960dt Co-authored-by: TH_HW<taohai2@huawei.com> # message auto-generated for no-merge-commit merge: !11335 merge backBlue into master DynamicQuant等22个算子支持Ascend960dt Created-by: TH_HW Commit-by: TH_HW Merged-by: cann-robot Description: ## 描述 (+17812 / -2151)为一批 ops-nn 算子补齐 **Ascend 960DT(NPU Arch 9201)** 平台支持,并重构 GeGluV2 arch35 内核、为 Erfinv 增加 inplace 通路。 主要改动如下: 1. **Ascend960DT 平台适配(22 个算子)** - activation:Relu、ReluV2、ReluGrad、ReluGradV2、Sigmoid、SigmoidGrad、PRelu、PReluGradUpdate、SiluGrad、Softplus、Swish、SwishGrad、SwiGluGrad、GeGluV2。 - index:MapIndex、SparseSlice、QuantUpdateScatter。 - quant:Quantize、DynamicQuant、DynamicQuantV2、AntiMxQuant、GroupedDynamicMxQuant。 - 具体做法:CMakeLists.txt 的 SUPPORT_COMPUTE_UNIT / SUPPORT_TILING_DIR 增加 ascend960dt;*_def.cpp 增加 AddConfig("ascend960dt", ...);aclnn/op_api 与 infershape 增加 NpuArch::DAV_9201 / Ascend960DT 分支;kernel 增加 __NPU_ARCH__ == 9201 分支;新增 op_host/config/ascend960dt/ 下的算子二进制配置(共 22 个,如 relu_binary.json、p_relu.json 等);scripts/kernel/binary_config/ascendc_config.json 为相关算子登记 ascend960dt 计算单元与编译选项。 2. **GeGluV2 arch35 内核重构** - 将 arch35 模板按 erf / tanh 两类拆分,并补齐 align、align_last_axis_big、vreduce × fp16/bf16/fp32 变体,统一命名 *_arch35.h。 - tiling 新增 RegBase per-template per-element UB 预算模型(GetRegbasePerElem),并支持 ascend960dt。 - aclnnGeGlu 参数校验重构(CheckShape 支持 0D 输入与 dim 范围校验),新增 ST 用例(all_aclnnGeGlu(.V3).json)并调整 UT。 3. **Erfinv 支持 inplace**:新增 inplace dtype 支持列表与校验(GetInplaceDtypeSupportList / CheckInplaceDtypeValid),并补充 op_api UT。 4. **内核与接口修复** - SparseSlice:9201 路径改用 SetValue 写入 sliceStart/sliceEnd(替代 DataCopy),Reg::Reduce 使用完整命名空间限定。 - QuantUpdateScatter:9201 增加 FLOAT_OVERFLOW_MODE_CTRL 保护。 - ReluV2 infershape:Ascend960DT 不支持 NC1HWC0,UINT1 支持列表加入 Ascend960DT。 - DynamicQuant / Mx 量化:9201 上 fp8 scale 改为 bf16 乘法后再 cast 到 e8m0。 5. **代码规范**:统一 License 头注释格式、补齐文件末尾换行、调整 quant 系列 UT 的 CMakeLists;新增 MapIndex、SparseSlice 的 GE IR 图模式示例。 ## 关联的Issue 无。 ## 测试 - 新增 GeGluV2 ST 用例与 Erfinv inplace UT,补充/调整 GeGluV2 相关 UT。 - 新增 MapIndex / SparseSlice 的 GE IR 示例(examples/test_geir_*.cpp)。 - 通过 ascend960dt 编译与静态检查。 ## 文档更新 无。 ## 类型标签 <!-- [x] 表示选中 --> - [x] 新特性 - [ ] Bug修复 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!11335 | 21 days ago | |
DynamicQuant等22个算子支持Ascend960dt Co-authored-by: TH_HW<taohai2@huawei.com> # message auto-generated for no-merge-commit merge: !11335 merge backBlue into master DynamicQuant等22个算子支持Ascend960dt Created-by: TH_HW Commit-by: TH_HW Merged-by: cann-robot Description: ## 描述 (+17812 / -2151)为一批 ops-nn 算子补齐 **Ascend 960DT(NPU Arch 9201)** 平台支持,并重构 GeGluV2 arch35 内核、为 Erfinv 增加 inplace 通路。 主要改动如下: 1. **Ascend960DT 平台适配(22 个算子)** - activation:Relu、ReluV2、ReluGrad、ReluGradV2、Sigmoid、SigmoidGrad、PRelu、PReluGradUpdate、SiluGrad、Softplus、Swish、SwishGrad、SwiGluGrad、GeGluV2。 - index:MapIndex、SparseSlice、QuantUpdateScatter。 - quant:Quantize、DynamicQuant、DynamicQuantV2、AntiMxQuant、GroupedDynamicMxQuant。 - 具体做法:CMakeLists.txt 的 SUPPORT_COMPUTE_UNIT / SUPPORT_TILING_DIR 增加 ascend960dt;*_def.cpp 增加 AddConfig("ascend960dt", ...);aclnn/op_api 与 infershape 增加 NpuArch::DAV_9201 / Ascend960DT 分支;kernel 增加 __NPU_ARCH__ == 9201 分支;新增 op_host/config/ascend960dt/ 下的算子二进制配置(共 22 个,如 relu_binary.json、p_relu.json 等);scripts/kernel/binary_config/ascendc_config.json 为相关算子登记 ascend960dt 计算单元与编译选项。 2. **GeGluV2 arch35 内核重构** - 将 arch35 模板按 erf / tanh 两类拆分,并补齐 align、align_last_axis_big、vreduce × fp16/bf16/fp32 变体,统一命名 *_arch35.h。 - tiling 新增 RegBase per-template per-element UB 预算模型(GetRegbasePerElem),并支持 ascend960dt。 - aclnnGeGlu 参数校验重构(CheckShape 支持 0D 输入与 dim 范围校验),新增 ST 用例(all_aclnnGeGlu(.V3).json)并调整 UT。 3. **Erfinv 支持 inplace**:新增 inplace dtype 支持列表与校验(GetInplaceDtypeSupportList / CheckInplaceDtypeValid),并补充 op_api UT。 4. **内核与接口修复** - SparseSlice:9201 路径改用 SetValue 写入 sliceStart/sliceEnd(替代 DataCopy),Reg::Reduce 使用完整命名空间限定。 - QuantUpdateScatter:9201 增加 FLOAT_OVERFLOW_MODE_CTRL 保护。 - ReluV2 infershape:Ascend960DT 不支持 NC1HWC0,UINT1 支持列表加入 Ascend960DT。 - DynamicQuant / Mx 量化:9201 上 fp8 scale 改为 bf16 乘法后再 cast 到 e8m0。 5. **代码规范**:统一 License 头注释格式、补齐文件末尾换行、调整 quant 系列 UT 的 CMakeLists;新增 MapIndex、SparseSlice 的 GE IR 图模式示例。 ## 关联的Issue 无。 ## 测试 - 新增 GeGluV2 ST 用例与 Erfinv inplace UT,补充/调整 GeGluV2 相关 UT。 - 新增 MapIndex / SparseSlice 的 GE IR 示例(examples/test_geir_*.cpp)。 - 通过 ascend960dt 编译与静态检查。 ## 文档更新 无。 ## 类型标签 <!-- [x] 表示选中 --> - [x] 新特性 - [ ] Bug修复 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!11335 | 21 days ago | |
DynamicQuant等22个算子支持Ascend960dt Co-authored-by: TH_HW<taohai2@huawei.com> # message auto-generated for no-merge-commit merge: !11335 merge backBlue into master DynamicQuant等22个算子支持Ascend960dt Created-by: TH_HW Commit-by: TH_HW Merged-by: cann-robot Description: ## 描述 (+17812 / -2151)为一批 ops-nn 算子补齐 **Ascend 960DT(NPU Arch 9201)** 平台支持,并重构 GeGluV2 arch35 内核、为 Erfinv 增加 inplace 通路。 主要改动如下: 1. **Ascend960DT 平台适配(22 个算子)** - activation:Relu、ReluV2、ReluGrad、ReluGradV2、Sigmoid、SigmoidGrad、PRelu、PReluGradUpdate、SiluGrad、Softplus、Swish、SwishGrad、SwiGluGrad、GeGluV2。 - index:MapIndex、SparseSlice、QuantUpdateScatter。 - quant:Quantize、DynamicQuant、DynamicQuantV2、AntiMxQuant、GroupedDynamicMxQuant。 - 具体做法:CMakeLists.txt 的 SUPPORT_COMPUTE_UNIT / SUPPORT_TILING_DIR 增加 ascend960dt;*_def.cpp 增加 AddConfig("ascend960dt", ...);aclnn/op_api 与 infershape 增加 NpuArch::DAV_9201 / Ascend960DT 分支;kernel 增加 __NPU_ARCH__ == 9201 分支;新增 op_host/config/ascend960dt/ 下的算子二进制配置(共 22 个,如 relu_binary.json、p_relu.json 等);scripts/kernel/binary_config/ascendc_config.json 为相关算子登记 ascend960dt 计算单元与编译选项。 2. **GeGluV2 arch35 内核重构** - 将 arch35 模板按 erf / tanh 两类拆分,并补齐 align、align_last_axis_big、vreduce × fp16/bf16/fp32 变体,统一命名 *_arch35.h。 - tiling 新增 RegBase per-template per-element UB 预算模型(GetRegbasePerElem),并支持 ascend960dt。 - aclnnGeGlu 参数校验重构(CheckShape 支持 0D 输入与 dim 范围校验),新增 ST 用例(all_aclnnGeGlu(.V3).json)并调整 UT。 3. **Erfinv 支持 inplace**:新增 inplace dtype 支持列表与校验(GetInplaceDtypeSupportList / CheckInplaceDtypeValid),并补充 op_api UT。 4. **内核与接口修复** - SparseSlice:9201 路径改用 SetValue 写入 sliceStart/sliceEnd(替代 DataCopy),Reg::Reduce 使用完整命名空间限定。 - QuantUpdateScatter:9201 增加 FLOAT_OVERFLOW_MODE_CTRL 保护。 - ReluV2 infershape:Ascend960DT 不支持 NC1HWC0,UINT1 支持列表加入 Ascend960DT。 - DynamicQuant / Mx 量化:9201 上 fp8 scale 改为 bf16 乘法后再 cast 到 e8m0。 5. **代码规范**:统一 License 头注释格式、补齐文件末尾换行、调整 quant 系列 UT 的 CMakeLists;新增 MapIndex、SparseSlice 的 GE IR 图模式示例。 ## 关联的Issue 无。 ## 测试 - 新增 GeGluV2 ST 用例与 Erfinv inplace UT,补充/调整 GeGluV2 相关 UT。 - 新增 MapIndex / SparseSlice 的 GE IR 示例(examples/test_geir_*.cpp)。 - 通过 ascend960dt 编译与静态检查。 ## 文档更新 无。 ## 类型标签 <!-- [x] 表示选中 --> - [x] 新特性 - [ ] Bug修复 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!11335 | 21 days ago | |
fix: 修复 10 算子 TTK golden 参考实现的输出 dtype 与 fp64 精度处理缺陷 Co-authored-by: tianqiguang<tianqiguang@huawei.com> # message auto-generated for no-merge-commit merge: !11042 merge goldenMod into master fix: 修复 10 算子 TTK golden 参考实现的输出 dtype 与 fp64 精度处理缺陷 Created-by: tianqiguang Commit-by: tianqiguang Merged-by: cann-robot Description: ## 描述 本 MR 修正 loss / norm / optim / quant 共 10 个算子的 TTK golden 参考实现( <算子>/tests/assets/golden.py),使 golden 严格按用例声明的输出 dtype(output_dtypes)生成真值,并在 TTK Promote 提供 fp64 时保留 fp64 计算精度。仅修改测试参考实现(纯 Python,numpy/torch 计算),不涉及 kernel / op_host 代码。 ### 改动原因 1. **忽略用例声明的输出 dtype(output_dtypes)**:次级输出被硬编码为 float32,不看声明。典型如 norm/deep_norm/tests/assets/golden.py:旧实现 _compute_deep_norm 直接将 mean/rstd 强制 .to(torch.float32),deep_norm_golden 只从 output_dtypes[2] 取 y 的 dtype,output_dtypes[0]/[1](mean/rstd 声明)被忽略;norm/batch_norm3_d、norm/batch_norm3_d_grad、norm/batch_norm_grad_ext2 的 batch_mean/saved_var/saved_rstd/dscale/doffset、optim/apply_adam_w_quant 的 absmax_m/absmax_v、quant/dynamic_quant_update_scatter(_v2) 的 scale/offset 同样被强制 float32。 2. **把 TTK Promote 的 fp64 精度截回 fp32**:golden 内部一律经 astype(np.float32) / .to(torch.float32)(_to_f32 / _to_torch_float32 / _to_numpy_float32 及一系列 dtype=np.float32 的归约助手),TTK Promote 送入的 fp64 输入被降为 fp32,cross_check 真值被截回 fp32(修复后代码注释对应 "retaining fp64 (TTK Promote) so the true value is not cut back to fp32")。 ### 改动方法 - **统一计算 dtype 入口**:_to_f32 → _to_compute(apply_adam_w_quant / apply_came_part4)、_to_torch_float32/_to_numpy_float32 → _to_torch_compute/_to_numpy_compute(deep_norm_grad)、_to_torch(x, dtype=float32) 改为保持输入自身 dtype(dynamic_quant_update_scatter)。语义:fp64 原样保留,fp16/bf16 提升到 fp32。 - **归约/累加助手改为输入 dtype 驱动**:batch_norm3_d_grad / batch_norm_grad_ext2 的 _sum_fp32、_sum_seq_fp32、_binary_fold_sum、_ra_split_r_channel_sum、_sum_pairwise_fp32、_chunk32_pair_channel_sum、_chunk_channel_sum、_ascend_like_channel_sum 由 np.float32 改为 x.dtype;deep_norm_grad 的 _reduce_sum_vl、_reduce_sum_regbase(_1d)、_reduce_sum_rows、_reduce_sum_rows_fp64 改为 values.dtype 驱动;新增 _compute_dtype() 判定(fp64 输入 → 全程 fp64,否则 fp32)。 - **按声明输出 dtype 生成输出**:新增 _output_dtype(kwargs, index, default) 从 TTK 传入的 output_dtypes 取声明 dtype(缺省 float32)。应用于 mean/rstd(deep_norm、deep_norm_grad)、batch_mean/saved_var/saved_rstd(batch_norm3_d)、dscale/doffset(batch_norm3_d_grad、batch_norm_grad_ext2)、dbeta/dgamma(deep_norm_grad)、absmax_m/absmax_v(apply_adam_w_quant,改为保持计算 dtype)、scale(dynamic_quant_update_scatter,改用 var_scale 实际 dtype)、out_scale/out_offset(_v2,保持原 dtype,去掉 np.float32 强制转换)。 - **常量与超参对齐计算 dtype**:apply_adam_w_quant 的 one/lr/beta1/beta2/weight_decay/eps/gnorm_scale、dynamic_quant_update_scatter 的 QUANT_MAX、_v2 的 INT4_SCALE_RANGE/INT4_QUANT_MAX/QUANT_EPSILON、batch_norm*_grad 的 reduce_count/epsilon 标量等改用 compute dtype。 - **cosine_embedding_loss**:计算 dtype 用 torch.promote_types(torch.float32, a.dtype) 并再与声明输出 dtype 提升;整数输入经 _to_compute_tensor 提升到计算 dtype;归约不再强制 dtype=torch.float32;reduction 结果按 out_dtype 输出。 - **batch_norm3_d**:__spec__ / __golden__ 增加算子名别名 batch_norm3_d(原仅注册 batch_norm3d)。 - **apply_came_part4**:_dtype_of 支持 float64;customize_inputs 增加 **kwargs 并使返回顺序与函数签名一致(sum_r 移至 sum_u_rc 之后);移除 __input__ 注册。 - **dynamic_quant_update_scatter / _v2**:_compute_dtype 由输入与声明输出 dtype 联合提升;量化写回不再经 np.float32 截断。 | # | 算子 | 文件 | +/− | |---|------|------|-----| | 1 | loss/cosine_embedding_loss | tests/assets/golden.py | +54/−18 | | 2 | norm/batch_norm3_d | tests/assets/golden.py | +36/−6 | | 3 | norm/batch_norm3_d_grad | tests/assets/golden.py | +53/−29 | | 4 | norm/batch_norm_grad_ext2 | tests/assets/golden.py | +53/−29 | | 5 | norm/deep_norm | tests/assets/golden.py | +7/−3 | | 6 | norm/deep_norm_grad | tests/assets/golden.py | +82/−55 | | 7 | optim/apply_adam_w_quant | tests/assets/golden.py | +45/−19 | | 8 | optim/apply_came_part4 | tests/assets/golden.py | +29/−21 | | 9 | quant/dynamic_quant_update_scatter | tests/assets/golden.py | +41/−10 | | 10 | quant/dynamic_quant_update_scatter_v2 | tests/assets/golden.py | +30/−13 | | | **合计** | **10 个文件** | **+430/−203** | ## 关联的Issue - #6449 ## 测试 本 MR 仅修改 TTK golden 参考实现(纯 Python,numpy/torch 计算,无 kernel / op_host 代码变更),建议按仓库 TTK ST 流程验证(需 Linux + CANN + Ascend 环境): bash cd /path/to/ops-test-kit REPO=/path/to/ops-nn # 仓内已提供用例的 3 个算子 python3 -m ttk kernel -i "$REPO/norm/deep_norm/tests/st/arch35/ttk_kernel_deep_norm_generalization.csv" \ --plugin "$REPO/norm/deep_norm/tests/assets/golden.py" python3 -m ttk kernel -i "$REPO/quant/dynamic_quant_update_scatter/tests/st/arch35/ttk_kernel_dynamic_quant_update_scatter_st.csv" \ --plugin "$REPO/quant/dynamic_quant_update_scatter/tests/assets/golden.py" python3 -m ttk kernel -i "$REPO/quant/dynamic_quant_update_scatter_v2/tests/st/arch35/ttk_kernel_dynamic_quant_update_scatter_v2_st.csv" \ --plugin "$REPO/quant/dynamic_quant_update_scatter_v2/tests/assets/golden.py" 检查点: - 各输出 dtype 与用例 output_dtypes 声明一致(如 deep_norm fp16 用例 ('float32','float32','float16')); - fp64 Promote 用例的 cross_check 真值保持 fp64,不被截回 fp32; - 既有 float16/bfloat16 用例的容差与判定不变。 ## 文档更新 本 MR 未包含文档修改。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [ ] AI辅助编写 See merge request: cann/ops-nn!11042 | 1 month ago | |
heaviside等算子workpace分配空间整改 Co-authored-by: ly_cann_coder<liyao152@huawei.com> # message auto-generated for no-merge-commit merge: !12164 merge workspace into master heaviside等算子workpace分配空间整改 Created-by: ly_cann_coder Commit-by: ly_cann_coder Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> heaviside等算子将workpace分配空间整改为0 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/6902 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码整改 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!12164 | 22 days ago | |
DynamicQuant等22个算子支持Ascend960dt Co-authored-by: TH_HW<taohai2@huawei.com> # message auto-generated for no-merge-commit merge: !11335 merge backBlue into master DynamicQuant等22个算子支持Ascend960dt Created-by: TH_HW Commit-by: TH_HW Merged-by: cann-robot Description: ## 描述 (+17812 / -2151)为一批 ops-nn 算子补齐 **Ascend 960DT(NPU Arch 9201)** 平台支持,并重构 GeGluV2 arch35 内核、为 Erfinv 增加 inplace 通路。 主要改动如下: 1. **Ascend960DT 平台适配(22 个算子)** - activation:Relu、ReluV2、ReluGrad、ReluGradV2、Sigmoid、SigmoidGrad、PRelu、PReluGradUpdate、SiluGrad、Softplus、Swish、SwishGrad、SwiGluGrad、GeGluV2。 - index:MapIndex、SparseSlice、QuantUpdateScatter。 - quant:Quantize、DynamicQuant、DynamicQuantV2、AntiMxQuant、GroupedDynamicMxQuant。 - 具体做法:CMakeLists.txt 的 SUPPORT_COMPUTE_UNIT / SUPPORT_TILING_DIR 增加 ascend960dt;*_def.cpp 增加 AddConfig("ascend960dt", ...);aclnn/op_api 与 infershape 增加 NpuArch::DAV_9201 / Ascend960DT 分支;kernel 增加 __NPU_ARCH__ == 9201 分支;新增 op_host/config/ascend960dt/ 下的算子二进制配置(共 22 个,如 relu_binary.json、p_relu.json 等);scripts/kernel/binary_config/ascendc_config.json 为相关算子登记 ascend960dt 计算单元与编译选项。 2. **GeGluV2 arch35 内核重构** - 将 arch35 模板按 erf / tanh 两类拆分,并补齐 align、align_last_axis_big、vreduce × fp16/bf16/fp32 变体,统一命名 *_arch35.h。 - tiling 新增 RegBase per-template per-element UB 预算模型(GetRegbasePerElem),并支持 ascend960dt。 - aclnnGeGlu 参数校验重构(CheckShape 支持 0D 输入与 dim 范围校验),新增 ST 用例(all_aclnnGeGlu(.V3).json)并调整 UT。 3. **Erfinv 支持 inplace**:新增 inplace dtype 支持列表与校验(GetInplaceDtypeSupportList / CheckInplaceDtypeValid),并补充 op_api UT。 4. **内核与接口修复** - SparseSlice:9201 路径改用 SetValue 写入 sliceStart/sliceEnd(替代 DataCopy),Reg::Reduce 使用完整命名空间限定。 - QuantUpdateScatter:9201 增加 FLOAT_OVERFLOW_MODE_CTRL 保护。 - ReluV2 infershape:Ascend960DT 不支持 NC1HWC0,UINT1 支持列表加入 Ascend960DT。 - DynamicQuant / Mx 量化:9201 上 fp8 scale 改为 bf16 乘法后再 cast 到 e8m0。 5. **代码规范**:统一 License 头注释格式、补齐文件末尾换行、调整 quant 系列 UT 的 CMakeLists;新增 MapIndex、SparseSlice 的 GE IR 图模式示例。 ## 关联的Issue 无。 ## 测试 - 新增 GeGluV2 ST 用例与 Erfinv inplace UT,补充/调整 GeGluV2 相关 UT。 - 新增 MapIndex / SparseSlice 的 GE IR 示例(examples/test_geir_*.cpp)。 - 通过 ascend960dt 编译与静态检查。 ## 文档更新 无。 ## 类型标签 <!-- [x] 表示选中 --> - [x] 新特性 - [ ] Bug修复 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!11335 | 21 days ago | |
修改产品名 Co-authored-by: fwx1169505<fengying27@h-partners.com> # message auto-generated for no-merge-commit merge: !11017 merge master into master 修改产品名 Created-by: fengying555682 Commit-by: fwx1169505 Merged-by: cann-robot Description: ## 描述 修改quant和activation文件夹中的md文档涉及的产品名称 ## 关联的Issue [#6056](https://gitcode.com/cann/ops-nn/issues/6056) ## 测试 已经完成文档语法和链接一致性检测 ## 文档更新 quant和activation文件夹中的md文档 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!11017 | 1 month ago | |
feat: 长尾算子新增ascend350平台支持 Co-authored-by: onanfield<tianshang@huawei.com> # message auto-generated for no-merge-commit merge: !11839 merge ascend350-adapt-batch2 into master feat: 长尾算子新增ascend350平台支持 Created-by: onanfield Commit-by: onanfield Merged-by: cann-robot Description: ## 描述 9个算子新增ascend350平台支持(BNInference/BNInferGrad/Centralization/CosineEmbeddingLoss/DynamicQuantUpdateScatterV2/FakeQuantWithMinMaxArgs/ForeachAcos/ForeachCos/ForeachLerpList) ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!11839 | 26 days ago | |
修改产品名 Co-authored-by: fwx1169505<fengying27@h-partners.com> # message auto-generated for no-merge-commit merge: !11017 merge master into master 修改产品名 Created-by: fengying555682 Commit-by: fwx1169505 Merged-by: cann-robot Description: ## 描述 修改quant和activation文件夹中的md文档涉及的产品名称 ## 关联的Issue [#6056](https://gitcode.com/cann/ops-nn/issues/6056) ## 测试 已经完成文档语法和链接一致性检测 ## 文档更新 quant和activation文件夹中的md文档 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!11017 | 1 month ago | |
修改产品名 Co-authored-by: fwx1169505<fengying27@h-partners.com> # message auto-generated for no-merge-commit merge: !11017 merge master into master 修改产品名 Created-by: fengying555682 Commit-by: fwx1169505 Merged-by: cann-robot Description: ## 描述 修改quant和activation文件夹中的md文档涉及的产品名称 ## 关联的Issue [#6056](https://gitcode.com/cann/ops-nn/issues/6056) ## 测试 已经完成文档语法和链接一致性检测 ## 文档更新 quant和activation文件夹中的md文档 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!11017 | 1 month ago | |
fix(fake_quant_with_min_max_vars_gradient): def 输出名与CANN原型对齐 Co-authored-by: zhoulong50_hw<zhoulong50@huawei.com> # message auto-generated for no-merge-commit merge: !11925 merge fix/fake_quant_with_min_max_vars_gradient-align-builtin-io into master fix(fake_quant_with_min_max_vars_gradient): def 输出名与CANN原型对齐 Created-by: zhoulong50_hw Commit-by: zhoulong50_hw Merged-by: cann-robot Description: ## 描述 将fake_quant_with_min_max_vars_gradient的输出数据命名改为与原型仓一致,使geir通路能正常执行。 ## 关联的Issue [fake_quant_with_min_max_vars_gradient的geir通路有问题](https://gitcode.com/cann/ops-nn/issues/6689) ## 测试 算子二级冒烟通过,geir通路已可以正常跑通。 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!11925 | 27 days ago | |
修改产品名 Co-authored-by: fwx1169505<fengying27@h-partners.com> # message auto-generated for no-merge-commit merge: !11017 merge master into master 修改产品名 Created-by: fengying555682 Commit-by: fwx1169505 Merged-by: cann-robot Description: ## 描述 修改quant和activation文件夹中的md文档涉及的产品名称 ## 关联的Issue [#6056](https://gitcode.com/cann/ops-nn/issues/6056) ## 测试 已经完成文档语法和链接一致性检测 ## 文档更新 quant和activation文件夹中的md文档 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!11017 | 1 month ago | |
修改产品名 Co-authored-by: fwx1169505<fengying27@h-partners.com> # message auto-generated for no-merge-commit merge: !11017 merge master into master 修改产品名 Created-by: fengying555682 Commit-by: fwx1169505 Merged-by: cann-robot Description: ## 描述 修改quant和activation文件夹中的md文档涉及的产品名称 ## 关联的Issue [#6056](https://gitcode.com/cann/ops-nn/issues/6056) ## 测试 已经完成文档语法和链接一致性检测 ## 文档更新 quant和activation文件夹中的md文档 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!11017 | 1 month ago | |
删除源码链接 Co-authored-by: fwx1169505<fengying27@h-partners.com> # message auto-generated for no-merge-commit merge: !12106 merge master into master 删除源码链接 Created-by: fengying555682 Commit-by: fwx1169505 Merged-by: cann-robot Description: ## 描述 删除源码链接 ## 关联的Issue [#6769](https://gitcode.com/cann/ops-nn/issues/6769) ## 测试 仅涉及文档修改,已经测试md文档语法 ## 文档更新 activation和quant目录下的md文档 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!12106 | 23 days ago | |
删除源码链接 Co-authored-by: fwx1169505<fengying27@h-partners.com> # message auto-generated for no-merge-commit merge: !12106 merge master into master 删除源码链接 Created-by: fengying555682 Commit-by: fwx1169505 Merged-by: cann-robot Description: ## 描述 删除源码链接 ## 关联的Issue [#6769](https://gitcode.com/cann/ops-nn/issues/6769) ## 测试 仅涉及文档修改,已经测试md文档语法 ## 文档更新 activation和quant目录下的md文档 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!12106 | 23 days ago | |
新增4个HiFloat4量化算子 Co-authored-by: TH<taohai2@huawei.com> # message auto-generated for no-merge-commit merge: !12451 merge hif4_quant into master 新增4个HiFloat4量化算子 Created-by: TH_HW Commit-by: TH Merged-by: cann-robot Description: ## 描述 (对应 HEAD 提交 feat: 拆分新增4个HiFloat4量化算子,共改动 120 个文件,+14755)新增 4 个 **HiFloat4(HiF4)量化**算子。4 个算子均基于 HiFloat4(S1P2,4-bit)三层缩放架构(Block Scale Ea / Sub-block Scale Eb / Micro-block Scale Ec),目标平台为 ascend960dt。 主要改动如下: 1. **新增 4 个 HiFloat4 量化算子** - aclnnAntiHiF4Quant(AntiHiF4Quant):将 HiF4(S1P2)量化数据按三层缩放因子(Ea/Eb/Ec)反量化为 FP16/BF16,按 scale shape 自动判定 PER_CHANNEL / PER_HEAD 模式。 - aclnnDynamicHiF4Quant(DynamicHiF4Quant):沿指定 axis 按 Block=64 / Sub-block=8 / Micro-block=4 三层缩放的在线动态量化,继承 DynamicMxQuant 架构。 - aclnnDynamicBlockHiF4Quant(DynamicBlockHiF4Quant):同时沿 -1、-2 轴按 64×64 基本块(Sub-block 8×8、Micro-block 4×4)三层缩放动态量化,分别输出 -1/-2 轴的 scale1、scale2。 - aclnnGroupedDynamicHiF4Quant(GroupedDynamicHiF4Quant):按 group_index 分组、组内按 64 元素为一块的三层缩放动态量化。 - 每个算子均包含:op_api(aclnn 对外接口 + 内部 l0op 接口)、op_graph(proto)、op_host(def / infershape / arch35 tiling,含 tail 与 not_tail 分支)、op_kernel(arch35 内核,含 common / tail / not_tail / struct / tilingdata)、docs(aclnn API 文档)、examples/arch92、tests/ut(op_host 的 infershape/tiling + op_kernel)、README,以及 op_host/config/ascend960dt 下的 *_binary.json 与 *_simplified_key.ini。 - 算子原型使用 ge::DT_HIFLOAT4 / DT_HIFLOAT4_SCALE,并在 *_def.cpp 中注册 ascend960dt。 ## 关联的Issue 无。 ## 测试 - 新增各算子 op_host UT(infershape、tiling)与 op_kernel UT。 - 新增各算子的 aclnn 示例(examples/arch92/test_aclnn_*_hi_f4_quant.cpp)。 - 通过 ascend960dt 编译与静态检查。 ## 文档更新 无。 ## 类型标签 <!-- [x] 表示选中 --> - [x] 新特性 - [ ] Bug修复 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!12451 | 21 days ago | |
DynamicQuant等22个算子支持Ascend960dt Co-authored-by: TH_HW<taohai2@huawei.com> # message auto-generated for no-merge-commit merge: !11335 merge backBlue into master DynamicQuant等22个算子支持Ascend960dt Created-by: TH_HW Commit-by: TH_HW Merged-by: cann-robot Description: ## 描述 (+17812 / -2151)为一批 ops-nn 算子补齐 **Ascend 960DT(NPU Arch 9201)** 平台支持,并重构 GeGluV2 arch35 内核、为 Erfinv 增加 inplace 通路。 主要改动如下: 1. **Ascend960DT 平台适配(22 个算子)** - activation:Relu、ReluV2、ReluGrad、ReluGradV2、Sigmoid、SigmoidGrad、PRelu、PReluGradUpdate、SiluGrad、Softplus、Swish、SwishGrad、SwiGluGrad、GeGluV2。 - index:MapIndex、SparseSlice、QuantUpdateScatter。 - quant:Quantize、DynamicQuant、DynamicQuantV2、AntiMxQuant、GroupedDynamicMxQuant。 - 具体做法:CMakeLists.txt 的 SUPPORT_COMPUTE_UNIT / SUPPORT_TILING_DIR 增加 ascend960dt;*_def.cpp 增加 AddConfig("ascend960dt", ...);aclnn/op_api 与 infershape 增加 NpuArch::DAV_9201 / Ascend960DT 分支;kernel 增加 __NPU_ARCH__ == 9201 分支;新增 op_host/config/ascend960dt/ 下的算子二进制配置(共 22 个,如 relu_binary.json、p_relu.json 等);scripts/kernel/binary_config/ascendc_config.json 为相关算子登记 ascend960dt 计算单元与编译选项。 2. **GeGluV2 arch35 内核重构** - 将 arch35 模板按 erf / tanh 两类拆分,并补齐 align、align_last_axis_big、vreduce × fp16/bf16/fp32 变体,统一命名 *_arch35.h。 - tiling 新增 RegBase per-template per-element UB 预算模型(GetRegbasePerElem),并支持 ascend960dt。 - aclnnGeGlu 参数校验重构(CheckShape 支持 0D 输入与 dim 范围校验),新增 ST 用例(all_aclnnGeGlu(.V3).json)并调整 UT。 3. **Erfinv 支持 inplace**:新增 inplace dtype 支持列表与校验(GetInplaceDtypeSupportList / CheckInplaceDtypeValid),并补充 op_api UT。 4. **内核与接口修复** - SparseSlice:9201 路径改用 SetValue 写入 sliceStart/sliceEnd(替代 DataCopy),Reg::Reduce 使用完整命名空间限定。 - QuantUpdateScatter:9201 增加 FLOAT_OVERFLOW_MODE_CTRL 保护。 - ReluV2 infershape:Ascend960DT 不支持 NC1HWC0,UINT1 支持列表加入 Ascend960DT。 - DynamicQuant / Mx 量化:9201 上 fp8 scale 改为 bf16 乘法后再 cast 到 e8m0。 5. **代码规范**:统一 License 头注释格式、补齐文件末尾换行、调整 quant 系列 UT 的 CMakeLists;新增 MapIndex、SparseSlice 的 GE IR 图模式示例。 ## 关联的Issue 无。 ## 测试 - 新增 GeGluV2 ST 用例与 Erfinv inplace UT,补充/调整 GeGluV2 相关 UT。 - 新增 MapIndex / SparseSlice 的 GE IR 示例(examples/test_geir_*.cpp)。 - 通过 ascend960dt 编译与静态检查。 ## 文档更新 无。 ## 类型标签 <!-- [x] 表示选中 --> - [x] 新特性 - [ ] Bug修复 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!11335 | 21 days ago | |
feat(loss/quant/norm): 四算子接入 ascend960dt 平台 + cross_entropy pre-allocation Co-authored-by: zoujiamin<zoujiamin1@huawei.com> # message auto-generated for no-merge-commit merge: !11745 merge squash/960dt-one-commit into master feat(loss/quant/norm): 四算子接入 ascend960dt 平台 + cross_entropy pre-allocation Created-by: zoujiamin123 Commit-by: zoujiamin Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。-->CrossEntropySumExpAndIndexLogit在960上开启pre-allocation优化、SigmoidCrossEntropyWithLogitsGradV2、Renorm、GroupedDynamicMxQuantWithDualAxis 三个个算子接入 ascend960dt 平台 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000-->https://gitcode.com/cann/ops-nn/issues/7021 ## 测试 <!--描述进行了哪些测试来验证你的改动。-->全量st测试通过、冒烟验证无问题 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [x] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!11745 | 21 days ago | |
docs: 将 GroupedQuantMax 文档原型及参数表的 y、amax 类型同步为 const aclTensor* Co-authored-by: Ethan_Zou<tianjun.zou@foxmail.com> # message auto-generated for no-merge-commit merge: !11847 merge docs/b6-nn-grouped-quant-max-const-outputs-20261013 into master docs: 将 GroupedQuantMax 文档原型及参数表的 y、amax 类型同步为 const aclTensor* Created-by: Ethan_Zou Commit-by: Ethan_Zou Merged-by: cann-robot Description: ## 描述 将 GroupedQuantMax 文档原型及参数表的 y、amax 类型同步为 const aclTensor*。 GroupedQuantMax 文档将 y 和 amax 写为 aclTensor*,同目录公开头文件与实现均接受 const aclTensor*。参数表也重复了不一致的类型;按文档声明包装函数/函数指针时与真实 ABI 不符。输出属性表示写入张量存储,不代表 aclTensor 元数据指针必须可变。 ## 关联的Issue Fixes #6583 ## 测试 从最终 Markdown 提取 1 个接口声明,与同目录/对应公开头文件编译为同一 C 链接翻译单元;干净基线 1 项均因 conflicting types 失败,修复后 1 项 C++17 -fsyntax-only 全部通过。未生成库或执行设备算子。 以本 case 干净基线执行适用 pre-commit hooks 与 diff --check 通过。 本地无 NPU;本次只验证文档与真实 Host 行为,不执行设备算子、Kernel UT 或性能测试。提交后评论 /compile。 ## 文档更新 文档修改详见本 PR 文件列表;仅修正文档,使用已有实现及实际编译/解析验证。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 由 AI 辅助定位、修改及验证,Ethan_Zou 提交;本 PR 仅一个 commit。 ## AI 参与 使用 OpenAI Codex(GPT-6 系列)审查代码与文档,在 Host 侧复现、核对已有报告并准备修复。提交者账号为 Ethan_Zou。 See merge request: cann/ops-nn!11847 | 22 days ago | |
修改产品名 Co-authored-by: fwx1169505<fengying27@h-partners.com> # message auto-generated for no-merge-commit merge: !11017 merge master into master 修改产品名 Created-by: fengying555682 Commit-by: fwx1169505 Merged-by: cann-robot Description: ## 描述 修改quant和activation文件夹中的md文档涉及的产品名称 ## 关联的Issue [#6056](https://gitcode.com/cann/ops-nn/issues/6056) ## 测试 已经完成文档语法和链接一致性检测 ## 文档更新 quant和activation文件夹中的md文档 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!11017 | 1 month ago | |
删除源码链接 Co-authored-by: fwx1169505<fengying27@h-partners.com> # message auto-generated for no-merge-commit merge: !12106 merge master into master 删除源码链接 Created-by: fengying555682 Commit-by: fwx1169505 Merged-by: cann-robot Description: ## 描述 删除源码链接 ## 关联的Issue [#6769](https://gitcode.com/cann/ops-nn/issues/6769) ## 测试 仅涉及文档修改,已经测试md文档语法 ## 文档更新 activation和quant目录下的md文档 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!12106 | 23 days ago | |
DynamicQuant等22个算子支持Ascend960dt Co-authored-by: TH_HW<taohai2@huawei.com> # message auto-generated for no-merge-commit merge: !11335 merge backBlue into master DynamicQuant等22个算子支持Ascend960dt Created-by: TH_HW Commit-by: TH_HW Merged-by: cann-robot Description: ## 描述 (+17812 / -2151)为一批 ops-nn 算子补齐 **Ascend 960DT(NPU Arch 9201)** 平台支持,并重构 GeGluV2 arch35 内核、为 Erfinv 增加 inplace 通路。 主要改动如下: 1. **Ascend960DT 平台适配(22 个算子)** - activation:Relu、ReluV2、ReluGrad、ReluGradV2、Sigmoid、SigmoidGrad、PRelu、PReluGradUpdate、SiluGrad、Softplus、Swish、SwishGrad、SwiGluGrad、GeGluV2。 - index:MapIndex、SparseSlice、QuantUpdateScatter。 - quant:Quantize、DynamicQuant、DynamicQuantV2、AntiMxQuant、GroupedDynamicMxQuant。 - 具体做法:CMakeLists.txt 的 SUPPORT_COMPUTE_UNIT / SUPPORT_TILING_DIR 增加 ascend960dt;*_def.cpp 增加 AddConfig("ascend960dt", ...);aclnn/op_api 与 infershape 增加 NpuArch::DAV_9201 / Ascend960DT 分支;kernel 增加 __NPU_ARCH__ == 9201 分支;新增 op_host/config/ascend960dt/ 下的算子二进制配置(共 22 个,如 relu_binary.json、p_relu.json 等);scripts/kernel/binary_config/ascendc_config.json 为相关算子登记 ascend960dt 计算单元与编译选项。 2. **GeGluV2 arch35 内核重构** - 将 arch35 模板按 erf / tanh 两类拆分,并补齐 align、align_last_axis_big、vreduce × fp16/bf16/fp32 变体,统一命名 *_arch35.h。 - tiling 新增 RegBase per-template per-element UB 预算模型(GetRegbasePerElem),并支持 ascend960dt。 - aclnnGeGlu 参数校验重构(CheckShape 支持 0D 输入与 dim 范围校验),新增 ST 用例(all_aclnnGeGlu(.V3).json)并调整 UT。 3. **Erfinv 支持 inplace**:新增 inplace dtype 支持列表与校验(GetInplaceDtypeSupportList / CheckInplaceDtypeValid),并补充 op_api UT。 4. **内核与接口修复** - SparseSlice:9201 路径改用 SetValue 写入 sliceStart/sliceEnd(替代 DataCopy),Reg::Reduce 使用完整命名空间限定。 - QuantUpdateScatter:9201 增加 FLOAT_OVERFLOW_MODE_CTRL 保护。 - ReluV2 infershape:Ascend960DT 不支持 NC1HWC0,UINT1 支持列表加入 Ascend960DT。 - DynamicQuant / Mx 量化:9201 上 fp8 scale 改为 bf16 乘法后再 cast 到 e8m0。 5. **代码规范**:统一 License 头注释格式、补齐文件末尾换行、调整 quant 系列 UT 的 CMakeLists;新增 MapIndex、SparseSlice 的 GE IR 图模式示例。 ## 关联的Issue 无。 ## 测试 - 新增 GeGluV2 ST 用例与 Erfinv inplace UT,补充/调整 GeGluV2 相关 UT。 - 新增 MapIndex / SparseSlice 的 GE IR 示例(examples/test_geir_*.cpp)。 - 通过 ascend960dt 编译与静态检查。 ## 文档更新 无。 ## 类型标签 <!-- [x] 表示选中 --> - [x] 新特性 - [ ] Bug修复 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!11335 | 21 days ago | |
删除源码链接 Co-authored-by: fwx1169505<fengying27@h-partners.com> # message auto-generated for no-merge-commit merge: !12106 merge master into master 删除源码链接 Created-by: fengying555682 Commit-by: fwx1169505 Merged-by: cann-robot Description: ## 描述 删除源码链接 ## 关联的Issue [#6769](https://gitcode.com/cann/ops-nn/issues/6769) ## 测试 仅涉及文档修改,已经测试md文档语法 ## 文档更新 activation和quant目录下的md文档 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!12106 | 23 days ago | |
DynamicQuant等22个算子支持Ascend960dt Co-authored-by: TH_HW<taohai2@huawei.com> # message auto-generated for no-merge-commit merge: !11335 merge backBlue into master DynamicQuant等22个算子支持Ascend960dt Created-by: TH_HW Commit-by: TH_HW Merged-by: cann-robot Description: ## 描述 (+17812 / -2151)为一批 ops-nn 算子补齐 **Ascend 960DT(NPU Arch 9201)** 平台支持,并重构 GeGluV2 arch35 内核、为 Erfinv 增加 inplace 通路。 主要改动如下: 1. **Ascend960DT 平台适配(22 个算子)** - activation:Relu、ReluV2、ReluGrad、ReluGradV2、Sigmoid、SigmoidGrad、PRelu、PReluGradUpdate、SiluGrad、Softplus、Swish、SwishGrad、SwiGluGrad、GeGluV2。 - index:MapIndex、SparseSlice、QuantUpdateScatter。 - quant:Quantize、DynamicQuant、DynamicQuantV2、AntiMxQuant、GroupedDynamicMxQuant。 - 具体做法:CMakeLists.txt 的 SUPPORT_COMPUTE_UNIT / SUPPORT_TILING_DIR 增加 ascend960dt;*_def.cpp 增加 AddConfig("ascend960dt", ...);aclnn/op_api 与 infershape 增加 NpuArch::DAV_9201 / Ascend960DT 分支;kernel 增加 __NPU_ARCH__ == 9201 分支;新增 op_host/config/ascend960dt/ 下的算子二进制配置(共 22 个,如 relu_binary.json、p_relu.json 等);scripts/kernel/binary_config/ascendc_config.json 为相关算子登记 ascend960dt 计算单元与编译选项。 2. **GeGluV2 arch35 内核重构** - 将 arch35 模板按 erf / tanh 两类拆分,并补齐 align、align_last_axis_big、vreduce × fp16/bf16/fp32 变体,统一命名 *_arch35.h。 - tiling 新增 RegBase per-template per-element UB 预算模型(GetRegbasePerElem),并支持 ascend960dt。 - aclnnGeGlu 参数校验重构(CheckShape 支持 0D 输入与 dim 范围校验),新增 ST 用例(all_aclnnGeGlu(.V3).json)并调整 UT。 3. **Erfinv 支持 inplace**:新增 inplace dtype 支持列表与校验(GetInplaceDtypeSupportList / CheckInplaceDtypeValid),并补充 op_api UT。 4. **内核与接口修复** - SparseSlice:9201 路径改用 SetValue 写入 sliceStart/sliceEnd(替代 DataCopy),Reg::Reduce 使用完整命名空间限定。 - QuantUpdateScatter:9201 增加 FLOAT_OVERFLOW_MODE_CTRL 保护。 - ReluV2 infershape:Ascend960DT 不支持 NC1HWC0,UINT1 支持列表加入 Ascend960DT。 - DynamicQuant / Mx 量化:9201 上 fp8 scale 改为 bf16 乘法后再 cast 到 e8m0。 5. **代码规范**:统一 License 头注释格式、补齐文件末尾换行、调整 quant 系列 UT 的 CMakeLists;新增 MapIndex、SparseSlice 的 GE IR 图模式示例。 ## 关联的Issue 无。 ## 测试 - 新增 GeGluV2 ST 用例与 Erfinv inplace UT,补充/调整 GeGluV2 相关 UT。 - 新增 MapIndex / SparseSlice 的 GE IR 示例(examples/test_geir_*.cpp)。 - 通过 ascend960dt 编译与静态检查。 ## 文档更新 无。 ## 类型标签 <!-- [x] 表示选中 --> - [x] 新特性 - [ ] Bug修复 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!11335 | 21 days ago | |
修改产品名 Co-authored-by: fwx1169505<fengying27@h-partners.com> # message auto-generated for no-merge-commit merge: !11017 merge master into master 修改产品名 Created-by: fengying555682 Commit-by: fwx1169505 Merged-by: cann-robot Description: ## 描述 修改quant和activation文件夹中的md文档涉及的产品名称 ## 关联的Issue [#6056](https://gitcode.com/cann/ops-nn/issues/6056) ## 测试 已经完成文档语法和链接一致性检测 ## 文档更新 quant和activation文件夹中的md文档 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!11017 | 1 month ago | |
删除源码链接 Co-authored-by: fwx1169505<fengying27@h-partners.com> # message auto-generated for no-merge-commit merge: !12106 merge master into master 删除源码链接 Created-by: fengying555682 Commit-by: fwx1169505 Merged-by: cann-robot Description: ## 描述 删除源码链接 ## 关联的Issue [#6769](https://gitcode.com/cann/ops-nn/issues/6769) ## 测试 仅涉及文档修改,已经测试md文档语法 ## 文档更新 activation和quant目录下的md文档 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!12106 | 23 days ago | |
sbmqwda support v121 Co-authored-by: oah28<wujiahao37@huawei.com> # message auto-generated for no-merge-commit merge: !11749 merge sbmqwda into master sbmqwda support v121 Created-by: oah28 Commit-by: oah28 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 本变更为 SwigluBackwardMxQuantWithDualAxis(SwiGLU 反向 MX 量化双轴算子)增加 ascend960dt(v121)硬件平台支持。核心改动是在算子定义、编译配置与二进制配置中注册 ascend960dt,并新增该平台对应的算子二进制接口描述配置,覆盖多种输入/输出数据类型组合。 主要改动 新增 ascend960dt 平台二进制配置: 新增 swiglu_backward_mx_quant_with_dual_axis_binary.json,定义 8 个 bin_filename(如 SwigluBackwardMxQuantWithDualAxis_bf16toe4m3、_fp16toe2m1、_bf16toe5m2 等),输入 x/y_grad(bfloat16 或 float16)、可选 group_index(int64),输出 y1_out/y2_out(float8_e4m3fn、float4_e2m1、float4_e1m2、float8_e5m2)与 mxscale1_out/mxscale2_out(float8_e8m0),并声明 dst_dtype、scale_alg、round_mode、activate_left、max_dtype_value 等属性。 新增简化 Key 配置: 新增 swiglu_backward_mx_quant_with_dual_axis_simplified_key.ini,为 [SwigluBackwardMxQuantWithDualAxis] 设置 default=0。 算子定义注册新平台: 在 swiglu_backward_mx_quant_with_dual_axis_def.cpp 中通过 this->AICore().AddConfig("ascend960dt", aicoreConfig) 为算子新增 ascend960dt 配置。 编译配置纳入新平台: 在 scripts/kernel/binary_config/ascendc_config.json 中新增 SwigluBackwardMxQuantWithDualAxis 条目,compute_units 包含 ascend950 与 ascend960dt,并为 ascend960dt 配置 --cce-no-dcache-flush 编译选项。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> 关联Issue [#7062](https://gitcode.com/cann/ops-nn/issues/7062) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 测试,冒烟通过 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!11749 | 20 days ago | |
feat: loss/optim/activation/index/quant/conv 34个算子适配ascend960dt Co-authored-by: caorenlei<caorenlei@huawei.com> # message auto-generated for no-merge-commit merge: !11923 merge 1009 into master feat: loss/optim/activation/index/quant/conv 34个算子适配ascend960dt Created-by: caorenlei Commit-by: caorenlei Merged-by: cann-robot Description: ## 描述 ### 改动原因 v121(ascend960dt/DAV_9201)平台算子适配:责任田内 34 个算子需要在 ascend960dt 平台提供支持。 ### 改动方法(注册级适配为主,2 个算子特殊处理) - **注册链路(全部 34 个算子)**: *_def.cpp 追加 AddConfig("ascend960dt");新增 op_host/config/ascend960dt/(binary.json 与 ascend950 对齐 + simplified_key.ini);算子级 CMakeLists(SUPPORT_COMPUTE_UNIT/SUPPORT_TILING_DIR)与 op_kernel/CMakeLists(COMPUTE_UNITS)追加 ascend960dt 编译目标,修复 960dt 二进制编译时 tiling 库缺失问题(NLLLoss Jenkins 报错根因);ascendc_config.json 追加对应条目 - **apply_ftrl(特例)**:kernel/tiling 整体换用 v121 参考实现(旧式类实现 + 按 dtype 的 tiling key),替换 master 的 atvoss DAG/ElementwiseSch 实现(atvoss 框架未在 960dt 验证) - **deformable_offsets(_grad)**:kernel 零改动,仅注册级适配 - **swiglu_mx_quant(_with_dual_axis)**:入口溢出模式保存/恢复的 #if __NPU_ARCH__ == 3510 扩展为 3510 || 9201;swiglu_mx_quant_with_dual_axis kernel 体内溢出模式置位同步扩展,保证 960dt 数值行为与 950 一致 - **binary_cross_entropy_grad 等 6 算子**:kernel 由 atvoss 纯模板覆盖为 RegBase 写法(v121 参考,Reg:: 命名约定) 涉及算子(34):loss 19 个(binary_cross_entropy(_grad)、cross_entropy_loss(_grad)、ctc_loss_v2(_grad)、kl_div_loss_grad、l1_loss_grad、l2_loss、lp_loss、mse_loss(_grad)、nll_loss(_grad)、sigmoid_cross_entropy_with_logits、smooth_l1_loss_v2(_grad_v2)、softmax/sparse_softmax_cross_entropy_with_logits)、optim 11 个(apply_adam(_d/_w/_w_v2)、apply_adagrad_d、apply_gradient_descent、apply_ftrl、adam_apply_one(_with_decay/_assign))、index 1 个(unique_consecutive)、conv 2 个(deformable_offsets(_grad))、quant 2 个(swiglu_mx_quant(_with_dual_axis)) ## 关联的Issue - #6806 ## 测试 - bash build.sh --pkg --soc=ascend950 --jit --ops=<34算子> 编译出包通过 - ttk(Ascend950PR_9579)精度回归:每算子小规模用例分块串行执行,34/34 全 PASS(precision/perf/oob),950 零回归 - ascend960dt 二进制编译需 Jenkins 环境验证(本地工具链 ASC_VALID_SOC_LIST 不含 960dt) ## 文档更新 无 ## 类型标签 - [ ] 🐛 Bug修复 - [x] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!11923 | 22 days ago | |
feat: loss/optim/activation/index/quant/conv 34个算子适配ascend960dt Co-authored-by: caorenlei<caorenlei@huawei.com> # message auto-generated for no-merge-commit merge: !11923 merge 1009 into master feat: loss/optim/activation/index/quant/conv 34个算子适配ascend960dt Created-by: caorenlei Commit-by: caorenlei Merged-by: cann-robot Description: ## 描述 ### 改动原因 v121(ascend960dt/DAV_9201)平台算子适配:责任田内 34 个算子需要在 ascend960dt 平台提供支持。 ### 改动方法(注册级适配为主,2 个算子特殊处理) - **注册链路(全部 34 个算子)**: *_def.cpp 追加 AddConfig("ascend960dt");新增 op_host/config/ascend960dt/(binary.json 与 ascend950 对齐 + simplified_key.ini);算子级 CMakeLists(SUPPORT_COMPUTE_UNIT/SUPPORT_TILING_DIR)与 op_kernel/CMakeLists(COMPUTE_UNITS)追加 ascend960dt 编译目标,修复 960dt 二进制编译时 tiling 库缺失问题(NLLLoss Jenkins 报错根因);ascendc_config.json 追加对应条目 - **apply_ftrl(特例)**:kernel/tiling 整体换用 v121 参考实现(旧式类实现 + 按 dtype 的 tiling key),替换 master 的 atvoss DAG/ElementwiseSch 实现(atvoss 框架未在 960dt 验证) - **deformable_offsets(_grad)**:kernel 零改动,仅注册级适配 - **swiglu_mx_quant(_with_dual_axis)**:入口溢出模式保存/恢复的 #if __NPU_ARCH__ == 3510 扩展为 3510 || 9201;swiglu_mx_quant_with_dual_axis kernel 体内溢出模式置位同步扩展,保证 960dt 数值行为与 950 一致 - **binary_cross_entropy_grad 等 6 算子**:kernel 由 atvoss 纯模板覆盖为 RegBase 写法(v121 参考,Reg:: 命名约定) 涉及算子(34):loss 19 个(binary_cross_entropy(_grad)、cross_entropy_loss(_grad)、ctc_loss_v2(_grad)、kl_div_loss_grad、l1_loss_grad、l2_loss、lp_loss、mse_loss(_grad)、nll_loss(_grad)、sigmoid_cross_entropy_with_logits、smooth_l1_loss_v2(_grad_v2)、softmax/sparse_softmax_cross_entropy_with_logits)、optim 11 个(apply_adam(_d/_w/_w_v2)、apply_adagrad_d、apply_gradient_descent、apply_ftrl、adam_apply_one(_with_decay/_assign))、index 1 个(unique_consecutive)、conv 2 个(deformable_offsets(_grad))、quant 2 个(swiglu_mx_quant(_with_dual_axis)) ## 关联的Issue - #6806 ## 测试 - bash build.sh --pkg --soc=ascend950 --jit --ops=<34算子> 编译出包通过 - ttk(Ascend950PR_9579)精度回归:每算子小规模用例分块串行执行,34/34 全 PASS(precision/perf/oob),950 零回归 - ascend960dt 二进制编译需 Jenkins 环境验证(本地工具链 ASC_VALID_SOC_LIST 不含 960dt) ## 文档更新 无 ## 类型标签 - [ ] 🐛 Bug修复 - [x] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!11923 | 22 days ago | |
删除源码链接 Co-authored-by: fwx1169505<fengying27@h-partners.com> # message auto-generated for no-merge-commit merge: !12106 merge master into master 删除源码链接 Created-by: fengying555682 Commit-by: fwx1169505 Merged-by: cann-robot Description: ## 描述 删除源码链接 ## 关联的Issue [#6769](https://gitcode.com/cann/ops-nn/issues/6769) ## 测试 仅涉及文档修改,已经测试md文档语法 ## 文档更新 activation和quant目录下的md文档 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!12106 | 23 days ago | |
Ascend960 quant_batch_matmul_v4 A8W4 Co-authored-by: chaoying-zhang<zhangchaoying@huawei.com> # message auto-generated for no-merge-commit merge: !11520 merge to_master into master Ascend960 quant_batch_matmul_v4 A8W4 Created-by: chaoying-zhang Commit-by: chaoying-zhang Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 1. Ascend960 quant_batch_matmul_v4 支持MxFp8Fp4/MxFp8Hif4/Fp8Fp4 TCG/S8S4 KCG 2. Ascend960 支持trans_quant_param_v2 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> [#6964](https://gitcode.com/cann/ops-nn/issues/6964) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 1. Ascend950 MxFp8Fp4/Fp8Fp4 TCG用例验证通过 2. Ascend960 MxFp8Fp4/MxFp8Hif4/Fp8Fp4 TCG/S8S4 KCG用例验证通过 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> NA ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!11520 | 21 days ago | |
删除源码链接 Co-authored-by: fwx1169505<fengying27@h-partners.com> # message auto-generated for no-merge-commit merge: !12106 merge master into master 删除源码链接 Created-by: fengying555682 Commit-by: fwx1169505 Merged-by: cann-robot Description: ## 描述 删除源码链接 ## 关联的Issue [#6769](https://gitcode.com/cann/ops-nn/issues/6769) ## 测试 仅涉及文档修改,已经测试md文档语法 ## 文档更新 activation和quant目录下的md文档 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!12106 | 23 days ago | |
feat: 新增 WtsARQ 算子(AMCT QAT 权重自适应范围伪量化,GE IR 图模式,arch35 RegBase) Co-authored-by: tianqiguang<tianqiguang@huawei.com> # message auto-generated for no-merge-commit merge: !11140 merge master into master feat: 新增 WtsARQ 算子(AMCT QAT 权重自适应范围伪量化,GE IR 图模式,arch35 RegBase) Created-by: tianqiguang Commit-by: tianqiguang Merged-by: cann-robot Description: ## 描述 新增 WtsARQ(Weights Adaptive Range Quantization)算子,用于 AMCT 量化感知训练(QAT)场景:根据输入权重 w 及其量化范围下界 w_min、上界 w_max 自适应计算量化 scale,对 w 做 round-to-nearest(half-to-even)伪量化到 int8 栅格后再反量化回浮点,输出 y。 - 交付形态:GE IR 图模式算子(REG_OP 注册),无 aclnn 接口;TensorFlow 前端经框架插件(framework/wts_arq_tf_plugin.cpp)映射为同一 IR 后调用 - 硬件平台:arch35(Ascend 950 / DAV_3510),RegBase kernel 实现 - 输入:w(float16/float32,ND,rank 0~8)、w_min、w_max(dtype 与 w 一致,受限广播) - 输出:y(shape/dtype 与 w 相同) - 属性:num_bits(int64,仅支持 8)、offset_flag(bool,默认 false) 计算流程:范围修正(w_min=min(w_min,0)、w_max=max(w_max,0))→ scale 计算(offset_flag=false 时 max(|w_min|/128, w_max/127);true 时 w_max/255 - w_min/255)→ 除零保护(scale < float32 eps 取 1.0)→ 伪量化 q=clamp(rint(w/scale)+offset, -128, 127)-offset → 反量化 y=q*scale。 实现要点: - op_host:算子定义(wts_arq_def.cpp)、InferShape(wts_arq_infershape.cpp,支持动态 shape/rank 与受限广播校验)、arch35 tiling(wts_arq_tiling.cpp,动态多核切分、受限广播拷贝策略) - op_kernel:arch35 RegBase kernel(wts_arq_kernel.h,fp32 寄存器级计算链) - op_graph:GE IR 算子注册(wts_arq_proto.h) - config:ascend950 binary.json(float16/float32 两个二进制) - 文档:README.md + docs/zh/op_list.md 算子列表登记 ## 关联的Issue #6254 ## 测试 - 单元测试:tests/ut/op_host/arch35/test_wts_arq_tiling.cpp(tiling)、tests/ut/op_host/test_wts_arq_infershape.cpp(infershape) - 精度验证:tests/assets/golden.py 生成 golden 数据对比 - 示例:examples/test_geir_wts_arq.cpp(GE IR 图模式调用示例) ## 文档更新 - 新增 quant/wts_arq/README.md(功能说明、参数说明、约束说明、调用说明) - 更新 docs/zh/op_list.md(新增 wts_arq 算子条目) ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [ ] AI辅助编写 See merge request: cann/ops-nn!11140 | 1 month ago | |
torch_extension API文档新增产品型号标签 Co-authored-by: gitcode-chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !8233 merge master into master torch_extension API文档新增产品型号标签 Created-by: gitcode-chenjiao Commit-by: gitcode-chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 1. torchapi_*.md增加产品型号标签注释 2. 中文png改为英文文件名 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> [#4551](https://gitcode.com/cann/ops-nn/issues/4551) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 已自验 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> torchapi_*.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8233 | 3 months ago | |
Format update: Adjusted the license description format in all relevant files. Co-authored-by: jiangqi<jiangqi47@h-partners.com> # message auto-generated for no-merge-commit merge: !366 merge license6 into master Format update: Adjusted the license description format in all relevant files. Created-by: jiangqi2025 Commit-by: jiangqi Merged-by: turing_project1 Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #123--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!366 | 10 months ago | |
refactor(swiglu_group_grad): 迁移至 activation 目录 Co-authored-by: ZhouChuping<24171214023@stu.xidian.edu.cn> # message auto-generated for no-merge-commit merge: !9329 merge refactor/swiglu-group-grad-to-activation into master refactor(swiglu_group_grad): 迁移至 activation 目录 Created-by: qq_52056150 Commit-by: ZhouChuping Merged-by: cann-robot Description: ## 描述 迁移swiglu_group_grad至 activation 目录 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/5285 ## 测试 本地进行了白盒、门槛用例的验证,共200条用例无功能性问题,线上进行了david冒烟无异常。 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 更新路径 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:迁移算子至新目录 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!9329 | 2 months ago |
| Files | Last commit | Last update |
|---|---|---|
| 23 days ago | ||
| 23 days ago | ||
| 1 month ago | ||
| 23 days ago | ||
| 21 days ago | ||
| 21 days ago | ||
| 1 month ago | ||
| 23 days ago | ||
| 2 months ago | ||
| 22 days ago | ||
| 20 days ago | ||
| 1 month ago | ||
| 23 days ago | ||
| 20 days ago | ||
| 21 days ago | ||
| 30 days ago | ||
| 21 days ago | ||
| 23 days ago | ||
| 22 days ago | ||
| 23 days ago | ||
| 21 days ago | ||
| 21 days ago | ||
| 21 days ago | ||
| 21 days ago | ||
| 1 month ago | ||
| 22 days ago | ||
| 21 days ago | ||
| 1 month ago | ||
| 26 days ago | ||
| 1 month ago | ||
| 1 month ago | ||
| 27 days ago | ||
| 1 month ago | ||
| 1 month ago | ||
| 23 days ago | ||
| 23 days ago | ||
| 21 days ago | ||
| 21 days ago | ||
| 21 days ago | ||
| 22 days ago | ||
| 1 month ago | ||
| 23 days ago | ||
| 21 days ago | ||
| 23 days ago | ||
| 21 days ago | ||
| 1 month ago | ||
| 23 days ago | ||
| 20 days ago | ||
| 22 days ago | ||
| 22 days ago | ||
| 23 days ago | ||
| 21 days ago | ||
| 23 days ago | ||
| 1 month ago | ||
| 3 months ago | ||
| 10 months ago | ||
| 2 months ago |